DescriptProgramování v QTP/UFT: Dynamické a statické

Co je to Descriptive Programování?

DescriptProgramování se používá k provádění operací s objektem v AUT, jehož definice není uložena v úložišti objektů. Pomocí tohoto mechanismu můžete obejít identifikaci z úložiště objektů a dodat objekt Description v samotném prohlášení.

Název objektu se jednoduše používá k mapování objektu ve skriptu s jeho popisem v úložišti objektů. To znamená, že pokud změníte název objektu ve skriptu a úložišti objektů, skript by se měl spustit. Podívejte se na následující video o tomto konceptu

klikněte zde pokud video není přístupné

Video Highlights

  • Smazat objekt Descriptjméno agenta Win Upravit Box z úložiště objektů. Pokud test spustíte znovu, selže, protože nemůže rozpoznat objekt. Pojďme se podívat na důvod, proč skript selhává
  • Během doby běhu Micro Focus UFT identifikuje operaci, která se provádí na poli WinEdit a objektu Description v Object Repository je uložen jako jméno agenta. Tento název používá ke sledování objektu v úložišti objektů. V případě rodiče nemůžete mít dva podřízené objekty se stejným názvem. Proto QTP jedinečně mapuje objekt v úložišti. Poté použije uložený popis v Object Repository a nahradí název popisem. Tento příkaz pak použije k identifikaci objektu v testované aplikaci
  • Protože v našem případě jsme tento popis objektu úplně smazali, skript selže
  • Ale co když namísto QTP nahrazujícího popis objektu vy jako tester přímo specifikujete popisy objektů ve vašem skriptu. Tohle není nic jiného než „DescriptŽivé programování”

Druhy Descriptive Programování

Můžeš použít Descriptprogramovat dvěma způsoby

  1. statický
  2. Dynamický

statický Descriptive Programování

Ve statické metodě zadáte pro identifikaci objektu vlastnost objektu v následujícím formátu

property:=values,

Tento formát se nazývá pár hodnot vlastností a je uzavřen v uvozovkách

Pokud váš objekt používá více popisů pro identifikaci, můžete je zadat pomocí čárek

Takže v našem případě se stane popis pro jméno agenta

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

Dynamický Descriptive Programování

Druhým způsobem provedení stejné akce je použití Dynamic Descriptprogramování

V případě, že váš skript používá kandidáta popisného programovacího objektu vícekrát, bude velmi únavné specifikovat všechny dvojice hodnot vlastnosti pro každý příkaz

V takových případech můžete využít Descriptiontová třída poskytuje QTP

Syntaxe pro vytvoření objektu popisu je

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

To je Dynamická metoda

Proč používat Descriptive Programování?

Přepis videa

  • Otázkou za milion dolarů je, proč používat DP, když proces identifikace objektu zajišťuje QTP
  • Předpokládejme, že jste přiděleni k testování pracovního portálu. Do portálu zadáte vyhledávací dotaz a
  • váš test očekává, že vyberete všechny dostupné úlohy a kliknete na použít úlohu
  • Počet reflektovaných úloh však bude záviset na vyhledávacím dotazu a úlohách dostupných v době provádění skriptu, ale neexistuje způsob, jak předem odhadnout počet úloh, které by se odrazily.
  • V takových případech můžete použít deskriptivní programování. I když neznáte počet a názvy zaškrtávacích políček, znáte třídu objektů jako „WebCheckBox"
  • Můžete použít Metoda ChildObject vrátit objekty patřící konkrétnímu rodiči
  • Řádek kódu jako –
    Set allObjects = Browser("Jobs").Page("QTP").ChildObjects()
  • Vrátí všechny podřízené objekty pro tuto stránku.
  • Ale my chceme pouze WebCheckBox objektů. K tomu můžeme vytvořit objekt pro vytvoření filtru a zaškrtnout jeho vlastnost jako web a předat tento filtr jako argument pro metodu ChildObjects
  • V tomto případě se vrátí pouze zaškrtávací políčka.
  • Dále můžete napsat kód, jako je tento, který zpřístupní celou kolekci zaškrtávacích políček počínaje nulou a nastaví všechna zaškrtávací políčka na ZAPNUTO.
  • Dále můžete kliknout na tlačítko použít a dokončit test
  • Můžete také použít DescriptProgramování pro spouštění objektů, které se obtížně zaznamenávají, jako jsou automatické skrytí panelů, objekty s měnící se hierarchií, vnořené vnitřní objekty, dílčí nabídky.
  • Můžete také provádět pokročilé manipulace s řetězci pomocí popisného programování
  • Ve spojení s vlastností indexu může být popisné programování velmi užitečné při identifikaci obtížných objektů.
  • Pokud používáte programový popis pro objekt v hierarchii objektů, budete muset použít programování popisu pro následující podřízené objekty
  • Například pro objekt stránky bylo použito popisné programování, ale pro následný podřízený objekt je použit WinEdit Object Repository, což je nesprávné
  • Naopak zde se pro Page i WinEdit používá popisné programování, což je správné