Получить ссылку на интерфейс API Quality Center ISupportCopyPaste с помощью QuickTest Pro - PullRequest
3 голосов
/ 21 января 2011

Quality Center OTA API предоставляет такие интерфейсы, как ISupportCopyPaste (копирование / вставка данных с использованием буфера обмена). Документированный способ получить ссылку на реализованный интерфейс:

'Declare a variable to hold the reference for the interface 
Dim bf As IBaseFactory2 
' By assigning the implementing object reference to the 
' IBaseFactory2 type variable, the type is cast to that of the 
' implemented interface. The new variable is a reference to the 
' IBaseFactory2 interface within the parent object. 
' tdc is the global TDConnection object. 
Set bf = tdc.BugFactory

Приведенный выше код написан на VB (который я не хочу использовать).
Однако QTP не допускает «как» в выражении Dim.
Может кто-нибудь сказать, как получить ссылку, используя QTP?
Любое другое решение этой проблемы? например: использование Python Win32

Ответы [ 2 ]

2 голосов
/ 23 января 2011

Причина, по которой QTP "не допускает As в Dim операторе" , заключается в том, что сценарии QTP основаны на VBScript , а не VB, а As - только VB (VBScript динамически набирается).

Если вы хотите использовать OTA в QTP, вы можете попробовать использовать объект QCUtil, который предоставляет QTP (см. Справку QTP для получения дополнительной информации).

Если QCUtil не дает нужных вам объектов, вы можете использовать любой язык, который знает, как взаимодействовать с COM, чтобы создать объект OTA (эти языки включают, но не ограничиваются, VB, VBScript, C ++ и .NET языки, я не уверен насчет Python).

Если вы решите использовать VBScript, вы можете создать объект OTA с помощью функции CreateObject VBScript (для получения дополнительной информации найдите OTA CreateObject).

0 голосов
/ 30 января 2011

Теоретически большинство объектов, представленных OTA, и интерфейсов, которые они предоставляют, - это IDispatch.

Другими словами; при работе с этими объектами из vbscript вам не обязательно приводить объект под рукой к ISupportCopyPaste. Вы можете просто вызывать методы для объекта под рукой, как если бы это был ISupportCopyPaste, вам просто нужно получить правильную сигнатуру метода.

...