Descriptive Programmeren in QTP/UFTDynamisch en statisch

Wat is Descriptive programmeren?

Descriptive-programmering wordt gebruikt om bewerkingen uit te voeren op een object in de AUT waarvan de definitie niet is opgeslagen in de Object Repository. Met dit mechanisme kunt u de identificatie van de Object Repository omzeilen en de Object Descriptin de verklaring zelf.

Een objectnaam wordt eenvoudigweg gebruikt om een โ€‹โ€‹object in een script met zijn beschrijving in een objectrepository in kaart te brengen. Dit betekent dat als u de objectnaam in uw script en objectrepository wijzigt, het script moet worden uitgevoerd. Bekijk de volgende video over dit concept

Klik hier als de video niet toegankelijk is

Video Highlights

  • Verwijder het object Description van Agentnaam Win Edit Box uit de Objectrepository. Als u de test opnieuw uitvoert, mislukt deze omdat deze het object niet kan herkennen. Laten we eens kijken naar de reden waarom het script faalt
  • Tijdens de uitvoering, Micro Focus UFT identificeert de bewerking die wordt uitgevoerd op het WinEdit-vak en het object. DescriptEen ion in de objectrepository wordt opgeslagen als agentnaam. Deze naam wordt gebruikt om track is het object in een objectrepository. Voor een ouderobject zijn er geen twee kindobjecten met dezelfde naam. Daarom, QTP Het object wordt uniek gekoppeld in de repository. Vervolgens wordt de opgeslagen beschrijving in de objectrepository gebruikt om de naam te vervangen door de beschrijving. Deze instructie wordt vervolgens gebruikt om het object in de te testen applicatie te identificeren.
  • Omdat we in ons geval deze objectbeschrijving helemaal hadden verwijderd, mislukt het script
  • Maar wat als in plaats daarvan QTP In plaats van de objectbeschrijving te gebruiken, geef je als tester de objectbeschrijvingen rechtstreeks op in je script. Dit is niets anders dan โ€œDescriptive programmerenโ€

Types van Descriptive programmering

Je kunt gebruiken Descriptive programmeren op twee manieren

  1. Statisch
  2. Dynamisch

Statisch Descriptive programmering

In de statische methode specificeert u voor objectidentificatie de eigenschap van een object in de volgende indeling

property:=values,

Dit formaat wordt eigenschapswaardepaar genoemd en staat tussen aanhalingstekens

Als uw object gebruikt meerdere beschrijvingen ter identificatie, u kunt deze opgeven met komma's

In ons geval wordt de beschrijving voor Agentnaam dus

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

Dynamisch Descriptive programmering

De tweede methode om dezelfde actie uit te voeren is het gebruik van Dynamic Descriptive programmering

Als uw script de beschrijvende programmeerobjectkandidaat meerdere keren gebruikt, zal het erg vermoeiend zijn om alle eigenschapswaardeparen voor elke instructie te specificeren

In dergelijke gevallen kunt u gebruik maken van Description-klasse door QTP

De syntaxis voor het maken van een beschrijvingsobject is

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

Dit is de Dynamische methode

Waarom gebruiken Descriptive programmeren?

Videotranscript

  • De hamvraag is waarom DP te gebruiken als het objectidentificatieproces al door... QTP
  • Stel dat u de opdracht krijgt om een โ€‹โ€‹banenportaal te testen. U voert een zoekopdracht in het portaal in en
  • uw test verwacht dat u alle beschikbare vacatures selecteert en op de vacature klikt
  • Maar het aantal weergegeven banen zal afhangen van de zoekopdracht en de banen die beschikbaar zijn op het moment dat het script wordt uitgevoerd, maar er is geen manier om vooraf het aantal banen te voorspellen dat zou worden weerspiegeld
  • In zulke gevallen kunt u beschrijvende programmering gebruiken. Ook al kent u het aantal en de namen van de selectievakjes niet, u kent wel de klasse voor de objecten als "WebCheckBox"
  • U kunt gebruik maken van de ChildObject-methode om objecten terug te geven die tot een bepaalde ouder behoren
  • Een regel code zoals -
    Set allObjects = Browser("Jobs").Page("QTP").ChildObjects()
  • Retourneert alle onderliggende objecten voor deze pagina.
  • Maar we willen alleen WebCheckBox objecten. Om dit te doen kunnen we een filtercreatieobject maken en de eigenschap instellen als web checkbox en dit filter doorgeven als een argument voor de ChildObjects-methode
  • In dit geval worden alleen de selectievakjes geretourneerd.
  • Vervolgens kunt u een code schrijven zoals deze, die toegang krijgt tot de volledige verzameling selectievakjes, beginnend bij nul, en alle selectievakjes op AAN zet.
  • Vervolgens kunt u op de knop 'Solliciteer' klikken om de test af te ronden
  • U kunt ook gebruik maken van DescriptLive programmeren om objecten uit te voeren die moeilijk vast te leggen zijn, zoals automatisch verborgen panelen, objecten met veranderende hiรซrarchieรซn, geneste interne objecten en submenu's.
  • U kunt ook geavanceerde tekenreeksmanipulaties uitvoeren met behulp van beschrijvend programmeren
  • In combinatie met de indexeigenschap kan beschrijvend programmeren zeer nuttig zijn bij het identificeren van moeilijke objecten.
  • Als u een programmatische beschrijving gebruikt voor een object in de objecthiรซrarchie, moet u beschrijvingsprogrammering gebruiken voor de daaropvolgende onderliggende objecten
  • Voor het paginaobject is bijvoorbeeld beschrijvend programmeren gebruikt, maar voor het daaropvolgende onderliggende object wordt WinEdit Object Repository gebruikt, wat onjuist is
  • Integendeel, hier wordt voor zowel Page als WinEdit beschrijvend programmeren gebruikt, wat correct is

Vat dit bericht samen met: