GetRoProperty, GetToProperty i QTP/UFT med Eksempel
⚡ Smart opsummering
Object Spy afslører egenskaberne og metoderne for enhver kontrol i den applikation, der testes, mens GetROProperty, GetTOProperty og SetTOProperty læser og skriver disse egenskabsværdier fra en QTP or UFT Ét script ad gangen.

Denne tutorial demonstrerer Objektspion.
Object Spy kan hjælpe med at bestemme de nyttige egenskaber og metoder forbundet med et objekt i dit miljø.
HP/Micro Focus UFT tutorials beskriver også GetROProperty, GetTOProperty & SetTOProperty.
⚠️ Versionsnotat: Værktøjet beskrevet her blev leveret som HP QuickTest Professional, blev til Micro Focus Unified Functional Testing og sælges i dag som OpenText Funktionel testning (UFT En)Object Spy og alle tre metoder fungerer stadig præcis som beskrevet nedenfor.
Klik link. hvis videoen ikke er tilgængelig
Objektspion
- Object Spy er en funktion i QTP hvor du kan se både test- og kørselsobjektets egenskaber og metoder.
- Det giver også syntaksen for en valgt metode.
- Object Spy viser det komplette hierarki for det objekt, du har valgt.
Det hierarki er vigtigt, fordi et egenskabsnavn kopieret fra Object Spy er præcis den streng, som de tre metoder nedenfor forventer. At spionere et objekt er derfor det første trin i næsten alle egenskaber, der hentes.
GetROProperty
- GetROProperty – er en indbygget metode, der bruges til at hente runtime-værdien af en objektegenskab.
Der er 4 trin involveret i at bruge GetROProperty:
- Registrer det objekt, som du vil bruge GetROProperty på. Objektopbevaring.
- For det optagede objekt identificeres den runtime-egenskab, der kan bruges. Du kan bruge Object Spy.
- Brug GetROProperty-metoden til at hente den identificerede Run-time-egenskab og gemme værdien i en variabel.
- Brug denne værdi til yderligere fradrag.
Da værdien læses fra live-kontrollen, skal applikationen være åben, og objektet skal faktisk findes på skærmen, når linjen kører.
SetTOProperty & GetTOProperty
- Overvej en webknap, der er gemt i objektarkivet
- Når testen køres QTP opretter en kopi af dette objekt kaldet Testobjekt og sammenligner det med Run Time-objektet
- Ved at bruge GetTOProperty kan du hente værdien af en egenskab i et Testobjekt.
- Ved at bruge SetTOProperty kan du ændre egenskabsværdien for et testobjekt.
- Når testen er færdig, kasseres dette testobjekt, og det samme gælder eventuelle ændringer, du har foretaget i objektegenskaberne ved hjælp af SetTOProperty.
- Når testen køres igen, oprettes en ny kopi af testobjektet med originale egenskabsværdier gemt i objektlageret
- Du kan overveje at bruge GetTOProperty og SetTOProperty, når dit testscript har flere linjer kode, og dit miljø er sporadisk.
- For en note er der ingen SetROProperty
Syntaks og eksempler
Alle tre metoder kaldes på et testobjekt i slutningen af dets hierarki, og alle tre tager et beskrivelsesegenskabsnavn som en streng. Tabellen angiver signaturen for hver metode.
| Metode | Syntaks | Læser eller skriver |
|---|---|---|
| GetROProperty | objekt.GetROProperty(Egenskab) | Læser live-kontrollen i applikationen |
| GetTOProperty | objekt.GetTOProperty(Egenskab) | Læser den gemte beskrivelse af testobjektet |
| SetTOProperty | object.SetTOProperty Egenskab, Værdi | Skriver kun testobjektbeskrivelsen for denne kørsel |
Aflæsning af en kørselsværdi er en enkelt sætning. Dette eksempel, taget fra officiel hentnings- og indstillingsreference, henter måladressen for et link under kørselssessionen.
link_href = Browser("Technologies").Page("Technologies").Link("Jobs").GetROProperty("href")
At skrive og derefter læse en testobjektegenskab er lige så kort. Parret nedenfor sætter navnet på knappen Send til min knap og læser den samme værdi direkte tilbage.
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 verifikation forbinder de to ideer: læs kørselsværdien med GetROProperty, og sammenlign den derefter med, hvad 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
Forskellen mellem GetROProperty og GetTOProperty
De to navne adskiller sig med ét bogstav og er det mest forvirrende par i værktøjet. RO står for run-time object, TO for test object, og hvert navn læser fra et forskelligt sted.
| Punkt af sammenligning | GetROProperty | GetTOProperty |
|---|---|---|
| Kilden til værdien | Live-kontrollen i den kørende applikation | Beskrivelsen gemt for testobjektet |
| Applikationen skal være åben | Ja | Ingen |
| Ser en ændring af SetTOProperty | Ingen | Ja, for den nuværende løbetur |
| Typisk brug | Verificering af, hvad brugeren rent faktisk ser | Kontrol eller fejlfinding af, hvordan objektet identificeres |
| Matchende setter | Ingen — der er ingen SetROProperty | SetTOProperty |
En bearbejdet kontrast gør opdelingen tydelig. Sæt et html-id på en liste, der ikke har noget, og læs det derefter tilbage begge veje: GetROProperty returnerer en tom streng, fordi applikationen aldrig har ændret sig, mens GetTOProperty returnerer den værdi, der lige blev skrevet ind i beskrivelsen.
Almindelige fejl og hvordan man retter dem
Hentning af egenskaber mislykkes af et lille antal forudsigelige årsager. Tabellen viser de årsager, testere oftest støder på.
| Symptom | Årsag | Fix |
|---|---|---|
| Kaldet returnerer en tom streng | Egenskabsnavnet er forkert, eller objektet eksponerer det ikke | Spioner objektet igen og kopier egenskabsnavnet præcis som angivet |
| Objektet blev ikke fundet på GetROProperty-linjen | Kontrollen var endnu ikke blevet leveret | Tilføj et synkroniseringstrin før læsningen |
| GetROProperty ignorerer en SetTOProperty-ændring | De to metoder henvender sig til forskellige objekter per design | Læs ændringen tilbage med GetTOProperty i stedet |
| En ændring af SetTOProperty forsvinder | Redigering af testobjekter gælder kun for den aktuelle kørsel | Rediger objektet i arkivet, eller brug beskrivende programmering |
| SetROProperty giver en syntaksfejl | Der findes ingen sådan metode | Kør applikationen gennem et normalt trin, f.eks. Indstil eller Klik |
To vaner forhindrer de fleste af disse: spioner på kontrollen, før du skriver linjen, i stedet for at gætte egenskabsnavnet, og hold vbscript hentningskald tæt på det trin, der skal bruge værdien, så objektet stadig er på skærmen, når aflæsningen finder sted.
