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

  1. Statisk
  2. 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

Sammanfatta detta inlรคgg med: