Как вы пишете свои тесты QTP? - PullRequest
6 голосов
/ 16 декабря 2009

Я экспериментирую с использованием QTP для некоторого тестирования автоматизации веб-приложений и мне было интересно, как люди обычно пишут свои тесты QTP. Используете ли вы карту объектов, описательное программирование, комбинацию или каким-либо другим способом все вместе? Любой маленький пример кода будет признателен, спасибо

Ответы [ 2 ]

8 голосов
/ 17 декабря 2009

Вот мое предложение.

1) Создайте свою матрицу требований к автоматизации тестирования. Вы можете использовать образцы из моего блога

http://automation -beyond.com / 2009/06/06 / QA-тест-автоматизация-требования-юзабилити /

http://automation -beyond.com / 2009/06/07 / QA-тест-автоматизации-требования-юзабилити-2 /

http://automation -beyond.com / 2009/06/10 / QA-тест-автоматизация требование-5-ремонтопригодность /

http://automation -beyond.com / 2009/06/08 / QA-тест-автоматизации, требования-надежность /

http://automation -beyond.com / 2009/06/09 / QA-тест-автоматизации, требования-масштабируемость /

2) Выберите ваш подход к автоматизации

3) Напишите сценарии тестирования в соответствии с выбранным вами подходом

Примечание. Способ репозитория QTP или Описательное программирование относятся к части распознавания графического интерфейса автоматизации внешнего функционального тестирования. Они имеют значение с точки зрения надежности и обслуживания. Технически, это почти то же самое. В обоих случаях вы должны хорошо понимать концепцию распознавания GUI, иначе у вас будут проблемы, независимо от подхода.

  • Вы можете сохранить свойства распознавания объектов GUI в XML-подобной структуре данных и сопоставить запись с английским именем. Всякий раз, когда изменяются свойства исходного объекта, вы обновляете свою запись в репозитории, в то время как код все еще ссылается на сопоставленное имя.
  • Или вы можете обращаться к объектам GUI, напрямую вставляя те же свойства распознавания в вызов функции. Всякий раз, когда изменяются свойства исходного объекта, вы должны изменить код. Но вам не нужно поддерживать дополнительные файлы вместе со своими скриптами.

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

Обратите внимание, что в зависимости от контекста нотация «Описательное программирование» может замедлять производительность ваших сценариев и всегда требует дополнительных усилий по обслуживанию, пока в других случаях использование только репозиториев объектов может привести к нежелательному дублированию описаний объектов или ограничить распознавание динамически изменяющегося графического интерфейса пользователя.
Я проиллюстрирую некоторые моменты, изложенные выше, в следующей статье: Небольшой тест производительности QTP: репозиторий объектов и описательное программирование

Примеры прямого кода (для практической автоматизации я рекомендую Перенос функций GUI ).

Описательное программирование - адресация объектов по физическим свойствам описания.

Dim sProfile
sProfile = "Guest"

Set objWebParent = Browser("title:=Select Profile").Page("title:=Select Profile")
Set objWebObject = objWebParent.Link("text:="&sProfile) 
boolRC = objWebObject.Exist(0) 
If Not boolRC Then
'error-handling
End If
objWebObject.Click

Адресация объектов по отображенным именам GUI

Browser("Select Profile").Page("Select Profile").Link("Guest").Click

Спасибо,
Альберт Гареев
http://automation -beyond.com /

1 голос
/ 13 января 2010

Я знаю, что опаздываю сюда, и у вас уже должно быть то, что вы ищете, но я хотел бы также предоставить свои материалы всем, кто посещает эту тему.

Как правило, я никогда не использую ИЛИ, если не сталкиваюсь со средой, в которой Описательное программирование запрещено. Совсем недавно я работал с интерфейсным интерфейсным приложением для мэйнфреймов, в котором абсолютно отсутствует соглашение об именах объектов. Если вы решите использовать описательное программирование с таким приложением, единственный способ работать с его объектами - это использовать порядковые идентификаторы индекса или местоположения, что не является наилучшим вариантом, если учесть сотню объектов на каждой панели.

Итак, ответ на ваш вопрос действительно зависит от окружающей среды и вашего опыта работы с OR и DP. Большинство людей, с которыми я работал на своей работе и в онлайн-сообществах, предпочитают работать с описательным программированием, когда это возможно. Тем не менее, я также видел, как люди творят чудеса с OR.

У меня есть несколько примеров кода, но, к сожалению, они имеют дело с Описательным Программированием. Например, в следующей статье рассказывается о создании модульных классов VBScript для разделения функциональности приложения на небольшие управляемые компоненты:

http://relevantcodes.com/qtp-using-classes-as-test-modules-i/

Аналогично, в этой статье показано, как Описательное программирование можно использовать для проверки нескольких свойств целевых объектов с помощью одного блока кода:

http://relevantcodes.com/qtp-verify-multiple-object-properties-an-elegant-approach/

Кроме того, демо-фреймворк также доступен для просмотра здесь:

http://relevantcodes.com/relevantcodes1one-qtp-automation-framework/

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

Спасибо,

Аншо Арора

(Спасибо за ссылку на оригинальные статьи, Мотти)

...