Beskrivende programmering i QTP / UFT: Dynamisk & Statisk

Indholdsfortegnelse:

Anonim

Hvad er beskrivende programmering?

Beskrivende programmering bruges til at udføre operationer på et objekt i AUT, hvis definition ikke er gemt i Object Repository. Ved hjælp af denne mekanisme kan du omgå identifikation fra Object Repository og levere objektbeskrivelsen i selve udsagnet.

Et objektnavn bruges simpelthen til at kortlægge et objekt i scriptet med dets beskrivelse i et objektlager. Betydning, hvis du ændrer objektnavnet i dit script og objektlager, skal scriptet køre. Se følgende video om dette koncept

Klik her, hvis videoen ikke er tilgængelig

Video Højdepunkter

  • Slet objektbeskrivelsen for agentnavnet 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 identificerer Micro Focus UFT den operation, der udføres i WinEdit-boksen, og objektbeskrivelsen i Objektlager lagres som agentnavn. Det bruger dette navn til at spore objektet i et objektlager. For en forælder kan du ikke have to underordnede objekter med samme navn. Derfor kortlægger QTP objektet entydigt i arkivet. Derefter bruger den den gemte beskrivelse i Object Repository og erstatter navnet med beskrivelsen. Derefter bruger denne erklæring til at identificere objektet i applikationen under test / li>
  • Da vi i vores tilfælde helt havde slettet denne objektbeskrivelse mislykkes scriptet / li>
  • Men hvad hvis i stedet for at QTP erstatter objektbeskrivelsen, specificerer du som tester direkte objektbeskrivelserne i dit script. Dette er intet andet end "beskrivende programmering"

Typer af beskrivende programmering

Du kan bruge beskrivende programmering på to måder

  1. Statisk
  2. Dynamisk

Statisk beskrivende programmering

I Statisk metode til objektidentifikation angiver du et objekts egenskab i følgende format

egenskab: = værdier,

Dette format kaldes egenskabsværdipar og er lukket i 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", "vedhæftet tekst: = Agentnavn:"

Dynamisk beskrivende programmering

Den anden metode til at udføre den samme handling er at bruge dynamisk beskrivende programmering

Hvis dit script bruger det beskrivende programmeringsobjekt kandidat flere gange, vil det være meget trættende at specificere alle egenskabsværdipar for hver sætning

I sådanne tilfælde kan du gøre brug af Description Class leveret af QTP

Syntaksen til oprettelse af et beskrivelsesobjekt er

Indstil MyDescription = Description.Create ();MyDescription ("ejendom"). Værdi = "ejendomsværdi";

Dette er den dynamiske metode

Hvorfor bruge beskrivende programmering?

Videoudskrift

  • Spørgsmålet om en million dollars er, hvorfor man bruger DP, når objektidentifikationsprocessen håndteres af QTP
  • Antag, at du har til opgave at teste en jobportal. Du indtaster en søgeforespørgsel i portalen og
  • din test forventer, at du vælger alle tilgængelige job. og klikker på det anvendte job
  • Men antallet af reflekterede job vil afhænge af søgeforespørgslen og de job, der er tilgængelige på tidspunktet for scriptudførelse, men der er ingen måde at forudsige på forhånd antallet af job, der ville blive reflekteret
  • 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-metoden til at returnere objekter, der tilhører en bestemt forælder
  • En linje kode som -
    Indstil allObjects = Browser ("Job"). Side ("QTP"). ChildObjects ()
  • Returnerer alle underordnede genstande til denne side.
  • Men vi vil kun have WebCheckBox-objekter. For at gøre dette kan vi oprette et filteroprettelsesobjekt og indstille dets egenskab som webafkrydsningsfelt og videregive dette filter som et argument for ChildObjects-metoden
  • I dette tilfælde returneres kun afkrydsningsfelterne.
  • Dernæst kan du skrive en kode som denne, der får adgang til hele samlingen af ​​afkrydsningsfelter, der starter fra nul og sætter alle afkrydsningsfelter TIL.
  • Dernæst kan du klikke på knappen Anvend for at gennemføre testen
  • Du kan også bruge beskrivende programmering til at køre objekter, der er vanskelige at optage, f.eks. 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 en programmatisk beskrivelse af et objekt i objekthierarkiet, skal du bruge beskrivelsesprogrammeringen til efterfølgende underordnede objekter
  • F.eks. Blev der anvendt beskrivende programmering til sideobjektet, men til efterfølgende underordnet objekt bruges WinEdit Object Repository, hvilket er forkert
  • Tværtimod her for både Page og WinEdit anvendes beskrivende programmering, som er korrekt