Hur objektidentifiering fungerar i QTP/UFT?
โก Smart sammanfattning
Objektidentifiering i QTP/UFT avgรถr hur verktyget kรคnner igen varje GUI-element under en testkรถrning, och jรคmfรถr lagrade testobjektegenskaper med live-egenskaper fรถr kรถrtidsobjekt sรฅ att skript fortsรคtter att fungera รคven nรคr en skรคrmlayout รคndras.

Vad รคr objektidentifiering i UFT/QTP?
Objektidentifiering รคr mekanismen UFT/QTP anvรคnder fรถr att kรคnna igen ett GUI-element pรฅ skรคrmen sรฅ att ett skript kan agera pรฅ det pรฅ ett tillfรถrlitligt sรคtt, kรถrning efter kรถrning. Under en inspelningssession, UFT studerar en liten uppsรคttning egenskaper fรถr objektet under muspekaren och lagrar dem; under uppspelning jรคmfรถr den dessa lagrade vรคrden med egenskaperna fรถr varje objekt som faktiskt finns och vรคljer det som matchar unikt, oavsett var objektet nu befinner sig pรฅ skรคrmen.
Det lagrade objektet, tillsammans med egenskaperna UFT minns fรถr det, kallas TestobjektMotsvarande element som finns pรฅ skรคrmen medan testet kรถrs รคr Run-Time ObjectAtt jรคmfรถra de tvรฅ i varje steg รคr grunden fรถr vad Micro Focus kallar Testobjektmodell, och det รคr dรคrfรถr en UFT Skriptet fortsรคtter att fungera รคven efter att en knapp flyttas nรฅgra pixlar eller en sida har fรฅtt en ny stil.
Objektfรถrrรฅd och tillรคgg
UFT behรฅller varje inlรคrt testobjekt, tillsammans med dess lagrade egenskaper, inuti Objektfรถrrรฅd. Tillรคgg tala Snabbt test i fรถrvรคg vilken teknik en skรคrm tillhรถr, sรฅ verktyget vet redan vilken egenskapsuppsรคttning som gรคller och behรถver inte gissa, vilket minskar den tid det tar att lรคra sig ett objekt.
Klicka hรคr. om videon inte รคr tillgรคnglig
Varje objekt UFT Poster kan innehรฅlla dussintals egenskaper. Bara i en webbmiljรถ kan en enda knapp visa dess namn, HTML-tagg, typ, klass, index och mer. Att registrera alla dessa fรถr varje objekt รคr tekniskt mรถjligt men sรคllan anvรคndbart, vilket nรคsta bild visar fรถr en typisk objektfรถrrรฅdspost.
If UFT fรถrsรถkte komma ihรฅg alla tillgรคngliga egenskaper fรถr varje objekt, sรฅ รถkade objektfรถrrรฅdet i storlek och skriptkรถrningen saktade ner mรคrkbart. Fรถr att undvika det, QTP sparar inte alla egenskaper som standard โ den sparar en liten, typisk uppsรคttning fรถr varje objekttyp, en som valts fรถr att skapa unik identifiering mรถjligt utan omkostnader. Denna korta lista med egenskaper, som bestรคms separat fรถr varje miljรถ och objektklass, konfigureras i instรคllningarna fรถr objektidentifiering, som behandlas hรคrnรคst.
รndamรฅlet Description: Obligatoriska och hjรคlpmedelsegenskaper
Ett objekts egenskap och dess vรคrde bildar tillsammans vad UFT kallar รndamรฅlet Description โ den exakta kombinationen som verktyget anvรคnder fรถr att vรคlja ut ett element frรฅn alla andra objekt pรฅ sidan. Fรถr en WebButton, till exempel, egenskapen namn med vรคrdet Logga in รคr i sig sjรคlvt ofta tillrรคckligt fรถr att bilda ett anvรคndbart objekt Descriptjon.
Fรถr att granska eller รคndra detta beteende, รถppna Verktyg > Objektidentifiering inuti UFTDialogrutan Objektidentifiering listar alla miljรถer som fรถr nรคrvarande รคr inlรคsta; om du vรคljer en av dem fylls objektklasserna automatiskt i. UFT stรถder det, och panelen till hรถger visar exakt vilka egenskaper som lagras fรถr objekt i den klassen. Listan รคr indelad i tvรฅ grupper:
- Obligatoriska egenskaper lagras som standard fรถr varje objekt i den klassen, oavsett om de faktiskt behรถvs fรถr att skilja det frรฅn sina grannar eller inte.
- Hjรคlpmedel lagras endast nรคr de obligatoriska egenskaperna ensamma inte kan skapa en unik beskrivning โ UFT arbetar nerfรถr den hรคr listan en egenskap i taget tills objektet blir unikt.
En webbbild gรถr regeln lรคttare att se i praktiken.
- UFT lagrar alltid alt-texten, HTML-taggen och bildtypen fรถr en webbbild, รคven om alt-texten ensam redan รคr unik.
- Om de obligatoriska egenskaperna inte kan skapa en unik beskrivning, UFT lรคgger till klassegenskapen frรฅn hjรคlplistan.
- Nรคr en egenskap gรถr beskrivningen unik, UFT slutar lรคgga till fler โ den hoppar รถver filnamn och hรถjd om klassen redan var tillrรคckligt, hoppar รถver hรถjd om filnamnet behรถvdes, och sรฅ vidare.
- Anta att endast klassegenskapen registreras vid registreringstidpunkten. Vid kรถrning, UFT skiljer inte lรคngre รฅt vilka egenskaper som var obligatoriska och vilka som var hjรคlpmedel โ den jรคmfรถr helt enkelt varje egenskap i den sparade beskrivningen med kรถrtidsobjektet.
- Om รคven en lagrad egenskap inte matchar, misslyckas steget โ en unik beskrivning รคr binรคr, inte en bรคsta-anstrรคngningsmatchning.
| Aspect | Obligatoriska egenskaper | Hjรคlpmedel |
|---|---|---|
| Nรคr den lagras | Alltid, fรถr varje objekt i den klassen | Endast nรคr obligatoriska egenskaper inte kan bilda en unik beskrivning |
| Konfigurerad i | Dialogruta fรถr objektidentifiering, obligatorisk lista | Dialogruta fรถr objektidentifiering, hjรคlplista |
| Anvรคndningsordning | Lรคrde sig fรถrst, villkorslรถst | Lรคggs till ett i taget tills objektet รคr unikt |
| Kรถrtidsbehandling | Jรคmfรถrt med samma som hjรคlpmedel | Jรคmfรถrt med obligatoriska egenskaper |
Videon nedan gรฅr igenom detta arbetsflรถde med obligatoriska kontra assistiva รฅtgรคrder frรฅn bรถrjan till slut.
Dialogrutan fรถr objektidentifiering Box och objektspion
Dialogrutan Objektidentifiering รคr inte bara en visningsfunktion โ det รคr dรคr en testare justerar hur aggressivt UFT identifierar objekt fรถr en hel miljรถ. Att รคndra ordning, lรคgga till eller ta bort en egenskap hรคr รคndrar vad som lรคrs in fรถr varje objekt i den klassen frรฅn och med den tidpunkten, inte bara det som fรถr nรคrvarande registreras. Det typiska arbetsflรถdet ser ut sรฅ hรคr:
- รppet UFT och gรฅ till Verktyg > Objektidentifiering.
- Vรคlj en miljรถ (webb, Windows, Javaoch sรฅ vidare) frรฅn rullgardinsmenyn.
- Vรคlj en objektklass, till exempel WebButton eller WinEdit, frรฅn listan till vรคnster.
- Flytta egenskaper mellan listorna Obligatoriska och Assistiva, eller รคndra ordningen pรฅ Assistiva-listan fรถr att styra vilka egenskaper UFT fรถrsรถker fรถrst.
- Aktivera eller inaktivera smart identifiering fรถr den klassen med hjรคlp av kryssrutan hรถgst upp i panelen.
รndringar som gรถrs hรคr gรคller nรคsta gรฅng UFT lรคr sig ett objekt av den klassen โ poster som redan sparats i objektarkivet behรฅller sin ursprungliga beskrivning tills objektet registreras pรฅ nytt eller uppdateras manuellt.
Anvรคnda Object Spy fรถr att inspektera egenskaper
Innan de redigerar den obligatoriska listan eller hjรคlplistan kontrollerar de flesta testare hur ett objekts egenskaper faktiskt ser ut med ObjektspionOm du pekar spionmarkรถren pรฅ valfri kontroll i programmet som testas visas bรฅde dess testobjekt- och kรถrtidsegenskaper sida vid sida, tillsammans med metoderna. UFT kan anropa den โ anvรคndbart nรคr en obligatorisk egenskap รคndras mellan byggen och behรถver bytas mot en mer stabil.
Ordinalidentifierare: Index, plats och skapandetid
Ibland lรคmnar รคven varje obligatorisk och hjรคlpande egenskap tvรฅ eller flera objekt som ser identiska ut โ till exempel tre kryssrutor med samma namn, klass och etikett. Fรถr just den hรคr situationen UFT faller tillbaka pรฅ en ordinal identifierare, ett reservvรคrde som rangordnar annars identiska objekt efter deras position istรคllet fรถr deras egenskaper.
| Ordinalidentifierare | Fast egendom | Order tilldelad | Gรคller fรถr |
|---|---|---|---|
| index | index | Ordning som objektet visas i den underliggande kรคllkoden, med bรถrjan vid 0 | Vilken objektklass som helst |
| Plats | Plats | Uppifrรฅn och ner, sedan frรฅn vรคnster till hรถger pรฅ skรคrmen, med bรถrjan vid 0 | Vilken objektklass som helst |
| Skapningstid | Skapandetid | Ordning dรฅ webblรคsarfรถnstret รถppnades, med bรถrjan vid 0 | Endast webblรคsarobjekt |
UFT lรคr sig bara en ordinal identifierare nรคr de obligatoriska och hjรคlpande egenskaperna verkligen inte kan separera tvรฅ objekt, eftersom vรคrdet รคr relativt och kan รคndras om sidlayouten รคndras รคven om sjรคlva objektet inte har gjort det. VBScript-kodavsnittet nedan anvรคnder Index fรถr att klicka pรฅ den andra av tvรฅ identiskt namngivna lรคnkar.
Dim objBrowser, objPage Set objBrowser = Browser("title:=Guru99 Bank") Set objPage = objBrowser.Page("title:=Guru99 Bank") ' Index:=1 clicks the second Link named "Manage Order" (index starts at 0) objPage.Link("name:=Manage Order", "index:=1").Click
Index- och platsvรคrden รคr specifika fรถr objektklassen som namnges i satsen, sรฅ Index:=3 pรฅ en WebEdit sรถker bara bland WebEdit-objekt, medan samma vรคrde pรฅ ett generiskt WebElement rรคknas fรถr alla webbobjekt pรฅ sidan oavsett typ.
Dรคr smart identifiering passar in
Objektidentifiering i UFT stannar inte vid den inlรคrda beskrivningen. Nรคr en unik matchning inte kan hittas, UFT arbetar sig igenom processen i en fast ordning: den kontrollerar fรถrst de inlรคrda obligatoriska och hjรคlpmedelsegenskaperna, sedan eventuella visuella relationsidentifierare, sedan Smart identifiering om den mekanismen รคr aktiverad fรถr klassen, och endast som en sista utvรคg en ordinal identifierare.
Smart Identification placeras avsiktligt mellan den inlรคrda beskrivningen och den ordinala identifieraren. Den รฅterskapar en kandidatlista med hjรคlp av en klass kรคrnegenskaper och begrรคnsar den med valfria egenskaper, sรฅ att den ofta kan รฅterstรคlla ett objekt vars inlรคrda beskrivning gick sรถnder โ till exempel en omdรถpt knapp โ utan att nรฅgonsin vidrรถra objektfรถrrรฅdet. Eftersom det extra sรถksteget kostar tid aktiverar de flesta team det fรถr identifieringskรคnsliga klasser och fรถrlitar sig endast pรฅ ordinala identifierare dรคr position verkligen รคr den enda kvarvarande differentiatorn, till exempel en bank med omรคrkta radioknappar.


