DescriptЖивое программирование в QTP/UFT: динамическое и статическое
Что такое DescriptIve Программирование?
Descriptive программирование используется для выполнения операций над объектом в AUT, определение которого не хранится в репозитории объектов. Используя этот механизм, вы можете обойти идентификацию из репозитория объектов и предоставить объект DescriptИон в самом заявлении.
Имя объекта просто используется для сопоставления объекта в скрипте с его описанием в репозитории объектов. Это означает, что если вы измените имя объекта в своем скрипте и репозитории объектов, скрипт должен запуститься. Посмотрите следующее видео об этой концепции
Нажмите здесь если видео недоступно
Видео Основные
- Удалить объект DescriptИон имени агента Win Edit Box из репозитория объектов. Если вы запустите тест еще раз, он завершится неудачно, поскольку он не сможет распознать объект. Давайте разберемся, почему скрипт не работает
- Во время выполнения Micro Focus UFT идентифицирует операцию, выполняемую в поле WinEdit и объекте Description в репозитории объектов хранится как Agent Name. Он использует это имя для отслеживания объекта в репозитории объектов. Для родителя не может быть двух дочерних объектов с одинаковым именем. Следовательно, QTP уникально сопоставляет объект в репозитории. Затем он использует сохраненное описание в репозитории объектов и заменяет имя описанием. Затем он использует это выражение для идентификации объекта в тестируемом приложении
- Поскольку в нашем случае мы вообще удалили это описание объекта, скрипт не работает.
- Но что, если вместо замены QTP описания объекта вы, как тестировщик, напрямую укажете описания объектов в своем скрипте. Это не что иное, как «Descriptинтерактивное программирование»
Виды Descriptинтерактивное программирование
Вы можете использовать DescriptIve программирование двумя способами
- статический
- Dynamic
статический Descriptинтерактивное программирование
В статическом методе для идентификации объекта вы указываете свойство объекта в следующем формате
property:=values,
Этот формат называется парой значений свойства и заключается в кавычки.
Если ваш объект использует несколько описаний для идентификации, их можно указать через запятую
Итак, в нашем случае описание имени агента становится
"nativeclass:=Edit", "attached text:=Agent Name:"
Dynamic Descriptинтерактивное программирование
Второй метод выполнения того же действия — использование Dynamic DescriptIve программирование
Если ваш сценарий использует кандидата объекта описательного программирования несколько раз, будет очень утомительно указывать все пары значений свойств для каждого оператора.
В таких случаях вы можете воспользоваться Descriptионный класс предоставлено QTP
Синтаксис для создания объекта описания
Set MyDescription = Description.Create(); MyDescription("property").Value = "property-value";
Это Динамический метод
Зачем использовать DescriptIve Программирование?
Стенограмма видео
- Вопрос на миллион долларов заключается в том, зачем использовать DP, когда процесс идентификации объекта обрабатывается QTP.
- Предположим, вам поручили протестировать портал вакансий. Вы вводите поисковый запрос на портал и
- ваш тест предполагает, что вы выберете все доступные вакансии и нажмите «Применить вакансию».
- Но количество отображаемых заданий будет зависеть от поискового запроса и заданий, доступных на момент выполнения скрипта, но невозможно заранее предсказать количество заданий, которые будут отражены.
- В таких случаях можно использовать описательное программирование. Даже если вы не знаете количество и названия флажков, вы знаете класс для объектов, как «WebCheckBox
- Вы можете использовать Метод дочернего объекта для возврата объектов, принадлежащих определенному родителю
- Строка кода типа –
Set allObjects = Browser("Jobs").Page("QTP").ChildObjects()
- Вернет все дочерние объекты для этой страницы.
- Но нам нужен только WebCheckBox объекты. Для этого мы можем создать объект создания фильтра и установить его свойство как веб-флажок и передать этот фильтр как аргумент для метода ChildObjects
- В этом случае возвращаются только флажки.
- Затем вы можете написать такой код, который обращается ко всей коллекции флажков, начиная с нуля, и устанавливает все флажки ВКЛ.
- Далее вы можете нажать кнопку «Применить», чтобы завершить тест.
- Вы также можете использовать DescriptПрограммирование для запуска объектов, которые трудно записать, таких как автоматически скрываемые панели, объекты с изменяющейся иерархией, вложенные внутренние объекты, подменю.
- Вы также можете выполнять сложные манипуляции со строками, используя описательное программирование.
- В сочетании со свойством индекса описательное программирование может быть очень полезно при идентификации сложных объектов.
- Если вы используете программное описание для объекта в иерархии объектов, вам нужно будет использовать программирование описания для последующих дочерних объектов.
- Например, для объекта страницы использовалось описательное программирование, но для последующего дочернего объекта используется репозиторий объектов WinEdit, что неверно.
- Напротив, здесь и для Page, и для WinEdit используется описательное программирование, что правильно.