Как бороться с изменением имен страниц? - PullRequest
3 голосов
/ 19 июля 2011

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

Есть ли более эффективный способ использования QTP, поэтому мне не нужно делать столько переделок, если программисты меняют названия страниц и т. Д.?

Спасибо ... GB


Эта строка кода больше не работает, поскольку название браузера / страницы было изменено с «ОБЗОР ДОКУМЕНТОВ» на «УДАЛИТЬ ВСЕ ДОКУМЕНТЫ»:

DAF = браузер ( "REVIEW_DOCS"). Page ( "REVIEW_DOCS"). Рама ( "главный"). WebElement ( "DAF"). GetROProperty ( "InnerText")

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

Спасибо за любую помощь ...

Ответы [ 4 ]

3 голосов
/ 19 июля 2011

Это зависит от того, что вы подразумеваете под словом Page .

Если вы имеете в виду:

Веб-страница

Вероятно, объекты, которые не были идентифицированы, являются Frame тестовыми объектами. Вы должны добраться до места, где объект не идентифицирован, и обновить описание Frame в хранилище объектов (вы можете использовать регулярные выражения, чтобы быть более общими). Если вы используете более позднюю версию QTP Режим обслуживания Maintainance сделает это намного проще (но, насколько я помню, он был введен после QTP 9.2).

Если вы имеете в виду:

Page Тестовый объект

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

1 голос
/ 30 декабря 2014

Одним из способов решения этой проблемы является применение статического описательного программирования к вашим сценариям QTP, а не полагаться исключительно на репозиторий объектов.В вашей ситуации вы можете использовать встроенное регулярное выражение * для свойства title и универсальное свойство miccclass для Browser для работы с объектами страницы с часто меняющимся заголовком:

Set DAF = Browser("micclass:=Browser").Page("title:=.*").Frame("main").WebElement("DAF").GetROProperty("innertext")

QTP должен найти свойство ROВы устанавливаете переменную «DAF» независимо от заголовка страницы.

1 голос
/ 29 декабря 2014

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

Может эта ссылка поможет вам: - http://www.learnqtp.com/regular-expressions-regularized/

0 голосов
/ 19 июля 2011

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

...