События ожидания в Quik Test Professional (QTP)
В данном посте будут расмотренны вопросы
- События ожидания в QTP
- Использование свойства Object для обращения к DOM свойствам объекта в Quick Test professional скрипте
- Пример programmatic Description в QTP или по русски программируемое описание в QTP
- Пример поиска Dom свойств объекта для использования в контексте ожидания загрузки
- Примеры использования методов ожидания в QTP
Как-то возник вопрос о том как оценить статус загрузки страницы браузера в QTP и ее дочерних объектов. Между прочим синхронизация очень важный момент при разработки автотестов. В будущем посте я расскажу об основных на мой взгляд правилах создания автотестов и фреймворка для набора тестов.
Первым делом пришла мысль об использование метода Sync объекта Browser.
Суть данного метода в том, что бы тест ожидал пока браузер не осуществит навигацию.
Также можно воспользоваться методом WaitProperty . Вкратце суть данного метода ожидание до того момента, когда заданное свойство объекта сравняется заданному значению свойства.
Еще можно использовать метод Exist. C данным методом все просто. Он возвращает true или false в зависимости от того существует ли заданный объект. И соответственно его удобно применять в if/else конструкциях.
Далее очень полезное свойство объектов Object, правда, к сожалению применимое только в рамках использования браузера Internet Explorer. Через данное свойство можно обращаться к различным DOM свойствам и методов указанного объекта. Приведу пример в рамках данного поста:
Есть веб приложение, в котором после полной загрузки документа border-color таблицы, в которой отображается документ, становится равным определенному цвету. Для начала я написал функцию, ожидающую полной загрузки документа на основании данного условия.
Public browdes
Set browdes = Description.Create
Browdes(“micclass”).Value=”Browser”
Function waitforload()
Set strbC=Browser(browdes).Frame(“html id:=someframe”).WebTable(“html id:=sometable”).Object. borderColor
Do Until strbC = “#00a86b”
Wait 1
Loop
End function
Но как я позже убедился в случае, если возникает ошибка БД и документ не отображается, а вместо него отображается стек трейс ошибки БД, то функция уходит в бесконечное ожидание. Т.к. в данном случае borderColor не изменяется. Также я пробовал экспериментировать со свойством Browser(browdes).Object. StatusText , но это свойство браузера менялось при каждой подгрузки картинки в документе. В итоге я решил использовать свойство фрейма в котором рисовалась таблица документа. А именно свойство readyState. И в итоге получил такую функцию.
Public browdes
Set browdes = Description.Create
Browdes(“micclass”).Value=”Browser”
Function waitforload()
Set strrS=Browser(browdes).Frame(“html id:=someframe”).Object.readyState
Do Until strrS = “complete”
Wait 1
Loop
End function
В итоге получается следующий список советов для поиска нужного свойства
- Прочитать про DOM свойства и методы интересуемого объекта или объектов.Например в MSDN
- Активно использовать Object Spy и смотреть не только Identification properties, но и Native.
- Определить список свойств, которые хочется использовать. И написать тестовую функцию, которая в цикле заданное количество раз обращается к данным свойствам объекта. И выводит их значения в лог например при помощи метода Print.
Метод | Ссылка на пример |
Sync | Sync in QTP |
WaitProperty | WaitProperty in QTP |
Exist | Exist in QTP |
Комментариев нет:
Отправить комментарий