Descriptive Programmering i QTP/UFTDynamisk och statisk
Vad รคr Descripthar du programmering?
Descriptive programmering anvรคnds fรถr att utfรถra operationer pรฅ ett objekt i AUT vars definition inte รคr lagrad i objektfรถrrรฅdet. Med den hรคr mekanismen kan du kringgรฅ identifiering frรฅn objektfรถrrรฅdet och tillhandahรฅlla objektet Descripti sjรคlva uttalandet.
Ett objektnamn anvรคnds helt enkelt fรถr att mappa ett objekt i skript med dess beskrivning i ett objektfรถrrรฅd. Det betyder att om du รคndrar objektnamnet i ditt skript och objektfรถrrรฅd, bรถr skriptet kรถras. Se fรถljande video om detta koncept
Klicka hรคr. om videon inte รคr tillgรคnglig
Video Highlights
- Ta bort objektet Description av Agent Namn Win Edit Box frรฅn Object Repository. 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 skriptet misslyckas
- Under kรถrningstid, mikrofokus UFT identifierar รฅtgรคrden som utfรถrs pรฅ WinEdit-rutan och objektet Description i objektfรถrrรฅdet lagras som agentnamn. Den anvรคnder detta namn fรถr att track objektet i ett objektarkiv. Fรถr ett fรถrรคlderobjekt kan du inte ha tvรฅ underobjekt med samma namn. Dรคrfรถr, QTP mappar objektet unikt i arkivet. Den anvรคnder sedan den lagrade beskrivningen i objektarkivet och ersรคtter namnet med beskrivningen. Den anvรคnder sedan detta kommando fรถr att identifiera objektet i den applikation som testas.
- Eftersom vi i vรฅrt fall hade tagit bort den hรคr objektbeskrivningen helt och hรฅllet misslyckas skriptet
- Men tรคnk om istรคllet fรถr QTP Genom att ersรคtta objektbeskrivningen anger du som testare direkt objektbeskrivningarna i ditt skript. Detta รคr inget annat รคn "Descriptive programmering"
Typer av Descriptive programmering
Du kan anvรคnda Descriptjag programmerar pรฅ tvรฅ sรคtt
- Statisk
- Dynamisk
Statisk Descriptive programmering
I Static Method, fรถr objektidentifiering, anger du ett objekts egenskap i fรถljande format
property:=values,
Detta format kallas egenskapsvรคrdepar och omges av inverterade kommatecken
Om ditt objekt anvรคnder flera beskrivningar fรถr identifiering, kan du ange de med kommatecken
Sรฅ i vรฅrt fall blir beskrivningen fรถr Agent Name
"nativeclass:=Edit", "attached text:=Agent Name:"
Dynamisk Descriptive programmering
Den andra metoden fรถr att gรถra samma รฅtgรคrd รคr att anvรคnda Dynamic Descriptive programmering
Om ditt skript anvรคnder den beskrivande programmeringsobjektkandidaten flera gรฅnger, kommer det att vara vรคldigt trรถttsamt att ange alla egenskapsvรคrdepar fรถr varje pรฅstรฅende
I sรฅdana fall kan du anvรคnda dig av Descriptjonklass tillhandahรฅlls av QTP
Syntaxen fรถr att skapa ett beskrivningsobjekt รคr
Set MyDescription = Description.Create();
MyDescription("property").Value = "property-value";
Detta รคr den Dynamisk metod
Varfรถr anvรคnda Descripthar du programmering?
Videoutskrift
- Miljondollarfrรฅgan รคr varfรถr man ska anvรคnda DP nรคr objektidentifieringsprocessen hanteras av QTP
- Anta att du fรฅr i uppdrag 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รฅ sรถkjobbet
- Men antalet jobb som reflekteras beror pรฅ sรถkfrรฅgan och tillgรคngliga jobb 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 till klassen fรถr objekten som "WebCheckBox"
- Du kan anvรคnda ChildObject-metod att returnera objekt som tillhรถr en viss fรถrรคlder
- En kodrad som โ
Set allObjects = Browser("Jobs").Page("QTP").ChildObjects() - Kommer att returnera alla underordnade objekt fรถr denna sida.
- Men vi vill bara ha WebCheckBox fรถremรฅl. Fรถr att gรถra det kan vi skapa ett filterskapande objekt och ange dess egenskap som webbkryssruta och skicka detta filter som ett argument fรถr ChildObjects-metoden
- I det hรคr fallet returneras endast kryssrutorna.
- Dรคrefter kan du skriva en kod som denna som kommer รฅt hela samlingen av kryssrutor frรฅn noll och sรคtter alla kryssrutor Pร .
- Dรคrefter kan du klicka pรฅ appliceringsknappen fรถr att slutfรถra testet
- Du kan ocksรฅ anvรคnda Descriptive Programmering fรถr att kรถra objekt som รคr svรฅra att spela in som Auto-Hide Panels, Objekt med รคndrade hierarkier, kapslade inre objekt, undermenyer.
- Du kan ocksรฅ gรถra avancerade strรคngmanipulationer med beskrivande programmering
- I samband med index-egenskap kan beskrivande programmering vara mycket anvรคndbar 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 underordnade objekt
- Till exempel fรถr sidobjektet anvรคndes beskrivande programmering men fรถr efterfรถljande underordnade objekt 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
