qtp tutorial 7 qtp s object identification paradigm how qtp identify objects uniquely
Як QTP однозначно ідентифікує об’єкт? - Це 7-й навчальний посібник з QTP з нашої навчальної серії QTP.
Ми озброюємось усіма основними поняттями, які дозволять нам писати надійні тести QTP . Ми розглянули QTP Налаштування запису та запуску , Робота з поданням ключових слів та інші суміжні теми.
=> Клацніть тут для серії навчальних посібників з QTP
Це наступна стаття серії, яка розповідає про найважливіший аспект QTP - Механізм, який він використовує для унікальної ідентифікації об’єкта . Коли ви дивитесь на екран нижче:
У цьому діалоговому вікні є 3 кнопки та 2 текстових поля разом з різними іншими елементами.
У попередніх прикладах, коли ми вводили ім’я користувача та пароль, ми побачили, як QTP записував ті самі операції з точки зору програмного коду, а також таблицю в поданні ключових слів. Тепер, під час відтворення, як QTP знає, що значення, яке ми надаємо як Ім'я агента або Пароль, повинно переходити відповідно в ті поля редагування. Або як він знає, яку кнопку натиснути, щоб подати введені значення?
Спробуємо знайти відповідь на це.
найкраще безкоштовне програмне забезпечення для обслуговування Windows 10 -
Зрозуміло, що QTP якимось чином запам'ятовує, на який об'єкт діяти. Як це робиться, він зберігає об'єкт в AUT як тестовий об'єкт. Потім воно вивчає його властивості та класифікує об’єкт. Наприклад, коли він стикається з кнопкою OK, він перевіряє його властивості і на основі них класифікує об'єкт як 'WinButton'.
QTP має заздалегідь визначений набір властивостей, які він вивчає / зберігає для кожного класу об'єкта, який він ідентифікує. У цьому є 3 аспекти:
- Обов’язкові властивості : Це список властивостей для певного класу, який QTP завжди зберігає. Можна сказати, що це опис об'єкта. Він також перевіряє це разом із батьківським об'єктом, щоб перевірити, чи достатньо опису для унікальної ідентифікації об'єкта.
- Допоміжні властивості : Якщо опису обов’язкових властивостей недостатньо для ідентифікації Об’єкта, набір необов’язкових властивостей буде додано до опису один за одним, поки не буде достатньо даних для ідентифікації об’єкта.
- Порядковий ідентифікатор : Якщо допоміжні властивості також не призводять до унікальної ідентифікації об’єкта, QTP додає спеціальний порядковий ідентифікатор, наприклад, розташування об’єкта на сторінці чи у вихідному коді.
Отже, таким чином QTP формує тестові об’єкти. Він використовує цей опис тестового об’єкта для пошуку об’єктів, на які діятиме під час сеансу запуску. Він вибирає об’єкти, які ідеально відповідають опису, який він містить. Ці об’єкти називаються Об'єкти часу виконання.
Якщо ваша програма суттєво не змінила опис тестового об'єкта, який має QTP, достатньо для пошуку об'єкта.
Що стосується об’єкта WinButton, який ми маємо в нашій програмі Flight, давайте подивимось, які властивості зберігає QTP. Ця інформація доступна у сховищі об’єктів. Параметр меню “Ресурси-> Сховище об’єктів” запустить АБО для нас. Крім того, ви можете використовувати CTRL + R або натиснути на піктограму.
Якщо ви помітили у наведеному вище вікні, він зберігав 'текст' у WinButton як його опис для ідентифікації цієї кнопки під час виконання.
Для більш складних додатків тестер може додавати або видаляти певні властивості, щоб зробити опис достатньо надійним, щоб ідентифікувати об’єкт під час виконання точніше. Для цього просто натисніть на піктограму «+».
Будуть відображені всі інші властивості об’єкта. Користувач може додати один або кілька із цих властивостей.
Існує також щось, що називається “ Ідентифікатор візуального відношення ”На екрані АБО для властивостей WinButton.
Це функція, яка надалі підтримує розпізнавання об'єктів відповідно до сусідніх об'єктів в AUT. Після встановлення це створює своєрідне зв’язок для менш стабільних компонентів у вашому AUT з об’єктами, які можна більш ідентифікувати. QTP буде ідентифікувати ці об'єкти, доки вони зберігають своє відносне положення до цих унікальних об'єктів.
Щоб встановити своєрідне позиційне посилання, нам потрібно буде натиснути на цю колонку в АБО, і з’явиться наступний екран:
На цьому екрані виберіть знак «+», щоб додати об’єкт, з яким ви хочете, щоб тестовий об’єкт мав позиційне посилання.
Я виберу “Ім’я агента” і скажу, що цей об’єкт повинен бути вище кнопки “ОК”.
Ось як я встановив, що:
Тепер, у разі зміни деяких властивостей кнопки ОК у майбутньому, QTP визначить її, якщо над нею буде вказано «Ім'я агента».
Розумна ідентифікація
різниця між навантаженням і тестуванням продуктивності
Це механізм, який застосовується QTP в одній із цих двох ситуацій. Опис об'єкта, який має QTP:
- Не відповідає жодним об’єктам виконання
- Збіги з кількома об’єктами
Це трохи вдосконалена концепція, тому ми дійдемо до неї пізніше на деяких прикладах для легкого та детального розуміння.
Порядковий ідентифікатор
Це числове значення, яке відображає відносний порядок об’єкта з об’єктами, що мають подібний опис. Якщо об'єкт 1 і Об'єкт 2 мають однакові обов'язкові та допоміжні властивості, тоді порядковий ідентифікатор буде використовуватися для однозначного розпізнавання об'єкта.
Це значення пов'язане з іншими об'єктами екрану, тому у випадку, якщо щось зміниться на екрані, цей ідентифікатор може виявитися корисним. Слід зазначити, що якщо обов’язкових та допоміжних властивостей достатньо, то для запису не присвоюється порядковий ідентифікатор. Його можна додати пізніше, натиснувши відповідний стовпець для об’єкта в АБО
Існує 3 типи звичайних ідентифікаторів:
- Індекс: це базується на порядку появи об’єкта в коді програми
- Розташування: на основі розташування на екрані, діалозі чи сторінці
- Час створення: Це використовується лише для об’єктів браузера. Якщо існують 2 браузери з подібними властивостями, тоді розглядається той, який створюється першим і наступним.
Наприклад, давайте зрозуміємо, як працює ідентифікатор ‘index’ на нашому екрані входу в програми Flight:
Це такі компоненти:
Як бачите, статичний текст і поля редагування мають однакову властивість «текст».
Якщо я знаю, що один з них є статичним текстом, а інший - об’єктом 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, точка синхронізації та аналіз результатів тесту
- Підручник QTP # 8 - Дізнайтеся про режими запису QTP, Object Spy та сховища об’єктів
- Параметризація в QTP (Частина 2) - Підручник з QTP No20
- Підручники QTP - 25+ навчальних посібників з мікрофокусу з швидких тестів (QTP)