qtp tutorial 7 qtp s object identification paradigm how qtp identify objects uniquely
Hvordan identificerer QTP objekt entydigt? - Dette er den 7. QTP-tutorial i vores QTP-træningsserie.
Vi får os udstyret med alle de grundlæggende begreber, der gør det muligt for os at skrive robuste QTP-test . Vi har dækket QTP Optag og kør indstillinger , Arbejde med søgeordsvisning og de andre relaterede emner.
=> Klik her for QTP Training Tutorials Series
Dette er den næste artikel i serien, der taler om et afgørende aspekt af QTP - Den mekanisme, den bruger til at identificere et objekt entydigt . Når du ser på nedenstående skærmbillede:
Der er 3 knapper og 2 tekstfelter sammen med forskellige andre elementer i denne dialog.
I de tidligere eksempler, da vi indtastede brugernavnet og adgangskoden, så vi, hvordan QTP registrerede de samme operationer med hensyn til programmatisk kode såvel som en tabel i nøgleordsvisning. Nu, under afspilning, hvordan ved QTP, at den værdi, vi giver som agentnavn eller adgangskode, skal gå henholdsvis i disse redigeringsfelter. Eller hvordan ved det, hvilken knap der skal klikkes for at indsende de indtastede værdier?
Lad os prøve at finde et svar på det.
sql forespørgsel praksis spørgsmål svar pdf
Det er klart, at QTP på en eller anden måde husker, hvilket objekt man skal handle på. Den måde det gør det på er, at det gemmer objektet i AUT som et testobjekt. Derefter undersøger dens egenskaber og klassificerer objektet. For eksempel, når den møder OK-knappen, undersøger den dens egenskaber og ud fra disse klassificerer den objektet som en 'WinButton'.
QTP har et forudbestemt sæt egenskaber, som det lærer / gemmer for hver klasse af objekt, det identificerer. Der er 3 aspekter ved dette:
- Obligatoriske egenskaber : Dette er listen over egenskaber for en bestemt klasse, som QTP altid gemmer. Vi kan sige, at dette er objektbeskrivelsen. Det kontrollerer også dette i forbindelse med det overordnede objekt for at se, om beskrivelsen er tilstrækkelig til at identificere objektet entydigt.
- Hjælpende egenskaber : Hvis beskrivelsen af obligatoriske egenskaber ikke er tilstrækkelig til at identificere objektet, tilføjes et sæt ikke-obligatoriske egenskaber til beskrivelsen efter hinanden, indtil der er nok data til at identificere objektet.
- Ordinær identifikator : Hvis de hjælpende egenskaber heller ikke resulterer i en unik identifikation af et objekt, tilføjes en særlig ordinær identifikator af QTP, såsom objektets placering på siden eller i kildekoden.
Så dette danner QTP testobjekter. Det bruger denne testobjektbeskrivelse til at søge efter de objekter, der skal handles under en kørselssession. Det vælger de objekter, der passer perfekt til beskrivelsen, den indeholder. Disse objekter kaldes Run-Time-objekter.
Medmindre din applikation har ændret sig væsentligt, er testobjektbeskrivelsen, som QTP har, tilstrækkelig til at finde et objekt.
For det WinButton-objekt, som vi har i vores Flight-app, lad os se, hvilke egenskaber QTP har gemt. Denne information er tilgængelig i Object Repository. Menupunktet “Ressourcer-> Objektlager” starter OR for os. Alternativt kan du bruge CTRL + R eller klikke på ikonet.
Hvis du bemærker det i ovenstående vindue, gemte det 'teksten' i WinButton som beskrivelse for at identificere denne knap ved kørsel.
For mere komplicerede applikationer kan testeren tilføje eller fjerne bestemte egenskaber for at gøre beskrivelsen robust nok til at identificere objektet ved kørsel mere præcist. For at gøre dette skal du blot klikke på '+' ikonet.
Alle de andre egenskaber ved objektet vises. Brugeren kan vælge at tilføje en eller flere af disse egenskaber.
Der er også noget, der hedder “ Visual Relation Identifier ”I ELLER-skærmen for egenskaberne for WinButton.
Dette er en funktion, der yderligere understøtter genkendelse af objekter i henhold til deres nærliggende objekter i AUT. Når det er indstillet, skaber dette en slags link til de mindre stabile komponenter i din AUT med de objekter, der er mere entydigt identificerbare. QTP identificerer disse objekter, så længe de opretholder deres relative position i forhold til disse unikke objekter.
For at indstille en slags positionskobling skal vi klikke på denne kolonne i ELLER, og følgende skærmbillede vises:
I dette skærmbillede skal du vælge '+' - tegnet for at tilføje et objekt, som du ønsker, at dit testobjekt skal have et positionskobling til.
Jeg vælger “Agentnavn” og siger, at dette objekt skal være over “OK” -knappen.
Sådan indstillede jeg det:
Hvis nogle egenskaber ved OK-knappen ændres i fremtiden, vil QTP nu identificere det, hvis 'Agentnavn' er over det.
Smart identifikation
selen webdriver interview spørgsmål og svar i 3 års erfaring
Dette er den mekanisme, der anvendes af QTP under en af disse to situationer. Beskrivelsen af et objekt, som QTP har:
- Matcher ikke med nogen runtime-objekter
- Matcher med flere objekter
Dette er lidt af et avanceret koncept, så vi kommer til det på et senere tidspunkt via nogle eksempler for nem og detaljeret forståelse.
Ordinær identifikator
Dette er en numerisk værdi, der viser objektets relative rækkefølge med objekter, der har en lignende beskrivelse. Hvis et objekt 1 og objekt 2 har de samme obligatoriske og hjælpende egenskaber, vil den ordinære identifikator blive brugt til at genkende objektet entydigt.
Denne værdi er relateret til de andre objekter på skærmen, så hvis der sker ændringer på skærmen, er denne identifikator muligvis ikke nyttig. Det skal bemærkes, at hvis de obligatoriske og hjælpende egenskaber er tilstrækkelige, tildeles der ikke en ordinær identifikator til registrering. Det kan tilføjes senere ved at klikke på den respektive kolonne for objektet i ELLER
Der er 3 slags ordinære identifikatorer:
- Indeks: dette er baseret på rækkefølgen af et objekt i applikationskoden
- Beliggenhed: baseret på placeringen på en skærm, dialog eller side
- Oprettelsestid: Dette bruges kun til browserobjekter. Hvis der findes 2 browsere med lignende egenskaber, overvejes den, der oprettes første og næste.
For eksempel, lad os forstå, hvordan 'index' -identifikatoren fungerer i vores login-skærmbillede for Flight-applikationer:
Dette er følgende komponenter:
Som du kan se, har den statiske tekst og redigeringsfelterne den samme 'tekst' egenskab.
Hvis jeg ved, at en af dem er en statisk tekst, og den anden er WinEdit-objekt, så er der slet ikke noget problem. Sig, hvis alle disse behandles som WinObject, bliver jeg nødt til at specificere, hvilket objekt jeg vil handle på. Dette vil kun ske, når den obligatoriske, hjælpende og intelligente identifikation er mislykket. Så for at fortælle QTP, hvad der er hvad, vil jeg tildele en 'Index' ordinær identifikator. Jeg vil gøre det fra OR.
Jeg sætter agentens statiske tekstidentifikator som 0 og for redigeringsboksen vil jeg indstille den til 1.
Sådan ser det ud:
Så hvis jeg har brug for at få adgang til den statiske tekst, gør jeg det som følger:
WinObject (“tekst: = Agentnavn:”, indeks: = 0) - Dette refererer til den statiske tekst
WinObject (“tekst: = Agentnavn:”, indeks: = 1) - Dette refererer til redigeringsfeltet
Den samme teori gælder også for placeringsidentifikatoren, bortset fra at vi vælger placeringen i vinduet for at bestemme den numeriske værdi, der gælder for et bestemt objekt.
Konfiguration af objektidentifikationsegenskaber:
De obligatoriske, hjælpende egenskaber og ordinære identifikatorer, der skal overvejes for et objekt af en bestemt klasse, der skal genkendes, kan konfigureres ved hjælp af 'Værktøjer-> Objektidentifikator'. Vi kan også indstille de smarte identifikationsegenskaber gennem dette vindue.
Vinduet ser således ud:
Som det kan ses i dette billede ovenfor, kan miljøet vælges fra rullemenuen. Når dette er valgt, vises klasser af objekter i de tilsvarende miljøer på listen. Når et objekt er valgt, vises de obligatoriske og hjælpende egenskaber. Brugeren kan tilføje / fjerne yderligere egenskaber til denne liste.
Smart identifikation kan også aktiveres / deaktiveres for en bestemt genstandsklasse, når det er nødvendigt. For at indstille den ordinære identifikator er der en rullemenu, der kan vælges til at identificere objektet ved hjælp af Location, Index eller Creation Time (kun for browsertype).
Vi vil afslutte de grundlæggende koncepter, inden vi går videre til fuldgyldige QTP-programmer. Den næste QTP-artikel vil have forskellige optagetilstande, Object Spy, Object Repository osv. Detaljer.
=> Besøg her for QTP Training Tutorials Series
Anbefalet læsning
- Objektlager i QTP - Tutorial # 22
- QTP-tutorial # 18 - Datadrevne og hybridrammer forklaret med QTP-eksempler
- QTP-tutorial # 24 - Brug af virtuelle objekter og gendannelsesscenarier i QTP-tests
- QTP Tutorial # 6 - Forståelse af QTP Record og Run-indstillinger til vores første test
- QTP Tutorial # 23 - QTP Smart Object Identification, Sync Point og Test Result Analysis
- QTP-vejledning # 8 - Lær om QTP-optagelsestilstande, Object Spy og Object Repositories
- Parameterisering i QTP (del 2) - QTP-vejledning nr. 20
- QTP Tutorials - 25+ Micro Focus Quick Test Professional (QTP) Training Tutorials