Описателно програмиране в QTP / UFT: Dynamic & Статично

Съдържание:

Anonim

Какво е описателно програмиране?

Описателното програмиране се използва за изпълнение на операции върху обект в AUT, чиято дефиниция не се съхранява в хранилището на обекти. Използвайки този механизъм, можете да заобиколите идентификацията от хранилището на обекти и да предоставите описанието на обекта в самия оператор.

Името на обекта просто се използва за картографиране на обект в скрипт с описанието му в хранилището на обекти. Значение, ако промените името на обекта във вашия скрипт и хранилище на обекти, скриптът трябва да се изпълни. Гледайте следващото видео за тази концепция

Щракнете тук, ако видеоклипът не е достъпен

Видео акценти

  • Изтрийте описанието на обекта на име на агент Win Edit Box от хранилището на обекти. Ако пуснете теста отново, той ще се провали, тъй като не може да разпознае обекта. Нека разгледаме причината, поради която скриптът се проваля
  • По време на изпълнение, Micro Focus UFT идентифицира операцията, която се извършва в полето WinEdit и описанието на обекта в хранилището на обекти се съхранява като име на агент. Той използва това име, за да проследява обекта в хранилището на обекти. За родител не можете да имате два дъщерни обекта с едно и също име. Следователно QTP уникално картографира обекта в хранилището. След това използва съхраненото описание в хранилището на обекти и замества името с описанието. След това използва това изявление, за да идентифицира обекта в тестваното приложение / li>
  • Тъй като в нашия случай бяхме изтрили изцяло това описание на обекта, скриптът се проваля / li>
  • Но какво, ако вместо QTP да замени описанието на обекта, вие като тестер директно указвате описанията на обектите във вашия скрипт. Това не е нищо друго освен "Описателно програмиране"

Видове описателно програмиране

Можете да използвате описателното програмиране по два начина

  1. Статично
  2. Динамичен

Статично описателно програмиране

В статичния метод за идентификация на обект посочвате свойството на обекта в следния формат

свойство: = стойности,

Този формат се нарича двойка стойност на свойството и е затворен в обърнати запетаи>

Ако вашият обект използва множество описания за идентификация, можете да посочите тези, използващи запетаи >

Така че в нашия случай описанието за Agent Name става

"nativeclass: = Редактиране", "прикачен текст: = Име на агент:"

Динамично описателно програмиране

Вторият метод за извършване на същото действие е използването на динамично описателно програмиране

В случай, че вашият скрипт използва описателния кандидат за обект за програмиране няколко пъти, ще бъде много уморително да посочите всички двойки стойности на свойствата за всеки оператор

В такива случаи можете да използвате описателния клас, предоставен от QTP

Синтаксисът за създаване на обект на описание е

Задайте MyDescription = Description.Create ();MyDescription ("свойство"). Value = "свойство-стойност";

Това е динамичният метод

Защо да използвам описателно програмиране?

Видео транскрипция

  • Въпросът за милиони долари е защо да се използва DP, когато процесът на идентификация на обекта се обработва от QTP
  • Да предположим, че сте назначени да тествате портал за работа. Въвеждате заявка за търсене в портала и
  • Вашият тест очаква да изберете всички налични работни места .и щракнете върху прилагането на заданието
  • Но броят на отразените работни места ще зависи от заявката за търсене и заданията, налични по време на изпълнението на скрипта, но няма начин да се предвиди предварително броя на заданията, които биха били отразени
  • В такива случаи можете да използвате описателно програмиране. Въпреки че не знаете броя и имената на квадратчетата за отметка, вие знаете класа за обектите като "WebCheckBox"
  • Можете да използвате метода ChildObject, за да върнете обекти, принадлежащи на определен родител
  • Ред код като -
    Задайте allObjects = Browser ("Jobs"). Page ("QTP"). ChildObjects ()
  • Ще върне всички дъщерни обекти за тази страница.
  • Но ние искаме само WebCheckBox обекти. За целта можем да създадем обект за създаване на филтър и да зададем свойството му като поле за отметка в мрежата и да предадем този филтър като аргумент за метода ChildObjects
  • В този случай се връщат само квадратчетата за отметка.
  • След това можете да напишете код като този, който осъществява достъп до цялата колекция от квадратчета, започвайки от нула, и задава всички отметки ВКЛ.
  • След това можете да щракнете върху бутона за прилагане, за да завършите теста
  • Можете също така да използвате описателно програмиране, за да стартирате обекти, които са трудни за запис, като автоматично скриване на панели, обекти с променящи се йерархии, вложени вътрешни обекти, подменюта.
  • Можете също така да правите разширени манипулации на низове, използвайки описателно програмиране
  • Във връзка със свойството на индекса описателното програмиране може да бъде много полезно при идентифициране на трудни обекти.
  • Ако използвате програмно описание за обект в йерархия на обекти, ще трябва да използвате програмиране на описание за следващи дъщерни обекти
  • Например за обекта на страницата е използвано описателно програмиране, но за следващ обект-дете се използва WinEdit Object Repository, което е неправилно
  • Напротив, тук както за Page, така и за WinEdit се използва описателно програмиране, което е правилно