Описательное программирование в QTP / UFT: Dynamic & Статический

Содержание:

Anonim

Что такое описательное программирование?

Описательное программирование используется для выполнения операций с объектом в AUT, определение которого не хранится в репозитории объектов. Используя этот механизм, вы можете обойти идентификацию из репозитория объектов и указать описание объекта в самом заявлении.

Имя объекта просто используется для сопоставления объекта в сценарии с его описанием в репозитории объектов. Это означает, что если вы измените имя объекта в сценарии и репозитории объектов, сценарий должен запуститься. Посмотрите следующее видео об этой концепции

Нажмите здесь, если видео недоступно

Видео основные моменты

  • Удалите описание объекта для имени агента Win Edit Box из репозитория объектов. Если вы снова запустите тест, он не удастся, так как он не сможет распознать объект. Давайте разберемся, почему скрипт не работает.
  • Во время выполнения Micro Focus UFT определяет операцию, которая выполняется в окне WinEdit, а описание объекта в репозитории объектов сохраняется как имя агента. Это имя используется для отслеживания объекта в репозитории объектов. Для родителя у вас не может быть двух дочерних объектов с одинаковым именем. Следовательно, QTP однозначно отображает объект в репозитории. Затем он использует сохраненное описание в репозитории объектов и заменяет имя описанием. Затем он использует этот оператор для идентификации объекта в тестируемом приложении / li>
  • Поскольку в нашем случае мы полностью удалили это описание объекта, скрипт не работает / li>
  • Но что, если вместо QTP, заменяющего описание объекта, вы, как тестировщик, напрямую укажете описания объекта в своем скрипте. Это не что иное, как «Описательное программирование».

Типы описательного программирования

Вы можете использовать описательное программирование двумя способами.

  1. Статический
  2. Динамический

Статическое описательное программирование

В статическом методе для идентификации объекта вы указываете свойство объекта в следующем формате

свойство: = значения,

Этот формат называется парой значений свойств и заключен в кавычки>

Если ваш объект использует несколько описаний для идентификации, вы можете указать их с помощью запятых >

Таким образом, в нашем случае описание для имени агента становится

"nativeclass: = Edit", "прикрепленный текст: = Имя агента:"

Динамическое описательное программирование

Второй метод выполнения того же действия - использование динамического описательного программирования.

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

В таких случаях вы можете использовать класс описания, предоставляемый QTP.

Синтаксис для создания объекта описания:

Установите MyDescription = Description.Create ();MyDescription ("свойство"). Значение = "свойство-значение";

Это динамический метод

Зачем использовать описательное программирование?

Стенограмма видео

  • Вопрос на миллион долларов: зачем использовать DP, если процесс идентификации объекта обрабатывается QTP.
  • Предположим, вам поручили протестировать портал вакансий. Вы вводите поисковый запрос в портал и
  • ваш тест ожидает, что вы выберете все доступные вакансии и щелкните по заявке на вакансию.
  • Но количество отраженных заданий будет зависеть от поискового запроса и заданий, доступных во время выполнения скрипта, но невозможно заранее предсказать количество заданий, которые будут отражены.
  • В таких случаях вы можете использовать описательное программирование. Несмотря на то, что вы не знаете количество и имена флажков, вы знаете класс для объектов как «WebCheckBox».
  • Вы можете использовать метод ChildObject для возврата объектов, принадлежащих определенному родителю.
  • Строка кода вроде -
    Установите allObjects = Browser ("Jobs"). Page ("QTP"). ChildObjects ()
  • Вернет все дочерние объекты для этой страницы.
  • Но нам нужны только объекты WebCheckBox. Для этого мы можем создать объект создания фильтра и установить его свойство как веб-флажок и передать этот фильтр в качестве аргумента для метода ChildObjects.
  • В этом случае возвращаются только флажки.
  • Затем вы можете написать такой код, который обращается ко всей коллекции флажков, начиная с нуля, и устанавливает все флажки в положение ВКЛ.
  • Затем вы можете нажать кнопку «Применить», чтобы завершить тест.
  • Вы также можете использовать описательное программирование для запуска объектов, которые трудно записать, таких как автоматически скрытые панели, объекты с изменяющейся иерархией, вложенные внутренние объекты, подменю.
  • Вы также можете выполнять расширенные манипуляции со строками с помощью описательного программирования.
  • В сочетании со свойством index описательное программирование может быть очень полезным при идентификации сложных объектов.
  • Если вы используете программное описание для объекта в иерархии объектов, вам нужно будет использовать программирование описания для последующих дочерних объектов.
  • Например, для объекта страницы использовалось описательное программирование, но для последующего дочернего объекта используется WinEdit Object Repository, что неверно.
  • Напротив, здесь как для страницы, так и для WinEdit используется описательное программирование, что является правильным