DescriptПрограмування в QTP/UFT: динамічне та статичне

Що таке DescriptВи програмуєте?

DescriptПрограмування використовується для виконання операцій над об’єктом в AUT, визначення якого не зберігається в репозиторії об’єктів. Використовуючи цей механізм, ви можете обійти ідентифікацію зі сховища об’єктів і надати об’єкт Descriptіон у самій заяві.

Ім’я об’єкта просто використовується для зіставлення об’єкта в сценарії з його описом у сховищі об’єктів. Це означає, що якщо ви зміните назву об’єкта у своєму сценарії та сховищі об’єктів, сценарій має запуститися. Перегляньте наступне відео про цю концепцію

Натисніть тут якщо відео недоступне

Відео Основні

  • Видалити об'єкт Descriptім'я агента Win Edit Box зі сховища об’єктів. Якщо ви запустите тест ще раз, він не вдасться, оскільки не зможе розпізнати об’єкт. Давайте розглянемо причину, чому сценарій не працює
  • Під час виконання Micro Focus UFT визначає операцію, яка виконується над полем WinEdit і об’єктом Description у сховищі об’єктів зберігається як ім’я агента. Це ім’я використовується для відстеження об’єкта в сховищі об’єктів. Для батьківського ви не можете мати два дочірніх об’єкти з однаковими іменами. Отже, QTP однозначно відображає об’єкт у сховищі. Потім він використовує збережений опис у сховищі об’єктів і замінює назву описом. Потім він використовує цей оператор для ідентифікації об’єкта в тестовій програмі
  • Оскільки в нашому випадку ми повністю видалили цей опис об’єкта, сценарій не працює
  • Але що, якщо замість того, щоб QTP замінював опис об’єкта, ви як тестувальник безпосередньо вказуєте описи об’єктів у своєму сценарії. Це не що інше, як "Descriptive програмування”

Види DescriptПрограмування

Ви можете використовувати Descriptпрограмування двома способами

  1. Статичний
  2. Dynamic

Статичний DescriptПрограмування

У статичному методі для ідентифікації об’єкта ви вказуєте властивість об’єкта в такому форматі

property:=values,

Цей формат називається пара значень властивостей і береться в лапки

Якщо ваш об'єкт використовує кілька описів для ідентифікації, їх можна вказати за допомогою ком

Отже, у нашому випадку стає опис для імені агента

"nativeclass:=Edit", "attached text:=Agent Name:"

Dynamic DescriptПрограмування

Другий спосіб виконання тієї ж дії — використання Dynamic Descriptive програмування

Якщо ваш сценарій використовує описовий об’єкт-кандидат програмування кілька разів, буде дуже втомливо вказувати всі пари значень властивості для кожного оператора

У таких випадках можна скористатися Descriptіонний клас надається QTP

Синтаксис для створення об'єкта опису

Set MyDescription = Description.Create();
MyDescription("property").Value = "property-value";

Це Динамічний метод

Навіщо використовувати DescriptВи програмуєте?

Транскрипція відео

  • Питання на мільйон доларів полягає в тому, навіщо використовувати DP, коли процес ідентифікації об’єкта обробляється QTP
  • Припустімо, вам доручили перевірити портал вакансій. Ви вводите пошуковий запит на порталі і
  • ваш тест очікує, що ви виберете всі доступні вакансії та натиснете «Застосувати вакансію».
  • Але кількість відображених вакансій залежатиме від пошукового запиту та вакансій, доступних на момент виконання сценарію, але неможливо передбачити наперед кількість вакансій, які будуть відображені
  • У таких випадках можна використовувати описове програмування. Навіть якщо ви не знаєте кількість і назви прапорців, ви знаєте клас для об’єктів як «WebCheckBox"
  • Ви можете використовувати Метод ChildObject щоб повернути об'єкти, що належать певному батьківському
  • Рядок коду на зразок –
    Set allObjects = Browser("Jobs").Page("QTP").ChildObjects()
  • Поверне всі дочірні об’єкти для цієї сторінки.
  • Але ми хочемо лише WebCheckBox об'єктів. Для цього ми можемо створити об’єкт створення фільтра та встановити його властивість як веб-прапорець і передати цей фільтр як аргумент для методу ChildObjects
  • У цьому випадку повертаються лише прапорці.
  • Далі ви можете написати такий код, який отримує доступ до всієї колекції прапорців, починаючи з нуля, і встановлює всі прапорці.
  • Далі ви можете натиснути кнопку застосувати, щоб завершити тест
  • Vous використання aussi можете оплатити DescriptПрограмування для запуску об’єктів, які важко записати, як-от автоматично приховувані панелі, об’єкти зі змінною ієрархією, вкладені внутрішні об’єкти, підменю.
  • Ви також можете виконувати розширені маніпуляції з рядками за допомогою описового програмування
  • У поєднанні з властивістю індексу описове програмування може бути дуже корисним для визначення складних об’єктів.
  • Якщо ви використовуєте програмний опис для об’єкта в ієрархії об’єктів, вам потрібно буде використовувати програмування опису для наступних дочірніх об’єктів
  • Наприклад, для об’єкта сторінки було використано описове програмування, але для наступного дочірнього об’єкта використовується WinEdit Object Repository, що є неправильним
  • Навпаки, тут як для Page, так і для WinEdit використовується описове програмування, що є правильним

Щоденний інформаційний бюлетень Guru99

Розпочніть свій день з останніх та найважливіших новин про штучний інтелект, які ви можете знайти просто зараз.