qtp tutorial 7 qtp s object identification paradigm how qtp identify objects uniquely
Hvordan QTP identifiserer objekt unikt? - Dette er den 7. QTP-opplæringen i vår QTP-opplæringsserie.
Vi blir utstyrt med alle de grunnleggende konseptene som gjør det mulig for oss å skrive robuste QTP-tester . Vi har dekket QTP Registrer og kjør innstillinger , Arbeider med søkeordvisning og de andre relaterte emnene.
=> Klikk her for QTP Training Tutorials Series
Dette er neste artikkel i serien som snakker om et avgjørende aspekt av QTP - Mekanismen den bruker for å identifisere et objekt unikt . Når du ser på skjermen nedenfor:
Det er 3 knapper og 2 tekstbokser sammen med forskjellige andre elementer i denne dialogen.
I de forrige eksemplene, da vi skrev inn brukernavn og passord, så vi hvordan QTP registrerte de samme operasjonene når det gjelder programmatisk kode, samt en tabell i søkeordvisning. Nå, under avspilling, hvordan vet QTP at verdien vi oppgir som agentnavn eller passord må gå henholdsvis i disse redigeringsboksene. Eller hvordan vet den hvilken knapp du skal klikke for å sende inn verdiene du har angitt?
La oss prøve å finne et svar på det.
flette sorter c ++ kildekode
Det er klart at QTP på en eller annen måte husker hvilket objekt du skal handle på. Slik det gjør det, lagrer det objektet i AUT som et testobjekt. Deretter undersøker den egenskapene og klassifiserer objektet. For eksempel, når den møter OK-knappen, undersøker den egenskapene og basert på disse, klassifiserer den objektet som en ‘WinButton’.
QTP har et forhåndsbestemt sett med egenskaper som den lærer / lagrer for hver klasse objekt det identifiserer. Det er tre aspekter ved dette:
- Obligatoriske egenskaper : Dette er listen over egenskaper for en bestemt klasse som QTP alltid lagrer. Vi kan si at dette er objektbeskrivelsen. Det sjekker også dette sammen med det overordnede objektet for å se om beskrivelsen er tilstrekkelig til å identifisere objektet unikt.
- Hjelpemidler : Hvis beskrivelsen av obligatoriske egenskaper ikke er tilstrekkelig til å identifisere objektet, vil et sett med ikke-obligatoriske egenskaper legges til beskrivelsen etter hverandre til det er nok data til å identifisere objektet.
- Ordinær identifikator : Hvis assistanseegenskapene heller ikke resulterer i en unik identifikasjon av et objekt, blir en spesiell ordinær identifikator lagt til av QTP, for eksempel objektets plassering på siden eller i kildekoden.
Så dette er hvordan QTP danner testobjekter. Den bruker denne testobjektbeskrivelsen for å søke etter objektene å handle på under en løpetur. Den velger objektene som passer perfekt med beskrivelsen den inneholder. Disse objektene kalles Kjøretidsobjekter.
Med mindre søknaden din har endret seg betydelig, er testobjektbeskrivelsen som QTP har, tilstrekkelig til å finne et objekt.
For WinButton-objektet som vi har i Flight-appen vår, la oss se hvilke egenskaper QTP har lagret. Denne informasjonen er tilgjengelig i Object Repository. Menyvalget “Resources-> Object Repository” vil starte OR for oss. Alternativt kan du bruke CTRL + R eller klikke på ikonet.
Hvis du merker det i vinduet ovenfor, lagret den 'teksten' i WinButton som beskrivelse for å identifisere denne knappen under kjøretid.
For mer kompliserte applikasjoner kan testeren legge til eller fjerne visse egenskaper for å gjøre beskrivelsen robust nok til å identifisere objektet under kjøretid mer presist. For å gjøre dette, klikker du bare på ‘+’ ikonet.
Alle de andre egenskapene til objektet vises. Brukeren kan velge å legge til en eller flere av disse egenskapene.
Det er også noe som heter “ Visual Relation Identifier ”I ELLER-skjermen for WinButton-egenskapene.
Dette er en funksjon som videre støtter gjenkjenning av objekter i henhold til deres nærliggende objekter i AUT. Når det er angitt, skaper dette en slags kobling for de mindre stabile komponentene i AUT med objektene som er mer unikt identifiserbare. QTP vil identifisere disse objektene så lenge de opprettholder sin relative posisjon til disse unike objektene.
For å sette en slags posisjonell lenke må vi klikke på denne kolonnen i ELLER, og følgende skjerm vises:
I dette skjermbildet velger du '+' tegnet for å legge til et objekt som du vil at testobjektet skal ha en posisjonell lenke til.
Jeg vil velge 'Agentnavn' og si at dette objektet skal være over 'OK' -knappen.
Dette er hvordan jeg setter det:
Nå, hvis noen egenskaper for OK-knappen endres i fremtiden, vil QTP identifisere det hvis 'Agentnavn' er over det.
Smart identifikasjon
boble sortering c ++ eksempel
Dette er mekanismen som brukes av QTP under en av disse to situasjonene. Beskrivelsen for et objekt som QTP har:
- Stemmer ikke overens med noen kjøretidsobjekter
- Matcher med flere objekter
Dette er litt av et avansert konsept, så vi kommer til det senere via noen eksempler for enkel og forseggjort forståelse.
Ordinær identifikator
Dette er en numerisk verdi som viser objektets relative rekkefølge med objekter som har en lignende beskrivelse. Hvis et objekt 1 og Object 2 har de samme obligatoriske og hjelpende egenskapene, vil den ordinære identifikatoren brukes til å gjenkjenne objektet unikt.
Denne verdien er relatert til de andre objektene på skjermen, så hvis noe endres på skjermen, kan det hende at denne identifikatoren ikke er nyttig. Det skal bemerkes at hvis de obligatoriske og hjelpende egenskapene er tilstrekkelige, blir en ordinær identifikator ikke tilordnet å registrere. Det kan legges til senere ved å klikke på den respektive kolonnen for objektet i OR
Det er tre typer ordinære identifikatorer:
- Indeks: dette er basert på rekkefølgen på et objekt i applikasjonskoden
- Plassering: basert på plasseringen i en skjerm eller dialog eller side
- Opprettelsestid: Dette brukes bare til nettleserobjekter. I tilfelle 2 nettlesere med lignende egenskaper eksisterer, vurderes den som blir opprettet først og neste.
For eksempel, la oss forstå hvordan 'indeks' -identifikatoren fungerer i påloggingsskjermen for Flight-applikasjoner:
Dette er følgende komponenter:
Som du kan se, har den statiske teksten og redigeringsboksen den samme ‘tekst’-egenskapen.
Hvis jeg vet at en av dem er en statisk tekst og den andre er WinEdit-objekt, så er det ikke noe problem i det hele tatt. Si at hvis alle disse blir behandlet som WinObject, må jeg spesifisere hvilket objekt jeg vil handle på. Dette kommer bare til å skje når den obligatoriske, hjelpemessige og smarte identifikasjonen har mislyktes. Så for å fortelle QTP hva som er hva, skal jeg tildele en 'Index' ordinær identifikator. Jeg vil gjøre det fra OR.
Jeg vil angi agentens statiske tekstidentifikator som 0, og for redigeringsboksen vil jeg sette den som 1.
Slik ser det ut:
Så hvis jeg trenger tilgang til den statiske teksten, vil jeg gjøre det som følger:
WinObject (“text: = Agent Name:”, index: = 0) - Dette vil referere til den statiske teksten
WinObject (“text: = Agent Name:”, index: = 1) - Dette vil referere til redigeringsboksen
Den samme teorien gjelder også for lokaliseringsidentifikatoren, bortsett fra at vi velger stedet i vinduet for å bestemme den numeriske verdien som gjelder for et bestemt objekt.
Konfigurere egenskaper for objektidentifikasjon:
De obligatoriske, hjelpende egenskapene og ordinære identifikatorene som skal vurderes for et objekt av en bestemt klasse som skal gjenkjennes, kan konfigureres ved å bruke 'Verktøy-> Objektidentifikator'. Vi kan også angi smarte identifikasjonsegenskaper gjennom dette vinduet.
Vinduet ser slik ut:
Som du kan se i dette bildet ovenfor, kan miljøet velges fra rullegardinboksen. Når det er valgt, vises klassene av objekter i de tilsvarende miljøene i listen. Etter at et objekt er valgt, vises de obligatoriske og hjelpende egenskapene. Brukeren kan legge til / fjerne flere egenskaper til denne listen.
Smart identifikasjon kan også aktiveres / deaktiveres for en bestemt klasse objekter når det er nødvendig. For å angi ordinær identifikator er det en rullegardinmeny som kan velges for å identifisere objektet ved hjelp av Location, Index eller Creation Time (bare for nettlesertype).
Vi vil avslutte de grunnleggende konseptene før vi går videre til fullverdige QTP-programmer. Den neste QTP-artikkelen vil ha forskjellige opptaksmodi, Object Spy, Object Repository, etc. detaljer.
=> Besøk her for QTP Training Tutorials Series
Anbefalt lesing
- Object Repository i QTP - Opplæring # 22
- QTP Opplæring # 18 - Datadrevne og hybridrammer forklart med QTP-eksempler
- QTP Opplæring # 24 - Bruk av virtuelle objekter og gjenopprettingsscenarier i QTP-tester
- QTP Opplæring # 6 - Forstå innstillinger for QTP Record og Run for vår første test
- QTP Opplæring # 23 - QTP Smart Object Identification, Sync Point og Test Result Analysis
- QTP Opplæring # 8 - Lær om QTP-opptaksmoduser, Object Spy og Object Repositories
- Parameterisering i QTP (del 2) - QTP opplæring # 20
- QTP Tutorials - 25+ Micro Focus Quick Test Professional (QTP) Training Tutorials