Vad är beskrivande programmering?
Beskrivande programmering används för att utföra operationer på ett objekt i AUT vars definition inte är lagrad i objektförvaret. Med hjälp av denna mekanism kan du kringgå identifiering från Object Repository och tillhandahålla Object Description i själva uttalandet.
Ett objektnamn används helt enkelt för att mappa ett objekt i skriptet med dess beskrivning i ett objektförvar. Betydelse om du ändrar objektnamnet i ditt skript och objektförvar, ska skriptet köras. Titta på följande video om detta koncept
Klicka här om videon inte är tillgänglig
Videohöjdpunkter
- Ta bort objektbeskrivningen för agentnamn Win Edit Box från objektförvaret. Om du kör testet igen kommer det att misslyckas eftersom det inte kan känna igen objektet. Låt oss undersöka anledningen till att manuset misslyckas
- Under körtid identifierar Micro Focus UFT den operation som utförs i WinEdit-rutan och objektbeskrivningen i Objektförvar lagras som agentnamn. Det använder det här namnet för att spåra objektet i ett objektförvar. För en förälder kan du inte ha två underobjekt med samma namn. Därför kartlägger QTP unikt objektet i förvaret. Den använder sedan den lagrade beskrivningen i Objektförvaret och ersätter namnet med beskrivningen. Den använder sedan detta uttalande för att identifiera objektet i applikationen som testas / li>
- Eftersom vi i vårt fall helt har tagit bort den här objektbeskrivningen misslyckas skriptet / li>
- Men vad händer om istället för att QTP ersätter objektbeskrivningen, anger du som testare objektbeskrivningarna direkt i ditt skript. Detta är inget annat än "beskrivande programmering"
Typer av beskrivande programmering
Du kan använda beskrivande programmering på två sätt
- Statisk
- Dynamisk
Statisk beskrivande programmering
I Statisk metod, för objektidentifiering, anger du ett objekts egenskap i följande format
egenskap: = värden,
Detta format kallas egenskapsvärde-par och omges av inverterade komma>
Om ditt objekt använder flera beskrivningar för identifiering kan du ange dem med kommatecken >
Så i vårt fall blir beskrivningen för agentnamn
"nativeclass: = Edit", "bifogad text: = Agentnamn:"
Dynamisk beskrivande programmering
Den andra metoden för att göra samma åtgärd är att använda dynamisk beskrivande programmering
Om ditt skript använder det beskrivande programmeringsobjektkandidaten flera gånger kommer det att vara mycket tröttsamt att ange alla egenskapsvärden för varje uttalande
I sådana fall kan du använda beskrivningsklassen från QTP
Syntaksen för att skapa ett beskrivningsobjekt är
Ställ in MyDescription = Description.Create ();MyDescription ("fastighet"). Värde = "fastighetsvärde";
Detta är den dynamiska metoden
Varför använda beskrivande programmering?
Videoutskrift
- Miljontalsfrågan är varför man använder DP när Object Identification-processen hanteras av QTP
- Antag att du har tilldelats att testa en jobbportal. Du anger en sökfråga i portalen och
- ditt test förväntar dig att du väljer alla tillgängliga jobb. och klickar på ansökan
- Men antalet återspeglade jobb beror på sökfrågan och de jobb som är tillgängliga vid tidpunkten för skriptkörning men det finns inget sätt att i förväg förutsäga antalet jobb som skulle återspeglas
- I sådana fall kan du använda beskrivande programmering. Även om du inte känner till antalet och namnen på kryssrutorna så känner du klassen för objekten som "WebCheckBox"
- Du kan använda ChildObject-metoden för att returnera objekt som tillhör en viss förälder
- En kodrad som -
Ställ in allObjects = webbläsare ("Jobb"). Sida ("QTP"). ChildObjects ()
- Returnerar alla underordnade objekt för den här sidan.
- Men vi vill bara ha WebCheckBox-objekt. För att göra det kan vi skapa ett filterskapandeobjekt och ställa in dess egenskap som webb kryssruta och skicka det här filtret som ett argument för ChildObjects-metoden
- I det här fallet returneras endast kryssrutorna.
- Därefter kan du skriva en kod som den här som kommer åt hela samlingen av kryssrutor från noll och sätter alla kryssrutor PÅ.
- Därefter kan du klicka på tillämpningsknappen för att slutföra testet
- Du kan också använda beskrivande programmering för att köra objekt som är svåra att spela in som Auto-Hide Panels, Objekt med föränderliga hierarkier, Kapslade inre objekt, Undermenyer.
- Du kan också göra avancerade strängmanipulationer med hjälp av beskrivande programmering
- I kombination med indexegenskap kan beskrivande programmering vara mycket användbart för att identifiera svåra objekt.
- Om du använder programmatisk beskrivning för ett objekt i objekthierarkin måste du använda beskrivningsprogrammering för efterföljande underobjekt
- Till exempel användes beskrivande programmering för sidobjektet men för efterföljande underobjekt används WinEdit Object Repository vilket är felaktigt
- Tvärtom här för både Page och WinEdit används beskrivande programmering vilket är korrekt