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

Фотография

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


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 Stanislav_alphaopen

Stanislav_alphaopen

    Новый участник

  • Members
  • Pip
  • 68 сообщений
  • ФИО:Васенков Станислав
  • Город:Москва

Отправлено 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"

 

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


  • 0

#2 BadMF

BadMF

    Специалист

  • Members
  • PipPipPipPipPip
  • 809 сообщений
  • ФИО:Dmitry Petrov

Отправлено 29 августа 2016 - 14:48

написал не до конца поняв вопрос. думаю я тут ничем не помогу =)


Сообщение отредактировал BadMF: 29 августа 2016 - 15:01

  • 0

#3 BadMF

BadMF

    Специалист

  • Members
  • PipPipPipPipPip
  • 809 сообщений
  • ФИО:Dmitry Petrov

Отправлено 29 августа 2016 - 14:51

.


Сообщение отредактировал BadMF: 29 августа 2016 - 15:01

  • 0

#4 Stanislav_alphaopen

Stanislav_alphaopen

    Новый участник

  • Members
  • Pip
  • 68 сообщений
  • ФИО:Васенков Станислав
  • Город:Москва

Отправлено 30 августа 2016 - 12:57

Немного разобрался

def conn(project_path):
    pythoncom.CoInitialize()
    test_execute_app = win32com.client.Dispatch("TestExecute.TestExecuteApplication.12")
    integration_object = test_execute_app.Integration

    integration_object.OpenProjectSuite(project_path)
    print 'project suite is opened: ' + str(integration_object.IsProjectSuiteOpened())

    integration_object.RunRoutine('Framework', 'uUserTests', 'test1')
    pythoncom.CoUninitialize()

почему-то вылетает предпоследний пункт - integration_object.RunRoutine('Framework', 'uUserTests', 'test1'), выдает что com_error: (-2147352567, '\xce\xf8\xe8\xe1\xea\xe0.', (0, None, u'Unable to find the specified element. Project: Framework, UnitName: uUserTests, RoutineName: test1', None, 0, -2147352567), None)

хотя эта функция в этом скрипте в этом проекте есть


  • 0

#5 Stanislav_alphaopen

Stanislav_alphaopen

    Новый участник

  • Members
  • Pip
  • 68 сообщений
  • ФИО:Васенков Станислав
  • Город:Москва

Отправлено 30 августа 2016 - 15:55

Создал тему на https://community.sm...-p/125967#M7113

 

P.s. Как справлюсь с задачей, выложу вам как быстро запустить Python сервак на flask для управления TC извне


  • 0

#6 Stanislav_alphaopen

Stanislav_alphaopen

    Новый участник

  • Members
  • Pip
  • 68 сообщений
  • ФИО:Васенков Станислав
  • Город:Москва

Отправлено 14 ноября 2016 - 12:30

как и обещал, выложил скрипт

https://github.com/s..._testexecute.py

жду ваших обсуждений :)


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных