GetRoProperty, GetToProperty i QTP/UFT med eksempel
⚡ Smart oppsummering
Object Spy avslører egenskapene og metodene til enhver kontroll i applikasjonen som testes, mens GetROProperty, GetTOProperty og SetTOProperty leser og skriver disse egenskapsverdiene fra en QTP or UFT Ett skript om kjøring.

Denne opplæringen demonstrerer Objektspion.
Objektspion kan hjelpe med å bestemme nyttige egenskaper og metoder knyttet til et objekt i miljøet ditt.
HP/Micro Focus UFT tutorials beskriver også GetROProperty, GetTOProperty og SetTOProperty.
⚠️ Versjonsmerknad: Verktøyet som beskrives her ble sendt som HP QuickTest Professional, ble Micro Focus Unified Functional Testing og selges i dag som OpenText Funksjonell testing (UFT En)Object Spy og alle tre metodene fungerer fortsatt nøyaktig som beskrevet nedenfor.
Klikk her. hvis videoen ikke er tilgjengelig
Objektspion
- Object Spy er en funksjon i QTP som du kan bruke til å vise både test- og kjøretidsobjektegenskaper og -metoder.
- Det gir også syntaksen for en valgt metode.
- Object Spy viser det komplette hierarkiet til objektet du har valgt.
Det hierarkiet er viktig, fordi et egenskapsnavn kopiert fra Object Spy er den nøyaktige strengen som de tre metodene nedenfor forventer. Å spionere et objekt er derfor det første trinnet i nesten alle egenskapshentingsoppgaver.
GetROProperty
- GetROProperty – er en innebygd metode som brukes til å hente kjøretidsverdien til en objektegenskap.
Det er fire trinn involvert i bruken av GetROProperty:
- Registrer objektet du vil bruke GetROProperty på. Objektlager.
- For det registrerte objektet identifiserer kjøretidsegenskapen som kan brukes. Du kan bruke Object Spy.
- Bruk GetROProperty-metoden til å hente den identifiserte kjøretidsegenskapen og lagre verdien i en variabel.
- Bruk denne verdien til ytterligere fradrag.
Fordi verdien leses fra live-kontrollen, må applikasjonen være åpen og objektet må faktisk finnes på skjermen når linjen kjører.
SetTOProperty og GetTOProperty
- Tenk deg en webknapp lagret i objektarkivet
- Når testen kjøres QTP oppretter en kopi av dette objektet kalt Testobjekt og sammenligner det med Run Time-objektet
- Ved å bruke GetTOProperty kan du hente verdien til en egenskap i et Testobjekt.
- Ved å bruke SetTOProperty kan du endre egenskapsverdien til et testobjekt.
- Når testen er fullført, forkastes dette testobjektet, og det samme gjelder eventuelle endringer du har gjort i objektegenskapene ved hjelp av SetTOProperty.
- Når testen kjøres på nytt, opprettes en ny kopi av testobjektet med originale egenskapsverdier lagret i objektlageret
- Du kan vurdere å bruke GetTOProperty og SetTOProperty når testskriptet ditt har flere linjer med kode og miljøet ditt er sporadisk.
- For et notat finnes det ingen SetROProperty
Syntaks og eksempler
Alle tre metodene kalles på et testobjekt på slutten av hierarkiet, og alle tre tar et beskrivelsesegenskapsnavn som en streng. Tabellen gir signaturen til hver av dem.
| Metode | syntax | Leser eller skriver |
|---|---|---|
| GetROProperty | objekt.GetROProperty(Egenskap) | Leser live-kontrollen i applikasjonen |
| GetTOProperty | objekt.GetTOProperty(Egenskap) | Leser den lagrede beskrivelsen av testobjektet |
| SetTOProperty | object.SetTOProperty Egenskap, verdi | Skriver testobjektbeskrivelsen kun for denne kjøringen |
Å lese en kjøretidsverdi er en enkelt setning. Dette eksemplet, hentet fra offisiell referanse for henting og innstilling av verdier, henter måladressen til en lenke under kjøreøkten.
link_href = Browser("Technologies").Page("Technologies").Link("Jobs").GetROProperty("href")
Å skrive og deretter lese en testobjektegenskap er like kort. Paret nedenfor setter navnet på Send-knappen til knappen min og leser den samme verdien rett tilbake.
Browser("QA Home Page").Page("QA Home Page").WebButton("Submit").SetTOProperty "Name", "my button" ButtonName = Browser("QA Home Page").Page("QA Home Page").WebButton("Submit").GetTOProperty("Name")
En typisk verifisering kombinerer de to ideene: les kjøretidsverdien med GetROProperty, og sammenlign den deretter med hva testen forventer.
strValue = Browser("Welcome").Page("Find a Flight").WebList("fromPort").GetROProperty("selection") If strValue = "Acapulco" Then Reporter.ReportEvent micPass, "Default city", "Default city is correct" Else Reporter.ReportEvent micFail, "Default city", "Unexpected value: " & strValue End If
Forskjellen mellom GetROProperty og GetTOProperty
De to navnene skiller seg med én bokstav og er det mest forvirrende paret i verktøyet. RO står for runtime object, TO for test object, og hvert av dem leser fra et annet sted.
| Sammenligningspunkt | GetROProperty | GetTOProperty |
|---|---|---|
| Kilden til verdien | Live-kontrollen i den kjørende applikasjonen | Beskrivelsen som er lagret for testobjektet |
| Søknaden må være åpen | Ja | Nei |
| Ser en endring i SetTOProperty | Nei | Ja, for den nåværende løpeturen |
| Typisk bruk | Verifiserer hva brukeren faktisk ser | Kontroll eller feilsøking av hvordan objektet identifiseres |
| Matchende setter | Ingen – det finnes ingen SetROProperty | SetTOProperty |
En utarbeidet kontrast gjør delingen åpenbar. Sett en html-ID på en liste som ikke har noen, og les den deretter tilbake begge veier: GetROProperty returnerer en tom streng fordi applikasjonen aldri endret seg, mens GetTOProperty returnerer verdien som nettopp ble skrevet inn i beskrivelsen.
Vanlige feil og hvordan du fikser dem
Henting av egenskaper mislykkes av et lite antall forutsigbare årsaker. Tabellen viser de testerne møter oftest.
| Symptom | Årsak | Fix |
|---|---|---|
| Kallet returnerer en tom streng | Egenskapsnavnet er feil, eller objektet eksponerer det ikke | Spioner objektet igjen og kopier egenskapsnavnet nøyaktig slik det er oppført. |
| Objektet ble ikke funnet på GetROProperty-linjen | Kontrollen hadde ikke blitt gitt ennå | Legg til et synkroniseringstrinn før lesingen |
| GetROProperty ignorerer en SetTOProperty-endring | De to metodene adresserer forskjellige objekter per design | Les endringen tilbake med GetTOProperty i stedet |
| En endring av SetTOProperty forsvinner | Redigering av testobjekter varer bare for gjeldende kjøring | Rediger objektet i depotet, eller bruk beskrivende programmering |
| SetROProperty genererer en syntaksfeil | Ingen slik metode finnes | Kjør applikasjonen gjennom et normalt trinn, for eksempel Angi eller Klikk |
To vaner forhindrer de fleste av disse: spioner på kontrollen før du skriver linjen i stedet for å gjette egenskapsnavnet, og behold VBScript hentingskall nær trinnet som trenger verdien, slik at objektet fortsatt er på skjermen når lesingen skjer.
