Що таке описове програмування?
Описове програмування використовується для виконання операцій над Об'єктом в AUT, визначення якого не зберігається в Сховищі Об'єктів. Використовуючи цей механізм, ви можете обійти ідентифікацію зі сховища об’єктів та подати опис об’єкта в самому операторі.
Ім'я об'єкта просто використовується для відображення об'єкта в сценарії з його описом у сховищі об'єктів. Значення, якщо ви змінюєте ім’я об’єкта у своєму сценарії та сховищі об’єктів, сценарій повинен запускатися. Перегляньте наступне відео про цю концепцію
Клацніть тут, якщо відео недоступне
Основні моменти відео
- Видаліть поле Редагування імені агента Win Edit зі списку об’єктів. Якщо повторно запустити тест, він не вдасться, оскільки він не може розпізнати об'єкт. Давайте розберемось, чому сценарій не працює
- Під час виконання, Micro Focus UFT ідентифікує операцію, яка виконується у вікні WinEdit, а опис об'єкта в сховищі об'єктів зберігається як ім'я агента. Він використовує це ім'я для відстеження об'єкта у сховищі об'єктів. Для батьків не можна мати два дочірні об’єкти з однаковим іменем. Отже, QTP однозначно відображає об'єкт у сховищі. Потім він використовує збережений опис у сховищі об’єктів і замінює ім’я описом. Потім він використовує це твердження для ідентифікації об’єкта в додатку, що тестується / li>
- Оскільки в нашому випадку ми повністю видалили цей опис об'єкта, сценарій не працює / li>
- Але що, якщо замість QTP замінити опис об’єкта, ви як тестер безпосередньо вкажете описи об’єктів у своєму сценарії. Це не що інше, як "Описове програмування"
Типи описового програмування
Описове програмування можна використовувати двома способами
- Статичні
- Динамічний
Статичне описове програмування
У статичному методі для ідентифікації об’єкта ви вказуєте властивість об’єкта у наступному форматі
властивість: = значення,
Цей формат називається парою значень властивостей і вкладається в перевернуті коми>
Якщо ваш об'єкт використовує декілька описів для ідентифікації, ви можете вказати ті, що використовують коми >
Отже, у нашому випадку опис для Ім'я агента стає
"nativeclass: = Редагувати", "вкладений текст: = Ім'я агента:"
Динамічне описове програмування
Другий метод виконання тієї самої дії - використання динамічного описового програмування
Якщо ваш сценарій використовує описовий кандидат на об’єкт програмування кілька разів, буде дуже нудно вказувати всі пари значень властивостей для кожного оператора
У таких випадках ви можете використовувати клас опису, наданий QTP
Синтаксис для створення об’єкта опису є
Встановити MyDescription = Опис.Створити ();MyDescription ("властивість"). Value = "властивість-вартість";
Це динамічний метод
Навіщо використовувати описове програмування?
Стенограма відео
- Питання на мільйон доларів полягає в тому, чому використовувати DP, коли процес ідентифікації об’єкта здійснюється QTP
- Припустимо, вам призначено перевірити портал вакансій. Ви вводите пошуковий запит на портал і
- ваш тест очікує, що ви оберете всі доступні завдання .і натисніть застосувати завдання
- Але кількість відображених завдань буде залежати від пошукового запиту та завдань, доступних на момент виконання сценарію, але неможливо заздалегідь передбачити кількість завдань, які будуть відображені
- У таких випадках можна використовувати описове програмування. Навіть якщо ви не знаєте кількість та імена прапорців, ви знаєте клас для об'єктів як "WebCheckBox"
- Ви можете використовувати метод ChildObject для повернення об’єктів, що належать певному батькові
- Рядок коду, наприклад -
Встановити allObjects = Браузер ("Вакансії"). Сторінка ("QTP"). ChildObjects ()
- Поверне всі дочірні об’єкти для цієї сторінки.
- Але ми хочемо лише об’єкти WebCheckBox. Для цього ми можемо створити об’єкт створення фільтра та встановити його властивість як веб-прапорець і передати цей фільтр як аргумент для методу ChildObjects
- У цьому випадку повертаються лише прапорці.
- Далі ви можете написати такий код, який отримує доступ до всієї колекції прапорців, починаючи з нуля, і встановлює всі прапорці ВКЛ.
- Далі ви можете натиснути кнопку застосувати, щоб завершити тест
- Ви також можете використовувати описове програмування для запуску об’єктів, які важко записати, таких як панелі автоматичного приховування, об’єкти зі змінною ієрархією, вкладені внутрішні об’єкти, підменю.
- Ви також можете робити розширені маніпуляції з рядками, використовуючи описове програмування
- У поєднанні з властивістю індексу описове програмування може бути дуже корисним для ідентифікації складних об'єктів.
- Якщо ви використовуєте програмний опис для об'єкта в ієрархії об'єктів, вам потрібно буде використовувати програмування опису для наступних дочірніх об'єктів
- Наприклад, для об'єкта сторінки було використано описове програмування, але для наступного дочірнього об'єкта використовується WinEdit Object Repository, що є неправильним
- Навпаки, тут як для Page, так і для WinEdit використовується описове програмування, яке є правильним