Перейти к содержимому

Публикации Paulitto

12 публикаций создано Paulitto (учитываются публикации только с 29 марта 2023)


#91929 изменение экспортируемого хтмл лога

Отправлено автор: Paulitto 02 августа 2011 - 06:44 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте,

У меня на расписании есть тесты, которые по окончании экспортируются в хтмл формате.
Я хочу изменить этот лог так, чтобы возле проваленных шагов была ссылка на нашу багтрэкинговую систему, передающая в тч некоторые гет параметры для автоматического заполнения полей.
Идея в том, чтобы быстрей генерировать баг репорты при просмотре результатов автотестов.
Нечто подобное можно сделать добавив изменения в яваскрипт файлы тест лога (а именно в table.js ). И вариант который я пока вижу - это перезаписывать их после экспорта.
Есть ли идеи как еще такое можно сделать? И если нет то как определить в яваскрипте что тип сообщения в таблице результатов - ошибка?

Заранее спасибо за ответы



#89388 Удаленный запуск проэкта

Отправлено автор: Paulitto 31 мая 2011 - 11:48 в SmartBear (AutomatedQA) - Functional Testing

psexec -I -d "C:\Program Files\Internet Explorer\iexplore.exe"
psexec -d "...test.bat" в которо текст приведенные ниже
"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" "D:\#C Team Test\SmokeTest\SmokeTest.pjs" /r /p:SmokeTest /u:Login_and_reg /rt:Enter_to_portal /e


Здравствуйте,
Сам пользовался psexec-ом, чтоб запускать тесты автоматически (для ночных запуски).
Ему нужно указывать имя удаленки, обязательно параметр i ( запуск в интерактивной сессии) с номером сессии в которой будет запускаться программа, пользователя и пароль.
При этом удаленная сессия должна быть уже открыта (можно открывать из того же батника что запускает psexec), и не свернута.

Формат записи примерно такой psexec \\<имя удаленки> -u <юзер> -p <пароль> -i <номер отурытой сессии> <команда>

Я так запускаю на удаленке батник, который выполняет подготовительные операции, запускает тест в testexecute, и выходит из сессии (logoff)



#89385 Distributed testing on VM machines - screen resolution problem

Отправлено автор: Paulitto 31 мая 2011 - 11:24 в SmartBear (AutomatedQA) - Functional Testing

Здраствуйте!
Используя distributed testing я нашел что при открытии сесии удаленного доступа ТК устанавливает очень маленькое разрешение на слейв машине(VM machines), в следствие чего мои тесты не могут пройти .. так как требуется большее разрешение, контролы не видны на форме... и комплит не может делать с ними различные события.
Кто нибудь сталкивался с такой проблемой и как ее решить? Не нашел методов и опций как утсанавливать разрешение экрана на слейв машине=(


TC - 7.50


Вроде бы эта проблема решена в последних версиях TC.
Для вашей версии похоже нужно только создавать удаленную сессию отдельно и запускать распределенные тесты в уже готовой сесси. Можно попробовать делать это автоматически - сохранить настройки удаленного доступа в отдельный .rdp файл (указав в нем в тч желаемое разрешение) и запускать его.



#84507 Ввод пароля в cmd

Отправлено автор: Paulitto 17 февраля 2011 - 09:55 в SmartBear (AutomatedQA) - Functional Testing

Попробуйте использовать psexec без указания имени компьютера (для запуска с вашего компьютера ), с ним можно запустить программу передавая пользователя и пароль с командной строки (я его часто использовал вместо runas чтобы не вбивать постоянно пароль)

psexec.exe -u user -p password "C:\Program Files\Internet Explorer\iexplore.exe"

http://technet.micro...ernals/bb897553



#83465 TestCompete и cookies

Отправлено автор: Paulitto 25 января 2011 - 07:27 в SmartBear (AutomatedQA) - Functional Testing

Народ, есть какаято возможность засетать куки к примеру (name, value) интересують IE, FF browsers?


Если вы работаете с DOM моделью, то взять куку можно через свойство cookie, а потом уже разбить на пары name value
PageObj.document.cookie

Если же вы работаете с другой моделью, то можно, например, переключиться на DOM и обратно:
function getCookie(PageObj)
{
  var CurrentWebModel = Options.Web.TreeModel;
  Options.Web.TreeModel = "DOM";
  result = PageObj.document.cookie; 
  Options.Web.TreeModel = CurrentWebModel;
  return result;
}



#82469 Выделение числа из строки

Отправлено автор: Paulitto 23 декабря 2010 - 16:01 в SmartBear (AutomatedQA) - Functional Testing

В хелпе TC в теме "JScript - Working With Numeric Values" есть раздел "Getting numerical values from strings"



#82446 TestComplete. Как сделать, чтоб переменная была доступна во всех Keywo

Отправлено автор: Paulitto 23 декабря 2010 - 10:40 в SmartBear (AutomatedQA) - Functional Testing

А где увидеть, какой тип переменной. Я пытаюсь сохранить переменную типа Table. После выполнения скрипта(KeywordTests), если перейти на закладку Variables, то в переменной нет значений,как и не было до выполнения скрипта. Отсюда я делаю вывод, что значения не сохраняются

Переменные типа table как и object доступны только в temporary variables.
Если это проектная переменная - то она будет хранить значение только во время запуска проекта (но в это время должна быть доступна для всех скриптов данного проекта).
Если вам нужно чтобы она была доступна из скриптов разных поректов - создайте сьютную переменную, она будет хранить значение в течение запуска всего project suite.
Ну а если нужно нужно хранить между запусками всего project suite - экспортируйте ее куда нибуть, например в csv файлик или эксель.



#79019 Взаимодействие TC и Javascript

Отправлено автор: Paulitto 20 октября 2010 - 10:19 в SmartBear (AutomatedQA) - Functional Testing


У меня 7,52

Действительно, надо использовать функцию Close. Но надо закрывать закладку со открытой страницей, а не FireFox

Этот код закрывает закладку, в которой был открыт http://ya.ru/

Sub Test1
  Call Sys.Process("firefox").UIPage("chrome://browser/content/browser.xul").TabBand.TabButton("Яндекс").Close
End Sub

Для идентификации закладки воспользуйтесь finger'ом.

Спасибо за совет, но там открывается именно новое окошко, а не вкладка. И при просмотре через Object Browser видно страницу на которой как раз и отображается эта картинка.


Каждое вновь открытое окно браузера будет иметь новый индекс на единицу больше предыдущего:
UIPage("chrome://browser/content/browser.xul") - первое окно
UIPage("chrome://browser/content/browser.xul", 1) - второе
UIPage("chrome://browser/content/browser.xul", 2) - третье
итп

тоесть можно легко найти индекс нужного окна (хотябы посчитав их количество) и закрыть именно его
напр: UIPage("chrome://browser/content/browser.xul", 1).close()



#78996 Physical Memory

Отправлено автор: Paulitto 20 октября 2010 - 07:52 в SmartBear (AutomatedQA) - Functional Testing

Можно еще через ф-ции винапи:

var a = Win32API.MEMORYSTATUS();
Win32API.GlobalMemoryStatus(a);
Log.Message
(
"Total Physical Memory: "+a.dwTotalPhys+" bytes\n"+
"Available: "+a.dwAvailPhys+" bytes\n"+
"In use: "+a.dwMemoryLoad+" %"
)

но именно эта функция не всегда может отрабатывать правильно
см http://msdn.microsof...a366586(v=VS.85).aspx



#78634 При проверки существования объекта возникают две ошибки: The object do

Отправлено автор: Paulitto 07 октября 2010 - 13:39 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте,
Функции для проверки существования страницы и различных обьектов в TesComplete уже реализованы

Проверка существования страницы:
ProcessObj.WaitPage(URL, Timeout).Exists - вернет true или false

Проверку существования обьекта обычно можно тоже сделать с помощью соответствующего Wait метода, в зависимости от типа обьекта
Либо воспользоваться методами общими для любых обьекьтов - WaitChild, или FindChild.
В случае несуществующего обьекта они вернут пустой обьект с одним лишь свойством Exists равным false (как и в случае с WaitPage)

Посмотрите подробней об этих методах в хелпе.



#77775 Полезные процедуры и функции

Отправлено автор: Paulitto 04 сентября 2010 - 15:01 в SmartBear (AutomatedQA) - Functional Testing

Для TestComplete есть много готовых примеров работы с excel, но когда мне понадобилось нечто подобное для таблиц OpenOffice, оказалось сложно что либо найти.

Вот пример функции как записать данные в таблицу OpenOffice (JScript):

/*******************************************************************
Arr - массив массивов                                              *
Filename - полный путь к файлу, если такого нет, то он создается   *
********************************************************************/

function SaveArrayToCalc(Arr, FileName)
{
 try
 { 
  //создаем обьект Desktop через который и происходит работа с OpemOffice 
  var oServiceManager = Sys.OleObject("com.sun.star.ServiceManager");
  var oDesktop        = oServiceManager.createInstance("com.sun.star.frame.Desktop");
  
  // добавляем hidden == true в массив параметров открытия документа (чтоб OpenOffice документ не был виден на экране) 
  var VariantArray    = new Array();
  var Mystruct =  oServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
  Mystruct.Name = "Hidden";
  Mystruct.Value = true;
  VariantArray[0] = Mystruct;
  
  //создаем документ, (чтобы открыть уже существующий документ, в кач первого параметра необходимо передать путь к нему в виде url)  
  var oDoc            = oDesktop.LoadComponentFromURL("private:factory/scalc", "_blank", 0, VariantArray);
  //получаем первый лист таблицы
  var oSheet          = oDoc["getSheets"]().getByIndex(0); 
	
  //заполняем первый лист массивом массивов
  for (var j=0; j<Arr.length; j++)
  for(var i=0; i<Arr[j].length; i++)
     oSheet.getCellByPosition(i, j).setString(Arr[j][i]);
  
 //сохраняем документ, путь также в виде url
  oDoc.storeAsURL("file:///"+aqString.Replace(FileName, "\\", "/"), VariantArray);
 //закрытие документа 
  oDoc.Close(false);
 }
 catch(exception)
  {
    Log.Warning("Unable to save the data to ods table", exception.description);
  }

}
Массив массивов вместо двумерного выбрал потому что может иметь разную длину строк, хотя это уже можно поменять как кому нравится.

Читать данные с таблицы можно аналогичным образом передавая в функции LoadComponentFromURL путь к документу в url формате и используя getString вместо setString.



#77774 Проблемы с Sys.WaitChild и с Sys.WaitProcess

Отправлено автор: Paulitto 04 сентября 2010 - 14:24 в SmartBear (AutomatedQA) - Functional Testing

Похоже что вы просто передаете неправильное значение в WaitChild методе.
Он требует не имя процесса а именно имя дочернего обьекта, в вашем случае это будет не EXCEL а Process("Excel")

Попробуйте так:
Sys.WaitChild('Process("EXCEL")',-1);

Насчет WaitProcess - должно работать так как вы и написали.