qtp tutorial 7 qtp s object identification paradigm how qtp identify objects uniquely
Hur QTP identifierar objekt unikt? - Detta är den sjunde QTP-självstudien i vår QTP-träningsserie.
Vi får oss utrustade med alla grundläggande begrepp som gör det möjligt för oss att skriva robusta QTP-tester . Vi har täckt QTP Spela in och kör inställningar , Arbeta med nyckelordsvy och andra relaterade ämnen.
=> Klicka här för QTP Training Tutorials Series
Detta är nästa artikel i serien som talar om en avgörande aspekt av QTP - Mekanismen den använder för att identifiera ett objekt unikt . När du tittar på skärmen nedan:
Det finns 3 knappar och 2 textrutor tillsammans med olika andra element i denna dialog.
I de föregående exemplen, när vi angav användarnamn och lösenord, såg vi hur QTP spelade in samma operationer i termer av programmatisk kod samt en tabell i nyckelordsvy. Nu, under uppspelning hur vet QTP att värdet vi tillhandahåller som agentnamn eller lösenord måste gå respektive i dessa redigeringsrutor. Eller hur vet den vilken knapp som ska klickas för att skicka de angivna värdena?
Låt oss försöka hitta ett svar på det.
vänta i sekunder
Det är uppenbart att QTP på något sätt kommer ihåg vilket objekt man ska agera på. Så som det gör är det att lagra objektet i AUT som ett testobjekt. Den undersöker sedan dess egenskaper och klassificerar objektet. Till exempel, när den möter OK-knappen undersöker den dess egenskaper och baserat på dessa klassificerar den objektet som en ”WinButton”.
QTP har en förutbestämd uppsättning egenskaper som den lär sig / lagrar för varje klass av objekt den identifierar. Det finns tre aspekter:
- Obligatoriska egenskaper : Detta är listan över egenskaper för en viss klass som QTP alltid lagrar. Vi kan säga att detta är objektbeskrivningen. Det kontrolleras också detta tillsammans med det överordnade objektet för att se om beskrivningen är tillräcklig för att identifiera objektet unikt.
- Hjälpande egenskaper : Om beskrivningen av obligatoriska egenskaper är otillräcklig för att identifiera objektet kommer en uppsättning icke-obligatoriska egenskaper att läggas till beskrivningen efter varandra tills det finns tillräckligt med data för att identifiera objektet.
- Ordinär identifierare : Om assistansegenskaperna inte heller resulterar i en unik identifiering av ett objekt läggs en speciell ordningsidentifierare till av QTP, till exempel objektets plats på sidan eller i källkoden.
Så detta bildar QTP testobjekt. Den använder denna testobjektbeskrivning för att söka efter objekten att agera på under en körsession. Den väljer de objekt som passar perfekt med beskrivningen. Dessa objekt kallas Run-Time-objekt.
Om inte din applikation har förändrats avsevärt är testobjektbeskrivningen som QTP har tillräcklig för att hitta ett objekt.
För WinButton-objektet som vi har i vår Flight-app, låt oss se vilka egenskaper QTP har lagrat. Denna information finns i Object Repository. Menyalternativet “Resurser-> Objektförvar” startar OR för oss. Alternativt kan du använda CTRL + R eller klicka på ikonen.
Om du märker det i fönstret ovan lagrade den 'texten' i WinButton som beskrivning för att identifiera den här knappen vid körning.
För mer komplicerade applikationer kan testaren lägga till eller ta bort vissa egenskaper för att göra beskrivningen robust nog för att identifiera objektet vid körning mer exakt. För att göra detta klickar du bara på '+' ikonen.
Alla andra egenskaper hos objektet visas. Användaren kan välja att lägga till en eller flera av dessa egenskaper.
Det finns också något som kallas ” Visual Relation Identifier ”På OR-skärmen för WinButton-egenskaperna.
Detta är en funktion som ytterligare stöder objektigenkänning enligt deras närliggande objekt i AUT. En gång inställd skapar detta en slags länk för de mindre stabila komponenterna i din AUT med objekten som är mer unikt identifierbara. QTP kommer att identifiera dessa objekt så länge de behåller sin relativa position till dessa unika objekt.
För att ställa in en slags positionslänk måste vi klicka på den här kolumnen i ELLER och följande skärm kommer upp:
På den här skärmen väljer du '+' för att lägga till ett objekt som du vill att ditt testobjekt ska ha en positionslänk med.
Jag väljer “Agent Name” och säger att det här objektet ska ligga ovanför “OK” -knappen.
Så här ställer jag in det:
Om vissa egenskaper för OK-knappen ändras i framtiden, kommer QTP att identifiera det om 'Agent Name' är ovanför det.
Smart identifiering
programvara för försäljning för iPad
Detta är den mekanism som används av QTP under en av dessa två situationer. Beskrivningen för ett objekt som QTP har:
- Matchar inte med några runtime-objekt
- Matchar med flera objekt
Detta är lite av ett avancerat koncept, så vi kommer till det vid ett senare tillfälle via några exempel för enkel och detaljerad förståelse.
Ordinär identifierare
Detta är ett numeriskt värde som visar objektets relativa ordning med objekt som har en liknande beskrivning. Om ett objekt 1 och objekt 2 har samma obligatoriska och hjälpande egenskaper, kommer den ordinarie identifieraren att användas för att känna igen objektet unikt.
Det här värdet är relaterat till de andra objekten på skärmen, så om något ändras på skärmen kanske den här identifieraren inte är användbar. Det bör noteras att om de obligatoriska och hjälpande egenskaperna är tillräckliga tilldelas inte en ordinarie identifierare att registrera. Det kan läggas till senare genom att klicka på respektive kolumn för objektet i OR
Det finns tre typer av ordinarie identifierare:
- Index: Detta är baserat på ordningen på ett objekt i applikationskoden
- Plats: baserat på platsen på en skärm, dialog eller sida
- Skapartid: Detta används endast för webbläsarobjekt. Om det finns två webbläsare med liknande egenskaper, övervägs den som skapas först och nästa.
Till exempel, låt oss förstå hur 'index' -identifieraren fungerar på vår inloggningsskärm för flygapplikationer:
Dessa är följande komponenter:
Som du kan se har den statiska texten och redigeringsrutorna samma 'text' -egenskap.
Om jag vet att en av dem är en statisk text och den andra är WinEdit-objekt, så finns det inga problem alls. Säg om alla dessa behandlas som WinObject måste jag ange vilket objekt jag ska agera på. Detta kommer bara att hända när den obligatoriska, hjälpande och smarta identifieringen har misslyckats. Så för att berätta för QTP vilket är vad, kommer jag att tilldela en 'Index' ordinarie identifierare. Jag kommer att göra det från OR.
Jag ställer in den statiska textidentifieraren för agentnamnet som 0 och för redigeringsrutan kommer jag att ställa in den som 1.
Så här ser det ut:
Så om jag behöver komma åt den statiska texten kommer jag att göra det enligt följande:
WinObject (“text: = agentnamn:”, index: = 0) - Detta hänvisar till den statiska texten
WinObject (“text: = agentnamn:”, index: = 1) - Detta hänvisar till rutan Redigera
Samma teori gäller även platsidentifieraren förutom att vi väljer platsen i fönstret för att bestämma det numeriska värdet som är tillämpligt på ett visst objekt.
Konfigurera objektidentifieringsegenskaper:
De obligatoriska, hjälpande egenskaperna och ordinarie identifierarna som ska beaktas för att ett objekt av en viss klass ska kännas igen kan konfigureras med hjälp av 'Verktyg-> Objektidentifierare'. Vi kan också ställa in smarta identifieringsegenskaper genom detta fönster.
Fönstret ser ut så här:
Som framgår av bilden ovan kan miljön väljas från listrutan. När det väl har valts visas objektsklasserna i motsvarande miljöer i listan. Efter att ett objekt har valts visas de obligatoriska och hjälpande egenskaperna. Användaren kan lägga till / ta bort ytterligare egenskaper till den här listan.
Smart identifiering kan också aktiveras / inaktiveras för en viss klass av objekt vid behov. För att ställa in den ordinarie identifieraren finns det en rullgardinsmeny som kan väljas för att identifiera objektet med plats, index eller skapelsestid (endast för webbläsartyp).
Vi kommer att avsluta de grundläggande begreppen innan vi går vidare till fullfjädrade QTP-program. Nästa QTP-artikel kommer att ha olika inspelningslägen, Object Spy, Object Repository, etc. detaljer.
=> Besök här för QTP Training Tutorials Series
Rekommenderad läsning
- Objektförvar i QTP - Handledning # 22
- QTP-handledning # 18 - Datadrivna och hybridramar förklarade med QTP-exempel
- QTP-handledning # 24 - Använda virtuella objekt och återställningsscenarier i QTP-tester
- QTP-handledning nr 6 - Förstå QTP-inspelnings- och körinställningar för vårt första test
- QTP-handledning # 23 - QTP Smart Object Identification, Sync Point och Test Result Analysis
- QTP-handledning # 8 - Lär dig mer om QTP-inspelningslägen, Object Spy och Object Repositories
- Parameterisering i QTP (del 2) - QTP-handledning nr 20
- QTP-självstudier - 25+ Micro Focus Quick Test Professional (QTP) -träningsövningar