Descriptiv programmering i QTP/UFTDynamisk og statisk
Hvad er Descripthar du programmering?
Descriptive programmering bruges til at udfรธre operationer pรฅ et objekt i AUT, hvis definition ikke er gemt i objektlageret. Ved at bruge denne mekanisme kan du omgรฅ identifikation fra objektlageret og levere objektet Description i selve erklรฆringen.
Et objektnavn bruges simpelthen til at kortlรฆgge et objekt i script med dets beskrivelse i et objektlager. Det betyder, at hvis du รฆndrer objektnavnet i dit script og objektlager, skal scriptet kรธre. Se fรธlgende video om dette koncept
Klik link. hvis videoen ikke er tilgรฆngelig
Video Hรธjdepunkter
- Slet objektet Description af Agent Navn Win Edit Box fra Object Repository. Hvis du kรธrer testen igen, vil den mislykkes, da den ikke kan genkende objektet. Lad os undersรธge รฅrsagen til, at scriptet fejler
- Under kรธrselstid, mikrofokus UFT identificerer den handling, der udfรธres pรฅ WinEdit-boksen og objektet Description i Objektarkivet gemmes som Agentnavn. Den bruger dette navn til at track objektet i et objektarkiv. For et overordnet objekt kan du ikke have to underordnede objekter med samme navn. Derfor, QTP tilknytter objektet unikt i arkivet. Den bruger derefter den gemte beskrivelse i objektarkivet og erstatter navnet med beskrivelsen. Den bruger derefter denne sรฆtning til at identificere objektet i den applikation, der testes.
- Da vi i vores tilfรฆlde havde slettet denne objektbeskrivelse helt, fejler scriptet
- Men hvad nu hvis i stedet for QTP Ved at erstatte objektbeskrivelsen angiver du som tester direkte objektbeskrivelserne i dit script. Dette er intet andet end "Descriptive programmering"
Typer af Descriptive programmering
Du kan bruge Descriptive programmering pรฅ to mรฅder
- statisk
- Dynamisk
statisk Descriptive programmering
I Static Method angiver du til objektidentifikation et objekts egenskab i fรธlgende format
property:=values,
Dette format kaldes egenskabsvรฆrdipar og er omgivet af omvendte kommaer
Hvis dit objekt bruger flere beskrivelser til identifikation, kan du angive dem ved hjรฆlp af kommaer
Sรฅ i vores tilfรฆlde bliver beskrivelsen for Agentnavn
"nativeclass:=Edit", "attached text:=Agent Name:"
Dynamisk Descriptive programmering
Den anden metode til at udfรธre den samme handling er at bruge Dynamic Descriptive programmering
I tilfรฆlde af at dit script bruger den beskrivende programmeringsobjektkandidat flere gange, vil det vรฆre meget trรฆttende at angive alle egenskabsvรฆrdiparrene for hver erklรฆring
I sรฅdanne tilfรฆlde kan du gรธre brug af Description klasse fra QTP
Syntaxen for at oprette et beskrivelsesobjekt er
Set MyDescription = Description.Create();
MyDescription("property").Value = "property-value";
Dette er den Dynamisk metode
Hvorfor brug Descripthar du programmering?
Videoudskrift
- Million-dollar-spรธrgsmรฅlet er, hvorfor man skal bruge DP, nรฅr objektidentifikationsprocessen hรฅndteres af QTP
- Antag, at du fรฅr tildelt at teste en jobportal. Du indtaster en sรธgeforespรธrgsel i portalen og
- din test forventer, at du vรฆlger alle ledige job og klikker pรฅ ansรธg jobbet
- Men antallet af job, der afspejles, vil afhรฆnge af sรธgeforespรธrgslen og ledige job pรฅ tidspunktet for udfรธrelse af scriptet, men der er ingen mรฅde at forudsige antallet af job, der vil blive afspejlet
- I sรฅdanne tilfรฆlde kan du bruge beskrivende programmering. Selvom du ikke kender antallet og navnene pรฅ afkrydsningsfelterne, kender du klassen for objekterne som "WebCheckBox"
- Du kan bruge ChildObject metode at returnere objekter, der tilhรธrer en bestemt forรฆlder
- En kodelinje som -
Set allObjects = Browser("Jobs").Page("QTP").ChildObjects() - Vil returnere alle underordnede objekter for denne side.
- Men vi vil kun have WebCheckBox genstande. For at gรธre det kan vi oprette et filteroprettelsesobjekt og sรฆtte dets egenskab som web-afkrydsningsfelt og sende dette filter som et argument for ChildObjects-metoden
- I dette tilfรฆlde returneres kun afkrydsningsfelterne.
- Dernรฆst kan du skrive en kode som denne, som fรฅr adgang til hele samlingen af โโafkrydsningsfelter startende fra nul og sรฆtter alle afkrydsningsfelter TIL.
- Dernรฆst kan du klikke pรฅ knappen Anvend for at fuldfรธre testen
- Du kan ogsรฅ bruge Descriptive Programmering til at kรธre objekter, som er svรฆre at optage, sรฅsom automatisk skjul paneler, objekter med skiftende hierarkier, indlejrede indre objekter, undermenuer.
- Du kan ogsรฅ udfรธre avancerede strengmanipulationer ved hjรฆlp af beskrivende programmering
- I forbindelse med indeksegenskaber kan beskrivende programmering vรฆre meget nyttig til at identificere vanskelige objekter.
- Hvis du bruger programmatisk beskrivelse for et objekt i objekthierarki, skal du bruge beskrivelsesprogrammering til efterfรธlgende underordnede objekter
- For eksempel, for sideobjektet, blev der brugt beskrivende programmering, men for det efterfรธlgende underordnede objekt bruges WinEdit Object Repository, hvilket er forkert
- Tvรฆrtimod her bruges bรฅde Page og WinEdit beskrivende programmering, hvilket er korrekt
