qtp tutorial 7 qtp s object identification paradigm how qtp identify objects uniquely
Hoe identificeert QTP objecten uniek? - Dit is de 7e QTP-zelfstudie in onze QTP-trainingsreeks.
We krijgen onszelf uitgerust met alle basisconcepten waarmee we kunnen schrijven robuuste QTP-tests We hebben de QTP behandeld Instellingen opnemen en uitvoeren Werken met de zoekwoordweergave en de andere gerelateerde onderwerpen.
Klik hier voor de serie QTP-trainingen
Dit is het volgende artikel in de serie dat gaat over een cruciaal aspect van QTP - Het mechanisme dat het gebruikt om een object uniek te identificeren Als je naar het onderstaande scherm kijkt:
Er zijn 3 knoppen en 2 tekstvakken samen met diverse andere elementen in dit dialoogvenster.
In de vorige voorbeelden, toen we de gebruikersnaam en het wachtwoord invoerden, zagen we hoe QTP dezelfde bewerkingen registreerde in termen van programmatische code en een tabel in trefwoordweergave. Hoe weet QTP nu tijdens het afspelen dat de waarde die we opgeven als Agentnaam of Wachtwoord respectievelijk in die bewerkingsvakken moet gaan. Of hoe weet het op welke knop moet worden geklikt om de ingevoerde waarden te verzenden?
Laten we proberen daar een antwoord op te vinden.
hoe een generieke array in java te initialiseren
Het is duidelijk dat QTP zich op de een of andere manier herinnert op welk object moet worden gehandeld. De manier waarop het het doet is, het slaat het object op in de AUT als een testobject. Het onderzoekt vervolgens zijn eigenschappen en classificeert het object. Bijvoorbeeld, wanneer het de OK-knop tegenkomt, onderzoekt het zijn eigenschappen en op basis hiervan classificeert het het object als een ‘WinButton’.
QTP heeft een vooraf bepaalde set eigenschappen die het leert / opslaat voor elke klasse van objecten die het identificeert. Dit heeft drie aspecten:
- Verplichte eigenschappen : Dit is de lijst met eigenschappen voor een bepaalde klasse die QTP altijd opslaat. We zouden kunnen zeggen dat dit de objectbeschrijving is. Het controleert dit ook in combinatie met het bovenliggende object om te zien of de beschrijving voldoende is om het object uniek te identificeren.
- Ondersteunende eigenschappen : Als de beschrijving van verplichte eigenschappen onvoldoende is om het object te identificeren, wordt een reeks niet-verplichte eigenschappen achter elkaar aan de beschrijving toegevoegd totdat er voldoende gegevens zijn om het object te identificeren.
- Ordinale identificatie : Als de ondersteunende eigenschappen ook niet resulteren in een unieke identificatie van een object, wordt er door QTP een speciale ordinale identifier toegevoegd, zoals de locatie van het object op de pagina of in de broncode.
Dit is dus hoe QTP Test Objects vormt. Het gebruikt deze testobjectbeschrijving om te zoeken naar de objecten om op te reageren tijdens een run-sessie. Het kiest de objecten die perfect passen bij de beschrijving die het bevat. Deze objecten worden genoemd Runtime-objecten.
Tenzij uw toepassing aanzienlijk is gewijzigd, is de testobjectbeschrijving die QTP heeft, voldoende om een object te vinden.
Laten we voor het WinButton-object dat we in onze Flight-app hebben, zien welke eigenschappen QTP heeft opgeslagen. Deze informatie is beschikbaar in de Object Repository. De menu-optie “Bronnen-> Object Repository” zal de OR voor ons starten. Als alternatief kunt u CTRL + R gebruiken of op het pictogram klikken.
Als u in het bovenstaande venster opmerkt, heeft het de ‘tekst’ in de WinButton opgeslagen als beschrijving om deze knop tijdens runtime te identificeren.
Voor meer gecompliceerde toepassingen kan de tester bepaalde eigenschappen toevoegen of verwijderen om de beschrijving robuust genoeg te maken om het object tijdens runtime nauwkeuriger te identificeren. Om dit te doen, klikt u gewoon op het ‘+’ -pictogram.
Alle andere eigenschappen van het object worden weergegeven. De gebruiker kan ervoor kiezen om een of meer van deze eigenschappen toe te voegen.
Er is ook zoiets als ' Visuele relatie-identificatie ”In het OF-scherm voor de WinButton-eigenschappen.
Dit is een functie die verder objectherkenning ondersteunt volgens hun naburige objecten in de AUT. Eenmaal ingesteld, creëert dit een soort link voor de minder stabiele componenten in uw AUT met de objecten die unieker identificeerbaar zijn. QTP zal deze objecten identificeren zolang ze hun relatieve positie ten opzichte van deze unieke objecten behouden.
Om een soort positionele link in te stellen, moeten we op deze kolom in de OF klikken en het volgende scherm verschijnt:
Selecteer in dit scherm het ‘+’ teken om een object toe te voegen waarmee u wilt dat uw testobject een positionele link heeft.
Ik kies 'Naam agent' en zeg dat dit object boven de knop 'OK' moet staan.
Dit is hoe ik dat instelde:
Nu, in het geval dat sommige eigenschappen van de OK-knop in de toekomst veranderen, zal QTP het identificeren als 'Agent Name' erboven staat.
Slimme identificatie
hoe open ik swf-bestanden
Dit is het mechanisme dat QTP gebruikt in een van deze twee situaties. De beschrijving voor een object dat QTP heeft:
- Komt niet overeen met runtime-objecten
- Komt overeen met meerdere objecten
Dit is een beetje een geavanceerd concept, dus we zullen er later op terugkomen via enkele voorbeelden voor een gemakkelijk en uitgebreid begrip.
Ordinale identificatie
Dit is een numerieke waarde die de relatieve volgorde van het object weergeeft met objecten die een vergelijkbare beschrijving hebben. Als een object 1 en Object 2 dezelfde verplichte en ondersteunende eigenschappen hebben, wordt de ordinale identifier gebruikt om het object uniek te herkennen.
Deze waarde is gerelateerd aan de andere objecten van het scherm, dus als er iets verandert in het scherm, is deze identifier misschien niet bruikbaar. Opgemerkt moet worden dat, als de verplichte en ondersteunende eigenschappen voldoende zijn, er geen rangtelwoord wordt toegewezen om te registreren. Het kan later worden toegevoegd door op de respectieve kolom voor het object in de OK te klikken
Er zijn 3 soorten ordinale ID's:
- Inhoudsopgave: dit is gebaseerd op de volgorde van verschijnen van een object in de applicatiecode
- Plaats: op basis van de locatie in een scherm, dialoogvenster of pagina
- Aanmaak tijd: Dit wordt alleen gebruikt voor browserobjecten. In het geval dat er 2 browsers met vergelijkbare eigenschappen bestaan, wordt de eerst aangemaakte en de volgende bekeken.
Bijvoorbeeld, laten we begrijpen hoe de ‘index’ -identificatie werkt in ons aanmeldscherm voor Vluchttoepassingen:
Dit zijn de volgende componenten:
Zoals u kunt zien, hebben de statische tekst en de invoervakken dezelfde 'text'-eigenschap.
Als ik weet dat een ervan een statische tekst is en de andere een WinEdit-object, dan is er helemaal geen probleem. Stel dat als deze allemaal worden behandeld als WinObject, ik moet specificeren op welk object ik moet reageren. Dit gaat alleen gebeuren als de verplichte, ondersteunende en slimme identificatie is mislukt. Dus om QTP te vertellen wat wat is, ga ik een ‘Index’ ordinale identifier toewijzen. Ik zal dat doen vanuit de OK.
Ik zal de statische tekst-ID van de agentnaam instellen op 0 en voor het invoervak zal ik deze instellen op 1.
Zo ziet het eruit:
Dus als ik toegang moet hebben tot de statische tekst, doe ik dat als volgt:
WinObject ('text: = Agentnaam:', index: = 0) - Dit verwijst naar de statische tekst
WinObject ('text: = Agentnaam:', index: = 1) - Dit verwijst naar het bewerkingsvak
Dezelfde theorie is ook van toepassing op de locatie-identificatie, behalve dat we de locatie in het venster zullen kiezen om de numerieke waarde te bepalen die van toepassing is op een bepaald object.
Eigenschappen van objectidentificatie configureren:
De verplichte, ondersteunende eigenschappen en rangtelwoorden waarmee rekening moet worden gehouden voor een object van een bepaalde klasse om te worden herkend, kunnen worden geconfigureerd met behulp van “Tools-> Object Identifier”. Via dit venster kunnen we ook de slimme identificatie-eigenschappen instellen.
Het venster ziet er als volgt uit:
Zoals te zien is in bovenstaande afbeelding, kan de omgeving worden gekozen uit de vervolgkeuzelijst. Als dat eenmaal is gekozen, worden de klassen van objecten in de bijbehorende omgevingen in de lijst weergegeven. Nadat een object is geselecteerd, worden de verplichte en ondersteunende eigenschappen weergegeven. De gebruiker kan extra eigenschappen aan deze lijst toevoegen / verwijderen.
Slimme identificatie kan ook worden in- / uitgeschakeld voor een bepaalde klasse objecten wanneer dat nodig is. Om het rangtelwoord in te stellen, is er een vervolgkeuzelijst die kan worden gekozen om het object te identificeren met behulp van Locatie, Index of Aanmaaktijd (alleen voor browsertype).
We zullen de fundamentele concepten afronden voordat we verder gaan met volwaardige QTP-programma's. Het volgende QTP-artikel heeft verschillende opnamemodi, Object Spy, Object Repository, etc. details.
Bezoek hier voor de QTP Training Tutorials-serie
Aanbevolen literatuur
- Objectrepository in QTP - Tutorial # 22
- QTP Tutorial # 18 - Datagestuurde en hybride frameworks uitgelegd met QTP-voorbeelden
- QTP Tutorial # 24 - Virtuele objecten en herstelscenario's gebruiken in QTP-tests
- QTP Tutorial # 6 - QTP Record en instellingen voor uitvoeren van onze eerste test begrijpen
- QTP-zelfstudie # 23 - QTP slimme objectidentificatie, synchronisatiepunt en analyse van testresultaten
- QTP Tutorial # 8 - Leer over QTP-opnamemodi, Object Spy en Object Repositories
- Parametrering in QTP (deel 2) - QTP Tutorial # 20
- QTP-zelfstudies - 25+ Micro Focus Quick Test Professional (QTP) -traininghandleidingen