Descriptive programmering i QTP/UFT: Dynamisk og statisk

Hva er Descripthar du programmering?

Descriptive programmering brukes til å utføre operasjoner på et objekt i AUT hvis definisjon ikke er lagret i Object Repository. Ved å bruke denne mekanismen kan du omgå identifikasjon fra objektlageret og levere objektet Description i selve uttalelsen.

Et objektnavn brukes ganske enkelt til å kartlegge et objekt i skript med beskrivelsen i et objektlager. Det betyr at hvis du endrer objektnavnet i skriptet og objektlageret ditt, skal skriptet kjøres. Se følgende video om dette konseptet

Klikk her. hvis videoen ikke er tilgjengelig

Video høydepunkter

  • Slett objektet Description av Agentnavn Win Edit Box fra objektlageret. Hvis du kjører testen på nytt vil den mislykkes siden den ikke kan gjenkjenne objektet. La oss undersøke årsaken til at manuset feiler
  • Under Run Time identifiserer Micro Focus UFT operasjonen som utføres på WinEdit-boksen og objektet Description i Object Repository lagres som Agentnavn. Den bruker dette navnet til å spore objektet i et objektlager. For en forelder kan du ikke ha to underordnede objekter med samme navn. Derfor kartlegger QTP objektet i depotet unikt. Den bruker deretter den lagrede beskrivelsen i Object Repository og erstatter navnet med beskrivelsen. Den bruker deretter denne setningen til å identifisere objektet i applikasjonen som testes
  • Siden vi i vårt tilfelle hadde slettet denne objektbeskrivelsen helt, mislykkes skriptet
  • Men hva om i stedet for at QTP erstatter objektbeskrivelsen, spesifiserer du som tester objektbeskrivelsene direkte i skriptet ditt. Dette er ingenting annet enn "Descriptive programmering"

Typer av Descriptive programmering

Du kan bruke Descriptjeg programmerer på to måter

  1. Statisk
  2. Dynamisk

Statisk Descriptive programmering

I Static Method, for objektidentifikasjon, spesifiserer du et objekts egenskap i følgende format

property:=values,

Dette formatet kalles egenskapsverdipar og er omgitt av inverterte kommaer

Hvis objektet ditt bruker flere beskrivelser for identifikasjon, kan du spesifisere de som bruker komma

Så i vårt tilfelle blir beskrivelsen for Agentnavn

"nativeclass:=Edit", "attached text:=Agent Name:"

Dynamisk Descriptive programmering

Den andre metoden for å gjøre den samme handlingen er å bruke Dynamic Descriptive programmering

I tilfelle skriptet ditt bruker den beskrivende programmeringsobjektkandidaten flere ganger, vil det være veldig slitsomt å spesifisere alle egenskapsverdiparene for hver setning

I slike tilfeller kan du benytte deg av Descriptioneklasse levert av QTP

Syntaxen for å lage et beskrivelsesobjekt er

Set MyDescription = Description.Create();
MyDescription("property").Value = "property-value";

Dette er Dynamisk metode

Hvorfor bruk Descripthar du programmering?

Videoutskrift

  • Million dollar-spørsmålet er hvorfor man skal bruke DP når objektidentifikasjonsprosessen håndteres av QTP
  • Anta at du får i oppdrag å teste en jobbportal. Du skriver inn et søk i portalen og
  • testen din forventer at du velger alle tilgjengelige jobber .og klikker på søkejobben
  • Men antall jobber som reflekteres vil avhenge av søket og tilgjengelige jobber på tidspunktet for skriptutførelse, men det er ingen måte å forutsi på forhånd antall jobber som vil bli reflektert
  • I slike tilfeller kan du bruke beskrivende programmering. Selv om du ikke vet antallet og navnene på avmerkingsboksene, kjenner du klassen for objektene som "WebCheckBox"
  • Du kan også bruke det ChildObject-metoden å returnere objekter som tilhører en bestemt forelder
  • En kodelinje som -
    Set allObjects = Browser("Jobs").Page("QTP").ChildObjects()
  • Vil returnere alle underordnede objekter for denne siden.
  • Men vi vil bare ha WebCheckBox gjenstander. For å gjøre det kan vi opprette et filteropprettingsobjekt og sette egenskapen som web-avmerkingsboks og sende dette filteret som et argument for ChildObjects-metoden
  • I dette tilfellet returneres bare avmerkingsboksene.
  • Deretter kan du skrive en kode som denne som får tilgang til hele samlingen av avmerkingsbokser fra null og setter alle avmerkingsbokser PÅ.
  • Deretter kan du klikke på bruk-knappen for å fullføre testen
  • Du kan også bruke Descriptive Programmering for å kjøre objekter som er vanskelige å registrere, som Auto-Skjul-paneler, Objekter med skiftende hierarkier, Nestede indre Objekter, Undermenyer.
  • Du kan også gjøre avanserte strengmanipulasjoner ved å bruke beskrivende programmering
  • I forbindelse med indeksegenskap kan beskrivende programmering være svært nyttig for å identifisere vanskelige objekter.
  • Hvis du bruker programmatisk beskrivelse for et objekt i objekthierarki, må du bruke beskrivelsesprogrammering for etterfølgende underordnede objekter
  • For eksempel, for sideobjektet, ble beskrivende programmering brukt, men for etterfølgende underordnede objekt brukes WinEdit Object Repository som er feil
  • Tvert i mot her for både Page og WinEdit brukes beskrivende programmering som er korrekt