Розумна ідентифікація в QTP/UFT з прикладом
⚡ Розумний підсумок
Розумна ідентифікація – це резервний механізм у UFT Один для пошуку об'єкта, коли його вивчений опис більше не відповідає тестованому застосунку, використовуючи базові та додаткові властивості фільтра для звуження списку кандидатів до одного збігу.

Що таке розумна ідентифікація QTP/UFT?
Розумна ідентифікація є резервним механізмом розпізнавання об'єктів у OpenText UFT Один з них, інструмент, раніше відомий як HP QuickTest Professional (QTP). Якщо звичайний процес ідентифікації не може знайти унікального збігу для вивченого опису об'єкта, UFT запускає інтелектуальну ідентифікацію, за умови, що механізм увімкнено в налаштуваннях ідентифікації об'єктів для цього класу об'єкта.
На відміну від вивченого опису, Smart Identification не вимагає точного збігу для кожної збереженої властивості. Вона оцінює дві категорії властивостей, щоб звузити пул об'єктів-кандидатів до точно одного:
- Властивості базового фільтра. Найфундаментальніші властивості класу тестових об'єктів; ті, значення яких не можуть змінюватися без зміни сутності вихідного об'єкта.
- Додаткові властивості фільтра. Допоміжні властивості, які допомагають ідентифікувати об'єкт, але з більшою ймовірністю змінюються з часом.
Коли працює інтелектуальна ідентифікація, UFT «забуває» вивчений опис і перебудовує новий список кандидатів, що містить кожен об'єкт, який відповідає всім базовим властивостям фільтра. Потім він ще більше звужує цей список, перевіряючи додаткові властивості фільтра по черзі, доки не залишиться один об'єкт.
Якщо під час сеансу виконання викликається інтелектуальна ідентифікація, дерево результатів тестування реєструє попереджувальне повідомлення, яке підтверджує використання механізму, а крок інтелектуальної ідентифікації вставляється в результати, щоб відхилення від вивченого опису залишалося видимим.
Розумна ідентифікація посідає третє місце UFTієрархія ідентифікації об'єктів, після вивченого опису та будь-якого візуального ідентифікатора зв'язку, та перед порядковим ідентифікатором, який використовується як крайній засіб. Розуміння того, де він підходить, пояснює, чому його повне вимкнення, а не виправлення основних властивостей, рідко є найкращим довгостроковим вибором для скрипта, який часто виконується.
Властивості базового фільтра проти властивостей додаткового фільтра
Обидва фільтри працюють разом, але вони відіграють різні ролі в процесі усунення, описаному вище. Порівняння нижче пояснює, коли використовується кожен з них і яку здатність до усунення має кожен з них.
| Аспект | Властивості базового фільтра | Додаткові властивості фільтра |
|---|---|---|
| Роль | Сформуйте початковий список кандидатів | Звузьте список кандидатів до одного об'єкта |
| Стабільність | Майже ніколи не змінюються, не змінюючи ідентичності об'єкта | Може періодично змінюватися, не змінюючи ідентичності об'єкта |
| Правило зіставлення | Кожен кандидат повинен відповідати всім базовим властивостям | Перевіряється по одній властивість за раз; властивість пропускається, якщо вона виключає всіх кандидатів |
| Типовий приклад | Тег HTML, клас об'єкта, індекс | Ім'я, HTML-ідентифікатор, альтернативний текст, джерело зображення |
| Де налаштовано | Ідентифікація об'єктів > Налаштувати > Властивості базового фільтра | Ідентифікація об'єктів > Налаштувати > Додаткові властивості фільтра |
Оскільки одна й та сама властивість не може бути в обох списках, ретельно сплануйте поділ. Властивості, які визначають, чим є об'єкт по суті, належать до базового списку; властивості, які лише допомагають відрізнити його від подібних об'єктів, належать до додаткового списку.
Як працює розумна ідентифікація: покроковий процес
Інтелектуальна ідентифікація активується лише після того, як вивчений опис та будь-який візуальний ідентифікатор відношення не зможуть точно визначити жодного об'єкта. Після спрацювання, UFT працює через передбачуваний чотириетапний процес елімінації:
- Переформувати список кандидатів. UFT ігнорує вивчений опис та сканує батьківський об'єкт на наявність кожного об'єкта, який відповідає всім властивостям базового фільтра.
- Застосуйте першу необов'язкову властивість. UFT видаляє будь-якого кандидата, який не відповідає першій властивості у списку Додаткові властивості фільтра.
- Оцініть результат. Якщо залишиться більше одного кандидата, UFT повторює попередній крок з наступною додатковою властивістю. Якщо фільтр виключає всіх кандидатів, що залишилися, UFT пропускає цю властивість і переходить до наступної.
- Зупиніться на одному матчі. UFT повторює цикл фільтрації та оцінки, доки не залишиться рівно один об'єкт або доки не закінчаться додаткові властивості для перевірки.
Якщо процес елімінації все ще не може виділити один об'єкт, UFT повертається до вивченого опису плюс порядковий ідентифікатор, такий як індекс, розташування або час створення. Коли навіть ця комбінація не вдається ідентифікувати об'єкт, сеанс виконання призупиняється та відображає помилку під час виконання.
Як увімкнути або вимкнути інтелектуальну ідентифікацію
Інтелектуальна ідентифікація налаштовується для кожного класу тестового об'єкта з Інструменти > Ідентифікація об'єктівВиберіть середовище та клас об'єкта, увімкніть Увімкнути інтелектуальну ідентифікацію, потім натисніть кнопку Конфігурувати щоб вибрати Базові та Додаткові властивості фільтра для цього класу. У цьому ж діалоговому вікні можна вимкнути цю опцію для класу, який завжди має використовувати свій вивчений опис.
Як працює інтелектуальна ідентифікація (відеоінструкція)
У відео нижче на практичному прикладі показано процес видалення базового та додаткового фільтрів.
Натисніть тут якщо відео недоступне
Переваги та недоліки використання смарт-ідентифікації
Інтелектуальна ідентифікація додає стійкості, але ця стійкість має певні витрати під час виконання. Зважте обидві сторони, перш ніж залишати її ввімкненою за замовчуванням для всього репозиторію об'єктів.
- ✅ Витримує незначні зміни інтерфейсу користувача: Перейменований атрибут або зміщена позиція на сторінці більше не порушує кожен скрипт, який торкається об'єкта.
- ✅ Зменшує обсяг обслуговування репозиторію об'єктів: Тестери витрачають менше часу на повторний запис об'єктів після невеликих релізів фронтенду.
- ✅ Залишається помітним у результатах: Кожен виклик реєструє попередження, тож команди можуть перевірити, як часто резервний варіант дійсно потрібен.
- ⚠️ Повільніше виконання тесту: Створення та фільтрація списку кандидатів займає значно більше часу, ніж пряме зіставлення об'єктів нерухомості, а вартість множиться на багато вищій для великого комплексу.
- ⚠️ Може маскувати реальні дефекти: Якщо Smart Identification непомітно знаходить подібний об'єкт, справжня регресія інтерфейсу користувача може залишитися непоміченою.
- ⚠️ Потребує періодичного перегляду: Базові та додаткові властивості фільтра все ще потребують періодичного перегляду в міру розвитку програми.
Більшість команд залишають інтелектуальну ідентифікацію ввімкненою для дослідницьких та низькочастотних скриптів, а потім вибірково вимикають її для критично важливих для продуктивності об'єктів, коли властивості ідентифікації об'єкта стабілізуються.
Змініть властивість об’єкта, щоб уникнути інтелектуальної ідентифікації
Гнучкість інтелектуальної ідентифікації пов'язана з певними витратами під час виконання, як описано вище, тому багато команд воліють самостійно виправляти властивості ідентифікації об'єктів, а не постійно покладатися на резервний варіант. Зверніть увагу на два сигнали того, що виправлення властивості перевершує резервний варіант під час виконання: попередження інтелектуальної ідентифікації, яке з'являється майже під час кожного запуску, та скрипт, який помітно став повільнішим з моменту початку спрацьовування резервного варіанту. Обидва сигнали вказують на об'єкт, властивості ідентифікації за замовчуванням якого більше не відповідають програмі, а не на одноразовий збій інтерфейсу користувача. У відео нижче демонструється виправлення на реальній формі входу.
Натисніть тут якщо відео недоступне
Відеотранскрипт: ключові висновки
- Розумна ідентифікація уповільнює виконання скриптів, що небажано для великих або часто запусканих пакетів.
- Щоб повністю уникнути цього, змініть властивості ідентифікації об'єкта за замовчуванням, замість того, щоб покладатися на резервний варіант.
- In Ідентифікація об’єкта, видаліть «name» з обов’язкових властивостей та замініть його на «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
Тривалість вимкненого вікна має бути якомога коротшою. Кроки, що виконуються всередині нього, повинні точно відповідати їхньому вивченому опису, тому будь-яке легітимне відхилення в тестованій програмі призведе до негайного збою, а не до коректного відновлення.
Ресурси
Завантажте веб-сторінки, використані у вищенаведеному посібнику, для самостійної практики

