Sorszámazonosító QTP/UFTObjektumazonosítási példa

⚡ Okos összefoglaló

Sorszámazonosító QTP/UFT döntetlen-e UFT akkor érvényes, ha a kötelező és a segítő tulajdonságok továbbra is egynél több objektumnak felelnek meg, az Index, a Location vagy a CreationTime értékek használatával egyetlen egyedi objektumot választ ki.

  • 🎯 Utolsó megoldás: UFT csak akkor ad hozzá sorszámazonosítót, ha a kötelező és a segítő tulajdonságok nem teszik egyedivé a leírást.
  • 🔢 Index: Numbers azonos osztályba tartozó objektumok forráskód sorrendben, 0-tól kezdve, tehát az index:=3 a negyedik egyezést célozza meg.
  • 📍 Bérleti díj: Numbers objektumok a képernyőn elfoglalt pozíciójuk szerint az ablakon, kereten vagy párbeszédpanelen belül, fentről lefelé és balról jobbra.
  • 🕒 Létrehozási idő: Csak a Browser objektumokra vonatkozik, és rögzíti az egyes böngészőpéldányok megnyitásának sorrendjét.
  • 🗂️ Objektum azonosítása: Az egyes tesztobjektum-osztályok alapértelmezett sorszámtípusa szerkeszthető az Eszközök > Objektumazonosítás alatt.
  • ⌨️ Descriptive programozás: Adja meg az indexet, a helyet vagy a létrehozási időt egy szokásos tulajdonságként az objektumleíró karakterláncon belül.
  • ⚠️ Törékenység: A sorszámértékek az oldal elrendezésének változásával változnak, ezért kezelje őket ideiglenes megoldásként, soha ne tervezési döntésként.

Sorszámazonosító QTP/UFT Index, Location és CreationTime segítségével magyarázva

Mi az a sorszámazonosító a következőben: QTP/UFT?

An Sorozati azonosító egy numerikus tulajdonság, amely UFT (korábban QTP) hozzáad egy objektumleírást, ha a rögzítési munkamenet során rögzített kötelező és segítő tulajdonságok nem elegendőek az objektum egyedi azonosításához. A hiba helyett az eszköz egy számlálóra hivatkozik, amely lényegében azt mondja: „vegye az osztály harmadik objektumát”.

Alapértelmezés szerint minden tesztobjektum osztályhoz létezik egy sorszámú azonosító típus. A WebEdit és a WinButton eltérő számozású, és a Browser is másképp van számozva. Az osztály alapértelmezett sorszámú azonosítóját az Objektumazonosítás ablakban tekintheti meg vagy módosíthatja.

Sorszámazonosító beállítása a QTP/UFT Objektumazonosító ablak

Amint a fenti képernyőképen látható, a Sorszám azonosító legördülő menü az Objektumazonosítás párbeszédpanel alján található, a kötelező és a segítő tulajdonságlisták alatt. Ez a pozíció nem véletlen: tükrözi a sorrendet, amelyben UFT valójában konzultál a három csoporttal.

Háromféle sorszámazonosító létezik UFT:

  1. Index alapú
  2. Hely alapú
  3. Teremtés ideje

Miért UFT Csak végső esetben használ sorszámazonosítókat

Objektumazonosítás UFT kaszkádként fut. A kötelező tulajdonságokat először a rendszer tanulja meg. Ha ezek egyetlen egyezést sem eredményeznek, akkor a segítő tulajdonságokat egyesével adja hozzá a rendszer, amíg a leírás egyedi nem lesz. Csak akkor, ha mindkét csoport kimerült, UFT csatoljon egy sorszámazonosítót, és futásidőben a rendszer lekérdezi az intelligens azonosítási mechanizmust, mielőtt a sorszámértéket megbízhatónak minősítené.

A rangsorolás oka a stabilitás. A kötelező és segítő tulajdonságok leírják mit Egy objektum: a neve, a HTML-címkéje, a típusa, a címkéje. Egy sorszámos azonosító csak azt írja le, ahol a tárgy történetesen a felvétel pillanatában ült. Bármi, ami megváltoztatja az oldalt, megváltoztatja a számot is:

  • A fejlesztő egy rejtett mezőt szúr be az automatizált mező fölé.
  • Egy promóciós banner két extra linket ad hozzá a fejléchez.
  • A reszponzív elrendezés két oszlopból egybe rendezi az űrlapot.
  • Egy felugró böngészőablak nyílik meg korábban, mint a rögzített futás során.

Ezen változtatások egyike sem szakítja meg a névre vagy azonosítóra épülő leírást, de mindegyik csendben elmozdítja az oldalon található összes index- és helyértéket. Ezért a tapasztalt mérnökök a sorszámazonosítót annak jelzéseként kezelik, hogy az objektumleíráson dolgozni kell, nem pedig kész megoldásként. Ugyanez az elv érvényes minden... automatizálási tesztelés keretrendszerek általában, beleértve a lokátor stratégiát is Selenium.

💡 Tipp: Mielőtt elfogadnánk egy sorszámazonosítót, nyissuk meg az objektumot az Object Spy-ban, és keressünk egy stabil egyéni attribútumot. Ha ezt az attribútumot hozzáadjuk az osztály segítő tulajdonságlistájához, gyakran szükségtelenné válik sorszámazonosító használata minden jövőbeli, az adott típusú objektumon.

Sorszámazonosítók típusai a UFT/QTP

Index alapú

  • Index alapú sorszámazonosító használata esetén UFT értéket rendel hozzá a index az objektum tulajdonsága a felvétel során.
  • Az érték az objektum forráskódon belüli megjelenési sorrendjén alapul, nem a képernyőn való megjelenésén.
  • Az első előfordulás értéke 0.
  • Az index tulajdonságértékek objektumspecifikusak, így minden tesztobjektum-osztályt külön számol a rendszer.
  • Tehát, ha az index:=3 paramétert használjuk egy WebEdit tesztobjektum leírására, UFT a negyedik WebEdit objektumot keresi az oldalon.
  • Hasonlóképpen, ha az index:=1 paramétert használjuk egy WebButton tesztobjektum leírására, UFT a második WebButton objektumot keresi az oldalon.

Helyalapú

  • Amikor helyalapú sorszámazonosítót használunk, UFT értéket rendel hozzá a elhelyezkedés az objektum azon tulajdonsága, amely lehetővé teszi annak egyedi azonosítását.
  • Az érték azon a sorrenden alapul, amelyben az objektum megjelenik az ablakban, keretben vagy párbeszédpanelen, más, azonos tulajdonságú objektumokhoz viszonyítva.
  • Az objektum első előfordulása 0.
  • Az értékek oszlopokban vannak megadva, fentről lefelé, majd balról jobbra.
  • A legtöbb szabványos formátum alapértelmezett sorszáma a helyszín. Windows tesztobjektum-osztályok, ahol a vizuális elrendezés stabilabb, mint a jelölési sorrend.

Teremtés ideje

  • Amikor a létrehozási idő sorszámazonosítóját használjuk, UFT értéket rendel hozzá a létrehozási idő egy böngésző objektum tulajdonsága.
  • Ez az azonosító csak webes környezethez és csak böngésző tesztobjektumokhoz érhető el.
  • Az érték azt jelzi, hogy a böngésző milyen sorrendben lett megnyitva a többi megnyitott böngészőhöz képest.
  • A futás során elsőként megnyitott böngésző a creationtime:=0 értéket kapja, a következő böngészők pedig az 1, 2, 3 és így tovább értékeket.
  • Ha egy böngészőt bezárnak, a többi böngésző megtartja eredeti értékét ahelyett, hogy újraszámoznák.

Index vs. Hely vs. LétrehozásiIdő: Összehasonlító táblázat

A három azonosító három különböző kérdésre ad választ, és a rossz kiválasztása gyakori oka az időszakos hibáknak.

Aspect index Települések Teremtés ideje
Ingatlan neve index elhelyezkedés létrehozási idő
Rendelési alap Sorrend a forráskódban / objektumhierarchiában Képernyő pozíciója az ablakon, kereten vagy párbeszédpanelen belül A böngészőpéldányok megnyitási sorrendje
Számolási szabály Szekvenciális, tesztobjektum-osztályonként Oszlopok, fentről lefelé, majd balról jobbra Szekvenciális, böngészőpéldányonként
Első érték 0 0 0
Vonatkozik Web és Windows osztályok Főként standard Windows osztályok Csak böngészőobjektumok
Szünetek, amikor Jelölési sorrend változásai Az elrendezés áthelyezésre vagy átméretezésre került Windows más sorrendben nyílik meg
A legjobban használható Ismétlődő rács- vagy táblázatvezérlők Régi asztali űrlapok fix elrendezéssel Többablakos webfolyamatok, például fizetési felugró ablakok

Hogyan állítsuk be a sorszámazonosítót az objektumtárban?

A sorszámazonosító tesztobjektum-osztályonként van konfigurálva, és automatikusan alkalmazásra kerül az adott osztály minden olyan objektumára, amely UFT utólag tanul. A repositoryban már meglévő objektumok nem frissülnek visszamenőlegesen.

  1. Nyisd ki UFT és válassza ki a Eszközök > Objektumazonosítás.
  2. Válassza ki a környezetet, például Web vagy Standard Windows, a Környezet legördülő menüből.
  3. Válassza ki a módosítani kívánt tesztobjektum-osztályt, például a WebEdit vagy a WinButton osztályt.
  4. A Sorszámazonosító szakaszban válassza az Index, Hely, Létrehozási idő vagy a Nincs lehetőséget.
  5. Kattints OK és újra kell tanulni az objektumot, hogy az új sorszámérték rögzítésre kerüljön.
  6. Nyissa meg az Objektumtárat, jelölje ki az objektumot, és ellenőrizze, hogy a sorszámtulajdonság most megjelenik-e a leírások listájában.

kiválasztása Egyik sem teljesen letiltja az adott osztály tartalék opcióját. UFT ekkor azonosítási hibát fog jelezni a találgatás helyett, ami gyakran az a viselkedés, amit egy olyan környezetben szeretnél, ahol a csendes téves azonosítás károsabb, mint a tiszta kudarc. Az elvárásaid rögzítése egy jól megírt dokumentumban próbaper egyértelművé teszi ezt a kompromisszumot az egész csapat számára.

⚠️ Figyelmeztetés: Egy osztály sorszámazonosítójának módosítása gépszintű beállítás, nem tesztszintű. Ha nem exportálod és nem osztod meg, a gépeden áthaladó szkriptek meghibásodhatnak egy kolléga gépén vagy a build ügynökön.

Hogyan használjuk a sorszámazonosítókat Descriptive programozás

A leíró programozásban nincs objektumazonosító párbeszédablak. A sorszámot közvetlenül a leíró karakterláncba írjuk, pontosan úgy, mint bármely más tulajdonságnevet, és mindig nulla alapú.

' Ordinals are zero based: index:=3 is the FOURTH WebEdit on the page
Set objPage = Browser("Guru99 Bank").Page("Guru99 Bank")

objPage.WebEdit("index:=3").Set "9999999999"
Print "Filled WebEdit occurrence #" & (3 + 1)

' Location is counted top to bottom, then left to right
objPage.WebButton("location:=1").Click
Print "Clicked WebButton occurrence #" & (1 + 1)

' CreationTime works only on Browser objects
Print "Switching to browser opened at position #" & (1 + 1)
Browser("creationtime:=1").Sync

output:

Filled WebEdit occurrence #4
Clicked WebButton occurrence #2
Switching to browser opened at position #2

Biztonságosabb megoldás az ingatlanok kombinálása a ChildObjects Tehát a sorszámot használat előtt validálják. Az alábbi példa egy öt egyező WebEdit objektumot tartalmazó oldalt és 9-es indexet feltételez.

Dim oDesc, oChildren, intIndex

Set oDesc = Description.Create()
oDesc("micclass").Value = "WebEdit"
oDesc("html tag").Value = "INPUT"

Set oChildren = objPage.ChildObjects(oDesc)
intIndex = 9

If intIndex < oChildren.Count Then
    oChildren(intIndex).Set "Guru99"
Else
    Print "Index " & intIndex & " is out of range; only " & oChildren.Count & " objects match"
End If

output:

Index 9 is out of range; only 5 objects match

Ez a védelem a nem hasznos „Az objektum azonosítása sikertelen” futásidejű hibát olvasható üzenetté alakítja, ami akkor számít, amikor az eredményeket egy hibára teszik közzé. tracker vagy to HP ALM integrálva UFT.

Gyakori hibák a sorszámazonosítók használatakor

A legtöbb ordinális eredetű hiba tracvisszatérő hibák egy kis halmazához.

  • 1-től számolva. Minden sorszámazonosító 0-val kezdődik. Az index:=1 írása az első mezőbe a leggyakoribb hiba, és egy olyan hibát okoz, amely időzítési problémának tűnik.
  • Összekeveri az indexet a hellyel. Az index a forráskódot követi; a helyszín a képernyőt. Egy olyan oldalon, ahol a CSS átrendezi az elemeket, a két érték eltér, és felcserélődik.ping csendben a rossz irányítást veszik célba.
  • A CreationTime használata webes környezeten kívül. A tulajdonság csak Browser objektumokon létezik. Page, Frame vagy Window objektumokra alkalmazva „unsupported-property” hibát kapunk.
  • Egy ordinális fix kódolása egy megosztott függvénybe. Egy újrafelhasználható függvény, amely index:=2-t feltételez, használhatatlanná válik abban a pillanatban, amikor egy másik, eltérő elrendezésű képernyő meghívja.
  • A sorszámok elhagyása a tárhelyen az alkalmazás stabilizálódása után. Miután a fejlesztők hozzáadták a stabil azonosítókat, vizsgálják meg újra az objektumokat, és cseréljék le a sorszámot az új tulajdonságra.
  • Rácsok feletti ciklusokban lévő ordinálisokra támaszkodva. Jobban szeret ChildObjects, amely egy élő gyűjteményt ad vissza, így a számláló az aktuális oldalt tükrözi, nem pedig a rögzített oldalt.

Tudástár

Töltsd le a fenti oktatóanyagban használt weboldalakat önálló gyakorláshoz

A sorszámazonosítók az objektumazonosítási modell egy kis részét képezik. Ha szeretné látni, hogyan illeszkednek a tágabb munkafolyamatba, folytassa a teljes leírással. QTP/UFT edzéssorozat, tekintse át az alapokat a szoftver tesztelés, ismerje meg, hogyan kezeli az eredményeket a HP ALM oktatóanyag, és hasonlítsa össze a lokátor stratégiákat a Selenium oktatói.

GYIK

Az alapértelmezett érték osztályonként változik. A legtöbb webes tesztobjektum, mint például a WebEdit és a WebButton, az Index, a Browser objektumok a CreationTime, míg a Standard objektumok az alapértelmezett értéket használják. Windows Az osztályok alapértelmezett értéke a Hely. Minden alapértelmezett érték látható és szerkeszthető az Objektumazonosítás ablakban.

Először az intelligens azonosítás fut le. UFT Megpróbálja a tanult leírást, majd az intelligens azonosítást, ha az engedélyezve van az osztályhoz, és csak akkor tér vissza a sorszámos azonosítóhoz, ha mindkettő nem hoz létre egyetlen egyező objektumot.

Igen. Állítsa a Sorszám azonosító legördülő menüt Nincs értékre az osztályhoz az Objektumazonosítás ablakban. UFT majd azonosítási hibát jelez a találgatás helyett, ami biztonságosabb azokban a csomagokban, ahol a rossz objektumra kattintás ronthatja a tesztadatokat.

Némileg. UFT az osztály minden objektumát fel kell sorolnia, mielőtt a kért pozícióba számolhatna, így a több száz hasonló vezérlőt tartalmazó oldalak feloldása tovább tart, mint egy egyedi névre vagy azonosítóra épülő leírásé.

Igen. A jelenlegi mesterséges intelligencia alapú azonosítás UFT Az egyik esetben a vizuális megjelenés és a címkeszöveg alapján keresik meg az egyezéseket a vezérlőelemek között, nem pedig a jelölés pozíciója alapján, így egy mező akkor is megtalálható, ha a környező indexértékek eltolódnak.

Egy mesterséges intelligencia asszisztens képes átvizsgálni egy adattár exportált fájlját, megjelölni minden olyan leírást, amely indexet, helyet vagy létrehozási időt tartalmaz, és javaslatokat tenni a rögzített HTML attribútumok cseréjére. Egy embernek továbbra is ellenőriznie kell minden egyes javaslatot az élő alkalmazással szemben, mielőtt véglegesítené azt.

Kattints itt ha a videó nem érhető el

Foglald össze ezt a bejegyzést a következőképpen: