qtp tutorial 7 qtp s object identification paradigm how qtp identify objects uniquely
Как QTP идентифицира обекта уникално? - Това е 7-ми урок за QTP от нашата серия за обучение по QTP.
Оборудваме се с всички основни концепции, които ще ни позволят да пишем стабилни QTP тестове . Покрихме QTP Настройки за запис и изпълнение , Работа с изглед на ключови думи и другите свързани теми.
=> Щракнете тук за серията QTP Training Tutorials
Това е следващата статия от поредицата, която говори за ключов аспект на QTP - Механизмът, който използва за идентифициране на обект по уникален начин . Когато погледнете екрана по-долу:
В този диалогов прозорец има 3 бутона и 2 текстови полета, заедно с различни други елементи.
В предишните примери, когато въведохме потребителското име и паролата, видяхме как QTP записва същите операции по отношение на програмен код, както и таблица в изгледа на ключови думи. Сега, по време на възпроизвеждане, как QTP знае, че стойността, която предоставяме като име на агент или парола, трябва да отиде съответно в тези полета за редактиране. Или откъде знае кой бутон да щракне, за да изпрати въведените стойности?
Нека се опитаме да намерим отговор на това.
какво е ключът за сигурност за безжична мрежа
Ясно е, че QTP по някакъв начин помни кой обект да действа. Начинът, по който го прави, съхранява обекта в AUT като тестов обект. След това той изследва неговите свойства и класифицира обекта. Например, когато срещне бутона OK, той изследва свойствата му и въз основа на тях класифицира обекта като ‘WinButton’.
QTP има предварително определен набор от свойства, които научава / съхранява за всеки клас обект, който идентифицира. Има 3 аспекта на това:
- Задължителни свойства : Това е списъкът със свойства за определен клас, който QTP винаги съхранява. Можем да кажем, че това е описанието на обекта. Той също така проверява това заедно с родителския обект, за да види дали описанието е достатъчно, за да идентифицира обекта уникално.
- Помощни свойства : В случай, че описанието на задължителните свойства е недостатъчно за идентифициране на Обекта, набор от незадължителни свойства ще бъдат добавени към описанието едно след друго, докато има достатъчно данни за идентифициране на обекта.
- Пореден идентификатор : Ако спомагателните свойства също не водят до уникална идентификация на обект, от QTP се добавя специален пореден идентификатор, като местоположението на обекта на страницата или в изходния код.
И така, QTP формира тестови обекти. Той използва това описание на тестовия обект, за да търси обектите, върху които да действа по време на сесия на изпълнение. Той избира обектите, които съвпадат идеално с описанието, което съдържа. Тези обекти се извикват Обекти за изпълнение.
Освен ако приложението ви не се е променило значително, описанието на тестовия обект, което QTP има, е достатъчно за намиране на обект.
За обекта WinButton, който имаме в нашето приложение Flight, нека видим какви свойства е съхранил QTP. Тази информация е достъпна в хранилището на обекти. Опцията в менюто „Ресурси-> Хранилище на обекти“ ще стартира ИЛИ за нас. Като алтернатива можете да използвате CTRL + R или да кликнете върху иконата.
Ако забележите в горния прозорец, той съхранява ‘текста’ в WinButton като свое описание, за да идентифицира този бутон по време на изпълнение.
За по-сложни приложения тестерът може да добави или премахне определени свойства, за да направи описанието достатъчно стабилно, за да идентифицира обекта по време на изпълнение по-точно. За да направите това, просто кликнете върху иконата ‘+’.
Всички останали свойства на обекта ще бъдат показани. Потребителят може да избере да добави едно или повече от тези свойства.
Има и нещо, наречено „ Идентификатор на визуалната връзка ”На екрана ИЛИ за свойствата на WinButton.
Това е функция, която допълнително поддържа разпознаване на обекти според съседните им обекти в AUT. След като бъде зададено, това създава вид връзка за по-малко стабилните компоненти във вашия AUT с обектите, които могат да бъдат по-уникално идентифицирани. QTP ще идентифицира тези обекти, стига да поддържат относителното им положение спрямо тези уникални обекти.
За да зададем вид позиционна връзка, ще трябва да щракнем върху тази колона в ИЛИ и ще се появи следният екран:
В този екран изберете знака ‘+’, за да добавите обект, с който искате тестовият ви обект да има позиционна връзка.
Ще избера „Име на агент“ и ще кажа, че този обект трябва да бъде над бутона „ОК“.
Ето как настроих това:
Сега, в случай че някои свойства на бутона OK се променят в бъдеще, QTP ще го идентифицира, ако над него е „Име на агент“.
Интелигентна идентификация
най-добрите сайтове за гледане на дублирано аниме
Това е механизмът, използван от QTP в една от тези две ситуации. Описанието на обект, който QTP има:
- Не съвпада с никакви обекти по време на изпълнение
- Съвпада с множество обекти
Това е малко усъвършенствана концепция, така че ще стигнем до нея по-късно чрез някои примери за лесно и сложно разбиране.
Пореден идентификатор
Това е числова стойност, която изобразява относителния ред на обекта с обекти, които имат подобно описание. Ако обект 1 и обект 2 имат едни и същи задължителни и помощни свойства, тогава идентификаторът на реда ще се използва за разпознаване на обекта по уникален начин.
Тази стойност е свързана с другите обекти на екрана, така че в случай, че нещо се промени на екрана, този идентификатор може да не е полезен. Трябва да се отбележи, че ако задължителните и помощни свойства са достатъчни, тогава не се присвоява пореден идентификатор за запис. Той може да бъде добавен по-късно, като щракнете върху съответната колона за обекта в ИЛИ
Има 3 вида обикновени идентификатори:
- Индекс: това се основава на реда на поява на обект в кода на приложението
- Местоположение: въз основа на местоположението на екран или диалог или страница
- Време за създаване: Това се използва само за обекти на браузъра. В случай, че съществуват 2 браузъра с подобни свойства, тогава се взема предвид този, който е създаден първи и следващ.
Например, нека да разберем как работи идентификаторът ‘index’ в нашия екран за вход на полетни приложения:
Това са следните компоненти:
Както можете да видите, статичният текст и полетата за редактиране имат едно и също свойство „текст“.
Ако знам, че единият от тях е статичен текст, а другият е обект WinEdit, тогава изобщо няма проблем. Кажете, ако всички те се третират като WinObject, тогава ще трябва да посоча кой обект да действа. Това ще се случи само когато задължителната, помощна и интелигентна идентификация е неуспешна. Така че, за да кажа на QTP кое е какво, ще присвоя пореден идентификатор „Индекс“. Ще го направя от ИЛИ.
Ще задам статичния идентификатор на име на агент като 0, а за полето за редактиране ще го задам като 1.
Ето как изглежда:
Така че, ако имам нужда от достъп до статичния текст, ще го направя, както следва:
WinObject („текст: = Име на агент:“, индекс: = 0) - Това ще се отнася за статичния текст
WinObject („текст: = Име на агент:“, индекс: = 1) - Това ще се отнася до полето за редактиране
Същата теория се отнася и за идентификатора на местоположение, с изключение на това, че ще изберем местоположението в прозореца, за да определим числовата стойност, която е приложима за определен обект.
Конфигуриране на свойствата за идентификация на обект:
Задължителните, помощни свойства и идентификатори на поредните идентификатори, които трябва да бъдат взети предвид за обект от определен клас, който трябва да бъде разпознат, могат да бъдат конфигурирани с помощта на „Инструменти-> Идентификатор на обект“. Също така можем да зададем свойствата на интелигентната идентификация през този прозорец.
Прозорецът изглежда по следния начин:
Както се вижда на това изображение по-горе, средата може да бъде избрана от падащото поле. След като това бъде избрано, класовете обекти в съответните среди се показват в списъка. След като е избран обект, се показват задължителните и помощните свойства. Потребителят може да добавя / премахва допълнителни свойства към този списък.
Също така, интелигентната идентификация може да бъде активирана / деактивирана за определен клас обекти, когато е необходимо. За да зададете реда на идентификатора, има падащо меню, което може да бъде избрано за идентифициране на обекта, като се използва Местоположение, Индекс или Време на създаване (само за тип браузър).
Ще обобщим основните понятия, преди да преминем към пълноценни QTP програми. Следващата QTP статия ще има различни режими на запис, Object Spy, Object Repository и др.
=> Посетете тук за серията учебни уроци за QTP
Препоръчително четене
- Хранилище на обекти в QTP - Урок # 22
- Урок за QTP # 18 - Управлявани от данни и хибридни рамки, обяснени с примери за QTP
- QTP урок # 24 - Използване на виртуални обекти и сценарии за възстановяване в QTP тестове
- Урок за QTP # 6 - Разбиране на настройките за запис и стартиране на QTP за първия ни тест
- QTP урок # 23 - QTP Smart Object Identification, Sync Point и анализ на резултатите от теста
- QTP урок # 8 - Научете повече за QTP режимите на запис, Object Spy и Object Repositories
- Параметризиране в QTP (част 2) - Урок за QTP # 20
- QTP уроци - 25+ Micro Focus Quick Test Professional (QTP) учебни уроци