2015-05-11 3 views
1

Я работаю над QTP Visual VID, он отлично работает, когда я добавляю исходный объект (см. Код) в репозиторий объектов. Но в файле справки QTP это упоминается что: «Указанный объект должен быть объектом из репозитория тестового объекта. Он не может быть тестовым объектом, указанным программным описанием».программно добавить объект в локальный репозиторий qtp

код я использую:

Set rc = VisualRelations.Create 
Set relation = rc.Add 

'****(Source Object) 
relation.relatedobjectpath = "Browser(""Oracle | PeopleSoft Enterprise"").Page(""Oracle | PeopleSoft Enterprise"").WebElement(""User ID:"")" 

relation.relativeposition = micRelLeft 
relation.setargument micrelinline, True 

Set des=Description.Create 
des.Add "micclass","WebEdit" 
des.Add "visual relations",rc 

'****(Target Object) 
Browser("name:=Oracle.*").Page("title:=Oracle.*").WebEdit(des).set "[email protected]" 
Set relation = Nothing 
Set rc = Nothing 

Есть ли способ, чтобы избежать зависимости от хранилища объектов. Если нет, можно ли динамически загружать исходный объект в репозиторий объектов и использовать его для VRI?

Благодаря & С уважением,

Sreenisha Sreenivasan

ответ

2

Да, это может быть сделано, есть API для этого, в разделе "HP QuickTest Professional Object Repository ссылку автоматизации" в интерактивной справке.

Однако вы не можете легко добавить новый объект к уже загруженному ИЛИ. Цитируя выше DOX, это говорит, что это (почти):

Примечания: Вы можете использовать объект автоматизации модель Repository Object для манипулировать общие хранилища объектов, сохраненные в файловой системе. Если вы хотите управлять репозиторием общих объектов, хранящимся в Quality Center, вы должны загрузить репозиторий общих объектов и сохранить его в файловой системе, прежде чем использовать объект автоматизации объекта Replaceitory , чтобы управлять им.

Это также подразумевает, что вам необходимо загрузить (или найти) файл tsr, обработать его с помощью API, выгрузить загруженные в настоящее время ORs и повторно загрузить их. Я считаю, что это слишком много хлопот, чтобы создать тривиальный тестовый объект.

Таким образом, следующий обходной путь оказался полезным:

  • Подготовить «шаблон» или въездной правого класса для «якорного» объекта с помощью ИЛИ редактора.
  • Убедитесь, что он содержит все свойства, которые вы хотите контролировать, и установите их для любого значения.
  • Также подготовьте визуальное отношение, чтобы зависеть от этого тестового объекта. Конечно, это визуальное отношение не будет работать, если вы попытаетесь найти тестовый объект из редактора OR.
  • Затем во время выполнения программно модифицируйте свойства TO объекта testobject с помощью .setTOProperty, чтобы его свойства были установлены на значение, которое необходимо ожидать в этом фактическом случае.

Визуальная связь будет работать, даже несмотря на то, TO значения Свойства в „якоря“ TestObject не было зафиксировано на „компиляции“ время и без использования достаточно сложной или API, и без разгрузки/перезагружен ИЛИ файлы. **

Как побочное примечание, из-за серьезных ограничений визуальных отношений, избегайте их вообще. Рано или поздно вы хотите, чтобы визуальное отношение зависело от объекта привязки «якорь», который сам зависит от визуального отношения (не возможно - серьезного ограничения, которого я не вижу в причине), и рано или поздно вам надоедает решение, которое я изложил из-за его косвенного характера (который возвращает вас к исходному вопросу).

Альтернатива заключается в создании кода сценария делает эквивалент визуальной связи, т.е. выборки х и/или у позиции «якоря» TestObject и создать описание для соответствующего объекта, «угадывание» ее х/y (или другие свойства) с использованием описательного программирования через объект Description или путем перечисления объектов-кандидатов с использованием .ChildObjects и некоторого кода.

Это, с использованием разумного базового библиотечного дизайна, создает компактные, поддерживаемые, читаемые решения без зависимостей OR и без ограничений, присущих функции визуальных отношений.

Смежные вопросы