Интелигентна идентификация в QTP/UFT с Пример
⚡ Умно обобщение
Интелигентната идентификация е резервен механизъм в UFT Един за локализиране на обект, когато неговото научено описание вече не съответства на тестваното приложение, като се използват базови и опционални свойства на филтъра, за да се стесни списъкът с кандидати до едно съвпадение.

Какво е интелигентна идентификация QTP/UFT?
Интелигентна идентификация е резервен механизъм за разпознаване на обекти в OpenText UFT Първо, инструментът, известен преди като HP QuickTest Professional (QTP). Ако нормалният процес на идентификация не може да намери уникално съвпадение за наученото описание на обекта, UFT задейства интелигентна идентификация, при условие че механизмът е активиран в настройките за идентификация на обекти за този клас обект.
За разлика от наученото описание, интелигентната идентификация не изисква точно съвпадение за всяко съхранено свойство. Тя оценява две категории свойства, за да стесни набора от кандидат-обекти до точно един:
- Свойства на основния филтър. Най-фундаменталните свойства на клас тестови обекти; тези, чиито стойности не могат да се променят, без да се промени същността на оригиналния обект.
- Допълнителни свойства на филтъра. Поддържащи свойства, които помагат за идентифицирането на обект, но е по-вероятно да се променят с течение на времето.
Когато се изпълнява интелигентната идентификация, UFT „забравя“ наученото описание и изгражда нов списък с кандидати, съдържащ всеки обект, който съответства на всички основни свойства на филтъра. След това допълнително стеснява този списък, като проверява допълнителните свойства на филтъра едно по едно, докато не остане само един обект.
Ако интелигентната идентификация бъде извикана по време на сесия на изпълнение, дървото с резултатите от теста регистрира предупредително съобщение, потвърждаващо, че механизмът е бил използван, и в резултатите се вмъква стъпка за интелигентна идентификация, така че отклонението от наученото описание да остане видимо.
Интелигентната идентификация е на трето място в UFTйерархията на идентификацията на обекти, след наученото описание и всеки визуален идентификатор на релация и преди ординалния идентификатор, използван като последна мярка. Разбирането къде се вписва, обяснява защо пълното му деактивиране, вместо коригиране на основните свойства, рядко е най-добрият дългосрочен избор за скрипт, който се изпълнява често.
Свойства на основния филтър спрямо свойствата на допълнителния филтър
И двата филтъра работят заедно, но играят различни роли в описания по-горе процес на елиминиране. Сравнението по-долу пояснява кога се използва всеки един от тях и каква елиминационна мощност носи всеки от тях.
| Аспект | Свойства на основния филтър | Незадължителни свойства на филтъра |
|---|---|---|
| Роля | Съставете първоначалния списък с кандидати | Стеснете списъка с кандидати до един обект |
| Стабилност | Почти никога не се променят, без да се промени идентичността на обекта | Може да се променя периодично, без да се променя идентичността на обекта |
| Правило за съвпадение | Всеки кандидат трябва да отговаря на всички базови свойства | Проверява се едно свойство наведнъж; свойство се пропуска, ако би елиминирало всички кандидати |
| Типичен пример | HTML етикет, клас на обект, индекс | Име, HTML идентификатор, алтернативен текст, източник на изображението |
| Където е конфигурирано | Идентификация на обекти > Конфигуриране > Свойства на базовия филтър | Идентификация на обекти > Конфигуриране > Опционални свойства на филтъра |
Тъй като едно и също свойство не може да присъства и в двата списъка, планирайте разделянето внимателно. Свойства, които определят какво представлява даден обект по същество, принадлежат към базовия списък; свойствата, които просто помагат за разграничаването му от подобни обекти, принадлежат към незадължителния списък.
Как работи интелигентната идентификация: Процесът стъпка по стъпка
Интелигентната идентификация се активира само след като наученото описание и който и да е идентификатор на визуална релация не успеят да локализират нито един обект. След като бъде задействана, UFT действа чрез предвидим, четириетапен процес на елиминиране:
- Преформулирайте списъка с кандидати. UFT игнорира наученото описание и сканира родителя на обекта за всеки обект, който съответства на всички свойства на базовия филтър.
- Приложете първото незадължително свойство. UFT премахва всеки кандидат, който не съответства на първото свойство в списъка с незадължителни свойства на филтъра.
- Оценете резултата. Ако остане повече от един кандидат, UFT повтаря предишната стъпка със следващото незадължително свойство. Ако филтърът би елиминирал всички останали кандидати, UFT пропуска това свойство и преминава към следващото.
- Спрете на един мач. UFT повтаря цикъла на филтриране и оценяване, докато не остане точно един обект или докато не се изчерпят допълнителните свойства за проверка.
Ако процесът на елиминиране все още не може да изолира един обект, UFT връща се към наученото описание плюс порядков идентификатор, като например индекс, местоположение или време на създаване. Когато дори тази комбинация не успее да идентифицира обекта, сесията на изпълнение спира и показва грешка по време на изпълнение.
Как да активирате или деактивирате интелигентната идентификация
Интелигентната идентификация се конфигурира за всеки клас тестов обект от Инструменти > Идентификация на обектиИзберете средата и класа на обекта, включете Активиране на интелигентна идентификация, след което щракнете върху Определен за да изберете Базовите и Опционалните свойства на филтъра за този клас. Същият диалогов прозорец ви позволява да изключите опцията за клас, който винаги трябва да използва своето научено описание.
Как работи интелигентната идентификация (видео ръководство)
Видеото по-долу показва процеса на елиминиране на основния и опционалния филтър на живо.
Кликнете тук ако видеото не е достъпно
Предимства и недостатъци на използването на интелигентна идентификация
Интелигентната идентификация добавя устойчивост, но тази устойчивост носи разходи по време на изпълнение. Претеглете и двете страни, преди да я оставите активирана по подразбиране за цялото хранилище на обекти.
- ✅ Преживява малки промени в потребителския интерфейс: Преименуван атрибут или изместена позиция в страницата вече не прекъсва всеки скрипт, който докосва обекта.
- ✅ Намалява поддръжката на хранилището на обекти: Тестерите прекарват по-малко време в повторно записване на обекти след малки издания на front-end.
- ✅ Остава видим в резултатите: Всяко извикване регистрира предупреждение, така че екипите могат да одитират колко често е наистина необходима резервната функция.
- ⚠️ По-бавно изпълнение на теста: Изграждането и филтрирането на списък с кандидати отнема значително повече време от директното съвпадение на имоти, а цената се умножава в рамките на голям апартамент.
- ⚠️ Може да маскира реални дефекти: Ако интелигентната идентификация тихо открие подобен обект, истинската регресия на потребителския интерфейс може да остане незабелязана.
- ⚠️ Необходим е периодичен преглед: Базовите и незадължителните свойства на филтъра все още се нуждаят от периодичен преглед с развитието на приложението.
Повечето екипи оставят интелигентната идентификация активирана за проучвателни и нискочестотни скриптове, след което я деактивират избирателно за обекти, критични за производителността, след като свойствата за идентификация на обекта се стабилизират.
Променете свойството на обекта, за да избегнете интелигентната идентификация
Гъвкавостта на интелигентната идентификация идва с цената на изпълнение, описана по-горе, така че много екипи предпочитат сами да поправят свойствата за идентификация на обекти, вместо да разчитат многократно на резервния вариант. Внимавайте за два сигнала, че корекцията на свойство е по-добра от резервния вариант по време на изпълнение: предупреждение за интелигентна идентификация, което се появява при почти всяко изпълнение, и скрипт, който е станал забележимо бавни, откакто резервният вариант е започнал да се задейства. И двата сочат към обект, чиито свойства за идентификация по подразбиране вече не отговарят на приложението, а не към еднократен проблем в потребителския интерфейс. Видеото по-долу демонстрира корекцията върху реална форма за вход.
Кликнете тук ако видеото не е достъпно
Видео препис: Ключови изводи
- Интелигентната идентификация забавя изпълнението на скриптовете, което не е желателно за големи или често изпълнявани пакети.
- За да го избегнете напълно, променете свойствата за идентификация на обекти по подразбиране, вместо да разчитате на резервния вариант.
- In Идентификация на обект, премахнете „име“ от задължителните свойства и го заменете с „HTML id“, за да направите теста независим от промените в името.
- Запишете отново същите стъпки, след като списъкът със задължителни свойства бъде актуализиран.
- Ако името по-късно се промени от „Изпращане“ на „Вход“, скриптът вече ще се изпълнява без да задейства интелигентна идентификация.
- По подобен начин, ако някое задължително или помощно свойство на тестван обект се променя често, заменете го с по-стабилно свойство, за да се поддържа бързото изпълнение на скрипта.
- Промяната на свойствата е умение, изградено с опит; то се подобрява, колкото повече работите с инструмента.
Деактивирайте интелигентната идентификация с помощта на VBScript
Интелигентната идентификация може да бъде изключена и за цяла сесия на изпълнение, без да се докосва хранилището на обекти, като се използва Деактивиране на алгоритъма за повторно възпроизвеждане настройка по време на изпълнение. Това е полезно, когато даден скрипт трябва да се провали незабавно при несъответствие на свойствата, вместо тихо да се връща към процеса на елиминиране.
' Disable Smart Identification for this run session Setting("DisableReplayUsingAlgorithm") = 1 Browser("Mercury Tours").Page("Find Flights").WebEdit("userName").Set "mercury" ' Re-enable Smart Identification once the strict steps are done Setting("DisableReplayUsingAlgorithm") = 0
Поддържайте деактивирания прозорец възможно най-кратък. Стъпките, изпълнявани в него, трябва да съответстват точно на наученото им описание, така че всяко легитимно отклонение в тестваното приложение да доведе до незабавен неуспех, а не до грациозен резервен режим.
Ресурси
Изтеглете уеб страниците, използвани в горния урок, за самостоятелна практика

