Hva er beskrivende programmering?
Beskrivende 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 Object Repository og oppgi Object Description i selve setningen.
Et objektnavn brukes ganske enkelt til å kartlegge et objekt i skriptet med beskrivelsen i et objektlager. Betydning hvis du endrer objektnavnet i skriptet og objektdatabasen, skal skriptet kjøre. Se følgende video om dette konseptet
Klikk her hvis videoen ikke er tilgjengelig
Video Høydepunkter
- Slett objektbeskrivelsen for agentnavn, vinn redigeringsboksen fra objektlageret. Hvis du kjører testen igjen, vil den mislykkes siden den ikke kan gjenkjenne objektet. La oss undersøke årsaken til at manuset mislykkes
- Under kjøretid identifiserer Micro Focus UFT operasjonen som utføres i WinEdit-boksen, og Objektbeskrivelsen i Object Repository er lagret som agentnavn. Det bruker dette navnet for å spore objektet i et objektlager. For en forelder kan du ikke ha to underobjekter med samme navn. Derfor kartlegger QTP objektet i depotet unikt. Deretter bruker den den lagrede beskrivelsen i Object Repository og erstatter navnet med beskrivelsen. Den bruker deretter denne uttalelsen til å identifisere objektet i applikasjonen under test / li>
- Siden vi i vårt tilfelle hadde slettet denne objektbeskrivelsen helt, mislykkes skriptet / li>
- Men hva om du i stedet for QTP erstatter objektbeskrivelsen, du som tester spesifiserer objektbeskrivelsene i skriptet ditt. Dette er ingenting annet enn "beskrivende programmering"
Typer av beskrivende programmering
Du kan bruke beskrivende programmering på to måter
- Statisk
- Dynamisk
Statisk beskrivende programmering
I Statisk metode, for objektidentifikasjon, spesifiserer du et objekts eiendom i følgende format
eiendom: = verdier,
Dette formatet kalles eiendomsverdipar og er omsluttet av inverterte kommaer>
Hvis objektet ditt bruker flere beskrivelser for identifikasjon, kan du spesifisere dem ved hjelp av komma >
Så i vårt tilfelle blir beskrivelsen for agentnavn
"nativeclass: = Edit", "vedlagt tekst: = Agentnavn:"
Dynamisk beskrivende programmering
Den andre metoden for å gjøre den samme handlingen er å bruke Dynamic Descriptive programmering
Hvis skriptet ditt bruker det beskrivende programmeringsobjektet kandidat flere ganger, vil det være veldig kjedelig å spesifisere alle eiendomsverdiparene for hver setning
I slike tilfeller kan du benytte deg av beskrivelsesklasse levert av QTP
Syntaksen for å lage et beskrivelseobjekt er
Sett MyDescription = Description.Create ();MyDescription ("eiendom"). Verdi = "eiendom-verdi";
Dette er den dynamiske metoden
Hvorfor bruke beskrivende programmering?
Videoutskrift
- Million dollar-spørsmålet er hvorfor man bruker DP når Object Identification-prosessen håndteres av QTP
- Anta at du er tildelt å 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øk jobben
- Men antall reflekterte jobber vil avhenge av søk og jobber tilgjengelig på tidspunktet for skriptutførelse, men det er ingen måte å på forhånd forutsi antall jobber som vil reflekteres
- I slike tilfeller kan du bruke beskrivende programmering. Selv om du ikke vet antall og navn på avmerkingsboksene, kjenner du klassen for objektene som "WebCheckBox"
- Du kan bruke ChildObject-metoden til å returnere objekter som tilhører en bestemt foreldre
- En linje med kode som -
Sett allObjects = nettleser ("Jobber"). Side ("QTP"). ChildObjects ()
- Returnerer alle underordnede objekter for denne siden.
- Men vi vil bare ha WebCheckBox-objekter. For å gjøre det kan vi opprette et filteropprettingsobjekt og sette egenskapen som nett avkrysningsrute 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 avkrysningsruter fra null og setter alle avkrysningsruter PÅ.
- Deretter kan du klikke på bruk-knappen for å fullføre testen
- Du kan også bruke beskrivende programmering til å kjøre objekter som er vanskelige å ta opp, som Auto-Hide Panels, Objekter med skiftende hierarkier, Nestede indre objekter, Undermenyer.
- Du kan også gjøre avanserte strengmanipuleringer ved hjelp av beskrivende programmering
- I forbindelse med indeksegenskap kan beskrivende programmering være veldig 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 sideobjektet ble for eksempel beskrivende programmering brukt, men for å etterfølgende underordnet objekt brukes WinEdit Object Repository som er feil
- Tvert imot her for både Page og WinEdit brukes beskrivende programmering som er riktig