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.

  • 🔎 Objektspion først: Pek den mot en kontroll for å se testobjektegenskapene, kjøretidsegenskapene, metodene og hele hierarkiet.
  • ☑️ To objektverdener: Testobjektet er den lagrede beskrivelsen; kjøretidsobjektet er live-kontrollen i applikasjonen.
  • GetROProperty: Leser gjeldende verdi fra live-kontrollen, så applikasjonen må være åpen og objektet må eksistere.
  • 🧪 GetTOProperty: Leser den lagrede beskrivelsen i stedet, og det er derfor de to metodene kan returnere forskjellige verdier.
  • 🛠️ SetTOProperty: Endrer kun beskrivelsen for denne kjøringen; depotet blir aldri berørt, og endringen forkastes på slutten.
  • 📌 Ingen SetRO-egenskap: Et skript kan lese applikasjonen, men kan ikke skrive en egenskap tilbake i den.

Object Spy og metodene GetROProperty, GetTOProperty og SetTOProperty i QTP og UFT En

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:

  1. Registrer objektet du vil bruke GetROProperty på. Objektlager.
  2. For det registrerte objektet identifiserer kjøretidsegenskapen som kan brukes. Du kan bruke Object Spy.
  3. Bruk GetROProperty-metoden til å hente den identifiserte kjøretidsegenskapen og lagre verdien i en variabel.
  4. 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.

Spørsmål og svar

Object Spy viser identifikasjonsegenskapene verktøyet har for den klassen, pluss de native egenskapene som eksponeres av nettleseren. Attributt- og stilverdier nås med attributt- og stilprefiksene i egenskapsstrengen.

Et kjøretidsobjekt tilhører applikasjonen, ikke testen, så verktøyet vil ikke skrive inn i det. For å endre hva applikasjonen inneholder, kjør kontrollen med et vanlig trinn som Angi, Velg eller Klikk.

Nei. Det midlertidige testobjektet forkastes når kjøringen er avsluttet, og en ny kopi bygges fra repositoriet neste gang. Permanente endringer hører hjemme i selve objektrepositoriet.

Ja. Et beskrevet objekt som er innebygd i linjen aksepterer de samme kallene, så GetROProperty fungerer med beskrivende programmering også. GetTOProperty returnerer deretter verdien fra den innebygde beskrivelsen i stedet for fra en lagret oppføring.

AI-assisterte lokaliseringsverktøy rangerer flere kandidategenskaper for samme kontroll og reparerer en ødelagt beskrivelse når ett attributt endres. Dette reduserer den manuelle spioneringsløkken, selv om den foreslåtte egenskapen fortsatt trenger en menneskelig sjekk.

Copilot fullfører hierarkiet og metodekallet når den ser noen lignende linjer i filen. Den kan ikke vite dine virkelige objektnavn eller hvilke egenskaper kontrollen eksponerer, så verifiser hver genererte streng i Object Spy.

Object Spy er et inspeksjonsverktøy som viser verdier mens du bygger skriptet. Et kontrollpunkt er et trinn som kjører inne i testen og rapporterer bestått eller ikke bestått mot en lagret forventet verdi.

Bare hvis objektet fortsatt finnes i applikasjonen. En kontroll som ikke har blitt gjengitt, eller en som ble fjernet fra siden, genererer en «objekt ikke funnet»-feil i stedet for å returnere en tom verdi.

Oppsummer dette innlegget med: