Smart identifiering i QTP/UFT med exempel

⚡ Smart sammanfattning

Smart identifiering är en reservmekanism i UFT En för att lokalisera ett objekt när dess inlärda beskrivning inte längre matchar den applikation som testas, med hjälp av bas- och valfria filteregenskaper för att begränsa en lista med kandidater till en matchning.

  • 🔍 Definition: Mekanismen aktiveras endast när den inlärda beskrivningen inte hittar en enda unik objektmatchning.
  • 🧩 Två fastighetstyper: Basfilteregenskaper definierar vad objektet är; Valfria filteregenskaper begränsar matchningen ytterligare.
  • ⚙️ Elimineringsprocess: UFT återskapar en kandidatlista från basegenskaper och filtrerar den sedan med hjälp av valfria egenskaper en i taget.
  • 🖥️ konfiguration: Aktivera och konfigurera filtren per objektklass från Verktyg > Objektidentifiering.
  • ⚠️ Resultatsynlighet: Varje anrop loggar ett varningssteg i testresultatträdet.
  • ???? Prestandaavvägning: Den extra filtreringen ökar körtidskostnaden för stora testsviter.
  • 🔧 Manuell åtgärd: Ersätt en flyktig egenskap som namn med en stabil egenskap som HTML-id för att undvika reservfunktionen.
  • 💻 Skriptkontroll: Inställningen ("DisableReplayUsingAlgorithm") växlar mellan smart identifiering och en hel körsession.

Vad är smart identifiering i QTP/UFT?

Smart identifiering är en reservmekanism för objektigenkänning i OpenText UFT För det första, verktyget tidigare känt som HP QuickTest Professional (QTPOm den normala identifieringsprocessen inte kan hitta en unik matchning för ett objekts inlärda beskrivning, UFT utlöser smart identifiering, förutsatt att mekanismen är aktiverad i inställningarna för objektidentifiering för det objektets klass.

Till skillnad från den inlärda beskrivningen kräver inte Smart Identification en exakt matchning för varje lagrad egenskap. Den utvärderar två kategorier av egenskaper för att begränsa en pool av kandidatobjekt till exakt en:

  • Basfilteregenskaper. De mest grundläggande egenskaperna hos en testobjektklass; de vars värden inte kan ändras utan att det ursprungliga objektets essens ändras.
  • Valfria filteregenskaper. Stödjande egenskaper som hjälper till att identifiera ett objekt men som är mer benägna att förändras över tid.

När smart identifiering körs, UFT ”glömmer” den inlärda beskrivningen och återskapar en ny kandidatlista som innehåller alla objekt som matchar alla basfilteregenskaper. Den begränsar sedan listan ytterligare och kontrollerar de valfria filteregenskaperna en i taget tills ett enda objekt återstår.

Om Smart Identification anropas under en körsession loggar testresultatträdet ett varningsmeddelande som bekräftar att mekanismen användes, och ett Smart Identification-steg infogas i resultaten så att avvikelsen från den inlärda beskrivningen förblir synlig.

Smart identifiering kommer trea i UFTs objektidentifieringshierarki, efter den inlärda beskrivningen och eventuell visuell relationsidentifierare, och före den ordinala identifieraren som används som en sista utväg. Att förstå var den passar in förklarar varför inaktivering av den helt, snarare än att åtgärda de underliggande egenskaperna, sällan är det bästa långsiktiga valet för ett skript som körs ofta.

Basfilteregenskaper kontra valfria filteregenskaper

Båda filtren fungerar tillsammans, men de spelar olika roller i elimineringsprocessen som beskrivs ovan. Jämförelsen nedan klargör när vart och ett används och hur mycket elimineringskraft varje filter har.

Aspect Egenskaper för basfilter Valfria filteregenskaper
Roll Bygg upp den första kandidatlistan Begränsa kandidatlistan till ett objekt
Stabilitet Nästan aldrig ändras utan att objektets identitet ändras Kan ändras periodiskt utan att objektets identitet ändras
Matchningsregel Varje kandidat måste matcha alla basegenskaper Kontrollerade en egenskap i taget; en egenskap hoppas över om den skulle eliminera alla kandidater
Typiskt exempel HTML-tagg, objektklass, index Namn, HTML-ID, alt-text, bildkälla
Var konfigurerad Objektidentifiering > Konfigurera > Egenskaper för basfilter Objektidentifiering > Konfigurera > Valfria filteregenskaper

Eftersom samma egenskap inte kan finnas i båda listorna, planera uppdelningen noggrant. Egenskaper som definierar vad ett objekt i grunden är hör hemma i baslistan; egenskaper som bara hjälper till att skilja det från liknande objekt hör hemma i den valfria listan.

Så fungerar smart identifiering: Steg-för-steg-processen

Smart identifiering aktiveras endast efter att den inlärda beskrivningen, och någon visuell relationsidentifierare, inte lyckats identifiera ett enskilt objekt. När den har aktiverats, UFT fungerar genom en förutsägbar elimineringsprocess i fyra steg:

  1. Bygg upp kandidatlistan igen. UFT ignorerar den inlärda beskrivningen och skannar objektets överordnade objekt efter varje objekt som matchar alla basfilteregenskaper.
  2. Tillämpa den första valfria egenskapen. UFT tar bort alla kandidater som inte matchar den första egenskapen i listan över valfria filteregenskaper.
  3. Utvärdera resultatet. Om mer än en kandidat återstår, UFT upprepar föregående steg med nästa valfria egenskap. Om ett filter skulle eliminera alla återstående kandidater, UFT hoppar över den egenskapen istället och går vidare till nästa.
  4. Stanna vid en match. UFT upprepar filtrerings- och utvärderingscykeln tills exakt ett objekt återstår, eller tills det får slut på valfria egenskaper att kontrollera.

Om elimineringsprocessen fortfarande inte kan isolera ett enskilt objekt, UFT återgår till den inlärda beskrivningen plus en ordinal identifierare, såsom index, plats eller skapandetid. När inte ens den kombinationen identifierar objektet pausar körsessionen och visar ett körtidsfel.

Så här aktiverar eller inaktiverar du smart identifiering

Smart identifiering konfigureras per testobjektklass från Verktyg > ObjektidentifieringVälj miljö och objektklass, aktivera Aktivera smart identifiering, Klicka sedan Inställd för att välja Bas- och Valfria filteregenskaper för den klassen. Samma dialogruta låter dig stänga av alternativet för en klass som alltid ska använda sin inlärda beskrivning istället.

Aktivera/inaktivera smart identifiering

Så fungerar smart identifiering (videogenomgång)

Videon nedan går igenom den grundläggande och valfria filterelimineringsprocessen med ett liveexempel.

Klicka här. om videon inte är tillgänglig

Fördelar och nackdelar med att använda smart identifiering

Smart identifiering ökar motståndskraften, men den motståndskraften har en kostnad under körning. Väg båda sidor innan du låter den vara aktiverad som standard över ett helt objektlager.

  • ✅ Överlever mindre UI-ändringar: Ett omdöpt attribut eller en flyttad position på sidan bryter inte längre alla skript som berör objektet.
  • ✅ Minskar underhåll av objektförråd: Testare lägger mindre tid på att spela in objekt igen efter små frontend-releaser.
  • ✅ Syns i resultaten: Varje anrop loggar en varning, så att team kan granska hur ofta reservfunktionen verkligen behövs.
  • ⚠️ Långsammare testkörning: Att bygga och filtrera en kandidatlista tar mätbart längre tid än en direkt fastighetsmatchning, och kostnaden mångdubblas över en stor svit.
  • ⚠️ Kan maskera verkliga defekter: Om Smart Identification i tysthet hittar ett liknande objekt kan en genuin UI-regression gå obemärkt förbi.
  • ⚠️ Behöver regelbunden granskning: Bas- och valfria filteregenskaper behöver fortfarande granskas då och då allt eftersom applikationen utvecklas.

De flesta team låter Smart Identification vara aktiverat för utforskande och lågfrekventa skript, och inaktiverar det sedan selektivt på prestandakritiska objekt när objektets identifieringsegenskaper är stabila.

Ändra objektegenskap för att undvika smart identifiering

Smart Identifications flexibilitet kommer med den körtidskostnad som beskrivs ovan, så många team föredrar att fixa objektidentifieringsegenskaperna själva snarare än att upprepade gånger förlita sig på reservlösningen. Var uppmärksam på två signaler som visar att en egenskapsfix överträffar en körtidsreservlösning: en Smart Identification-varning som visas vid nästan varje körning och ett skript som har blivit märkbart långsammare sedan reservlösningen började aktiveras. Båda pekar på ett objekt vars standardidentifieringsegenskaper inte längre passar applikationen, snarare än ett engångsfel i användargränssnittet. Videon nedan visar fixen på ett riktigt inloggningsformulär.

Klicka här. om videon inte är tillgänglig

Videotranskription: Viktiga slutsatser

  • Smart identifiering saktar ner skriptkörningen, vilket inte är önskvärt för stora eller ofta körda programsviter.
  • För att undvika det helt, ändra standardegenskaperna för objektidentifiering istället för att förlita dig på reservfunktionen.
  • In Objektidentifiering, ta bort ”namn” från de obligatoriska egenskaperna och ersätt det med ”HTML-id” för att göra testet oberoende av namnändringar.
  • Registrera samma steg igen när den obligatoriska egenskapslistan har uppdaterats.
  • Om namnet senare ändras från ”Skicka” till ”Logga in” körs skriptet nu utan att utlösa smart identifiering.
  • På samma sätt, om någon obligatorisk eller hjälpegenskap på ett objekt som testas ändras ofta, ersätt den med en mer stabil egenskap för att hålla skriptkörningen snabb.
  • Att justera egenskaper är en färdighet som byggs upp genom erfarenhet; den förbättras ju mer du arbetar med verktyget.

Inaktivera smart identifiering med VBScript

Smart identifiering kan också stängas av för en hel körsession utan att vidröra objektförrådet med hjälp av Inaktivera omspelning med hjälp av algoritm körtidsinställning. Detta är användbart när ett skript ska misslyckas omedelbart på grund av en egenskapsmatchning istället för att tyst återgå till elimineringsprocessen.

' Disable Smart Identification for this run session
Setting("DisableReplayUsingAlgorithm") = 1

Browser("Mercury Tours").Page("Find Flights").WebEdit("userName").Set "mercury"

' Re-enable Smart Identification once the strict steps are done
Setting("DisableReplayUsingAlgorithm") = 0

Håll det inaktiverade fönstret så kort som möjligt. Stegen som körs inuti det måste exakt matcha sin inlärda beskrivning, så att eventuell legitim avvikelse i applikationen som testas orsakar ett omedelbart fel snarare än en smidig reservlösning.

Resurser

Ladda ner webbsidorna som används i handledningen ovan för självövning

Vanliga frågor

Nej. Smart identifiering gäller för de flesta UFT En miljö, inklusive Windows, Javaoch .NET-objekt, inte bara webb. Tillgängligheten beror på tillägget och testobjektklassen snarare än miljötypen.

Att bygga en kandidatlista och filtrera den egenskap för egenskap tar längre tid än en enda matchning av inlärd beskrivning. På stora objektdatabaser läggs den extra bearbetningen till, så många team inaktiverar den på prestandakritiska objekt.

Ja. Öppna objektet i objektförrådet, gå till Objektegenskaper > Ytterligare detaljer och ställ in Aktivera smart identifiering till Falskt för endast det objektet, så att resten av förrådet inte påverkas.

De löser ett liknande problem på olika sätt. Självläkande lokaliseringsanordningar i moderna AI-testverktyg lär sig om ett ändrat element automatiskt, medan Smart Identification filtrerar en fast egenskapslista. Många team använder båda tillsammans.

Nej. Smart identifiering filtrerar lagrade textegenskaper, medan UFT De nyare AI-baserade och Insight-identifieringsteknikerna känner igen objekt visuellt. De två fungerar som separata, kompletterande reservlager.

Sammanfatta detta inlägg med: