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

Stanislav_alphaopen

Регистрация: 20 янв 2015
Offline Активность: 03 ноя 2020 20:57
-----

Мои темы

Работа с TC через COM из Python

29 августа 2016 - 13:01

Есть рабочий скрипт на vbs 

  On Error Resume Next
  ' Connects TestExecute object
  Set TestExecuteApp = GetObject(,"TestExecute.TestExecuteApplication.12")
  
  if Err.Number <> 0 Then
	Err.Clear
	
        Do While TestExecuteApp Is Nothing
            Set TestExecuteApp = CreateObject("TestExecute.TestExecuteApplication.12")
			WScript.sleep(1000)
        Loop

  End if
  On Error GoTo 0
 
  
  ' Opens the project
  If Not TestExecuteApp.Integration.IsProjectSuiteOpened Then
	 TestExecuteApp.Integration.OpenProjectSuite sProjectNameFileName 
  end if

  ' Runs the routine
   TestExecuteApp.Integration.RunRoutineEx sProjectName, sUnitName, sRoutineName, sParam

Хочу переписать его на python. По запросу в гугле выдает http://stackoverflow...tivex-in-python

 

Застрял на пункте с win32com.client.GetObject("TestExecute.TestExecuteApplication.12")
выдает ошибку, что "Не был произведен вызов CoInitialize"

 

Может у кого есть уже готовый класс?


Передача значения переменной при работе через COM

13 мая 2016 - 10:18

Запускаю скрипты testexecute через COM

Как передавать значение переменной?

Например, в функцию

function b(a) {
   Log.Message(a);
}

Ну и сам код (извините за vbs :)

Sub MySub
  ' Initialize variables
  sProjectNameFileName = "\\xxx\d\autotests\Autotests.pjs"
  sProjectName = "Autotests"
  Set cmdLine = Wscript.Arguments		
  sUnitName = cmdLine(0)
  sRoutineName = cmdLine(1)

  ' Checks if TestExecute is open
  Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
  Set colItems = objWMIService.ExecQuery("Select * from Win32_Process WHERE Name = 'TestExecute.exe'") 
  
  ' Creates TestExecute object
  if colItems.Count = 0 then
	Set WshShell = WScript.CreateObject("Wscript.Shell")
	WshShell.Run Chr(34) & "C:\Program Files (x86)\SmartBear\TestExecute 11\Bin\TestExecute.exe" & Chr(34), 1, False
	WScript.sleep(5000)
  end if	
  
  ' Connects TestExecute object
  Set TestCompleteApp = GetObject(,"TestExecute.TestExecuteApplication.11")
  
  ' Opens the project
  If Not TestCompleteApp.Integration.IsProjectSuiteOpened Then
	TestCompleteApp.Integration.OpenProjectSuite sProjectNameFileName
  end if

  ' Runs the routine //Вот здесь нужно как-то передавать значение переменной
  TestCompleteApp.Integration.RunRoutine sProjectName, sUnitName, sRoutineName

  Set TestCompleteApp = nothing

End Sub

MySub

Как отключить логи в TestComplete/TestExecute?

08 апреля 2016 - 16:05

Перехожу на собственные логи, в настройках нашел лишь как сократить хранение врезанных логов до 1.

Как их полностью отключить?


TestComplete перестает видеть java

29 декабря 2015 - 16:49

У меня есть 

Sys.Process("javaw")

а дочерние моменты ТС перестает видеть. И в дереве объектов их нет. Хоть софт переоткрывай, хоть ТС - спасает только перезагрузка системы

да, сами дочерние элементы (приложение на свинге) прекрасно работают


Работа с TestComplete из cmd

24 декабря 2015 - 08:58

Здравствуйте, есть пара вопросов

 

1. Можно ли запускать скрипты проекта из командной строки при открытом Тесткомплите?

Возможность, описанная в документации, позволяет лишь с запуском тесткомплита.

Пример доки http://automated-360...e-command-line/

 

2. Можно ли передавать параметры?

Я хочу запустить 

function test(a) {

   Log.Message(a);

}

 

P.s. пока что как единственный вариант второго пункта вижу сохранение данных в файл и чтение их из скрипта