Ordinalni identifikator u QTP/UFTPrimjer identifikacije objekta
⚡ Pametni sažetak
Ordinalni identifikator u QTP/UFT je presuda u razrješenju UFT primjenjuje se kada obavezna i pomoćna svojstva i dalje odgovaraju više od jednog objekta, koristeći vrijednosti Index, Location ili CreationTime za odabir jednog jedinstvenog objekta.

Što je ordinalni identifikator u QTP/UFT?
An Redni identifikator je numeričko svojstvo koje UFT (ranije QTP) dodaje opisu objekta kada obavezna i pomoćna svojstva snimljena tijekom sesije snimanja nisu dovoljna za jedinstvenu identifikaciju objekta. Umjesto da ne uspije, alat se vraća na brojač koji zapravo kaže „uzmi treći objekt ove klase“.
Prema zadanim postavkama, za svaku klasu testnog objekta postoji tip ordinalnog identifikatora. WebEdit je numeriran drugačije od WinButtona, a Browser je također numeriran drugačije. Zadani ordinalni identifikator za klasu možete pregledati ili izmijeniti u prozoru Identifikacija objekta.
Kao što je prikazano na gornjoj snimci zaslona, padajući izbornik Ordinalni identifikator nalazi se na dnu dijaloga Identifikacija objekta, ispod popisa obveznih i pomoćnih svojstava. Taj položaj nije slučajan: odražava redoslijed kojim UFT zapravo konzultira tri skupine.
Postoje tri vrste ordinalnih identifikatora u UFT:
- Na temelju indeksa
- Na temelju lokacije
- Vrijeme stvaranja
Zašto UFT Koristi ordinalne identifikatore samo kao krajnje rješenje
Identifikacija objekta u UFT izvodi se kaskadno. Prvo se uče obavezna svojstva. Ako ne daju niti jedno podudaranje, pomoćna svojstva se dodaju jedno po jedno dok opis ne postane jedinstven. Tek kada se obje skupine iscrpe, UFT priložite ordinalni identifikator, a tijekom izvođenja konzultira se mehanizam pametne identifikacije prije nego što se ordinalna vrijednost smatra pouzdanom.
Razlog za to rangiranje je stabilnost. Obavezna i pomoćna svojstva opisuju što objekt je: njegovo ime, njegova HTML oznaka, njegov tip, njegova oznaka. Ordinalni identifikator opisuje samo gdje objekt se slučajno nalazio u trenutku snimanja. Sve što promijeni stranicu mijenja i broj:
- Programer ubacuje skriveno polje iznad onog koje automatizirate.
- Promotivni banner dodaje dvije dodatne poveznice u zaglavlje.
- Responzivni izgled preoblikuje obrazac iz dva stupca u jedan.
- Skočni preglednik otvara se ranije nego tijekom snimljenog trčanja.
Nijedna od ovih promjena ne narušava opis izgrađen na imenu ili ID-u, ali svaka od njih tiho mijenja svaku vrijednost indeksa i lokacije na stranici. Zato iskusni inženjeri tretiraju ordinalni identifikator kao signal da opis objekta treba doraditi, a ne kao gotovo rješenje. Isti princip vrijedi i za ispitivanje automatizacije okviri općenito, uključujući strategiju lokatora u Selenium.
💡 Savjet: Prije prihvaćanja ordinalnog identifikatora, otvorite objekt u Object Spyu i potražite stabilan prilagođeni atribut. Dodavanje tog atributa na popis pomoćnih svojstava za klasu često uklanja potrebu za ordinalnim brojem na svakom budućem objektu te vrste.
Vrste ordinalnih identifikatora u UFT/QTP
Na temelju indeksa
- Kada se koristi ordinalni identifikator temeljen na indeksu, UFT dodjeljuje vrijednost indeks svojstvo objekta tijekom snimanja.
- Vrijednost se temelji na redoslijedu kojim se objekt pojavljuje unutar izvornog koda, a ne na ekranu.
- Prvo pojavljivanje ima vrijednost 0.
- Vrijednosti svojstava indeksa specifične su za objekt, tako da se svaka klasa testnog objekta broji zasebno.
- Stoga, ako koristite index:=3 za opis testnog objekta WebEdita, UFT traži četvrti WebEdit objekt na stranici.
- Slično tome, ako koristite index:=1 za opis testnog objekta WebButton, UFT traži drugi WebButton objekt na stranici.
Na temelju lokacije
- Kada se koristi ordinalni identifikator temeljen na lokaciji, UFT dodjeljuje vrijednost lokacija svojstvo objekta da ga jedinstveno identificira.
- Vrijednost se temelji na redoslijedu u kojem se objekt pojavljuje unutar prozora, okvira ili dijaloškog okvira, u odnosu na druge objekte s identičnim svojstvima.
- Prvo pojavljivanje objekta je 0.
- Vrijednosti se dodjeljuju u stupcima, od vrha prema dnu, a zatim s lijeva na desno.
- Lokacija je zadani ordinalni identifikator za većinu standardnih Windows klase testnih objekata, gdje je vizualni raspored stabilniji od redoslijeda označavanja.
Vrijeme stvaranja
- Kada se koristi ordinalni identifikator vremena stvaranja, UFT dodjeljuje vrijednost vrijeme stvaranja svojstvo objekta preglednika.
- Ovaj identifikator dostupan je samo za web okruženje i samo za testne objekte preglednika.
- Vrijednost označava redoslijed kojim je preglednik otvoren u odnosu na druge otvorene preglednike.
- Prvi preglednik otvoren tijekom izvođenja prima creationtime:=0, a sljedeći preglednici primaju 1, 2, 3 i tako dalje.
- Ako se preglednik zatvori, preostali preglednici zadržavaju svoje izvorne vrijednosti umjesto da se prenumeriraju.
Indeks vs. Lokacija vs. Vrijeme stvaranja: Tablica usporedbe
Tri identifikatora odgovaraju na tri različita pitanja, a odabir pogrešnog čest je uzrok povremenih kvarova.
| Aspekt | indeks | Lokacija | Vrijeme stvaranja |
|---|---|---|---|
| Naziv imovine | indeks | lokacija | vrijeme stvaranja |
| Osnova naručivanja | Redoslijed u hijerarhiji izvornog koda / objekata | Položaj zaslona unutar prozora, okvira ili dijaloga | Redoslijed kojim su se otvarale instance preglednika |
| Pravilo brojanja | Sekvencijalno, po klasi testnog objekta | Stupci, od vrha prema dnu, a zatim slijeva nadesno | Sekvencijalno, po instanci preglednika |
| Prva vrijednost | 0 | 0 | 0 |
| Odnosi se na | Web i Windows Nastava | Uglavnom standardno Windows Nastava | Samo objekti preglednika |
| Prekidi kada | Promjene redoslijeda označavanja | Izgled je premješten ili promijenjena mu je veličina | Windows otvoriti u drugom redoslijedu |
| Najbolje koristiti za | Ponavljajuće kontrole mreže ili tablice | Zastarjeli obrasci za stolna računala s fiksnim rasporedom | Višeprozorski web tokovi kao što su skočni prozori za plaćanje |
Kako postaviti ordinalni identifikator u repozitoriju objekata
Ordinalni identifikator konfigurira se po klasi testnog objekta i automatski se primjenjuje na svaki objekt te klase koji UFT uči naknadno. Postojeći objekti koji se već nalaze u repozitoriju ne ažuriraju se retroaktivno.
- Otvoren UFT i odaberite Alati > Identifikacija objekta.
- Odaberite okruženje, na primjer Web ili Standardno Windows, iz padajućeg izbornika Okolina.
- Odaberite klasu testnog objekta koju želite promijeniti, kao što je WebEdit ili WinButton.
- u Ordinalni identifikator U odjeljku odaberite Indeks, Lokacija, Vrijeme stvaranja ili Ništa.
- Kliknite OK i ponovno naučiti objekt tako da se uhvati nova ordinalna vrijednost.
- Otvorite spremište objekata, odaberite objekt i potvrdite da se ordinalno svojstvo sada pojavljuje u popisu opisa.
Odabirom nijedan potpuno onemogućuje zamjensku opciju za tu klasu. UFT tada će izazvati pogrešku u identifikaciji umjesto nagađanja, što je često ponašanje koje želite u paketu gdje je tiha pogrešna identifikacija štetnija od čistog neuspjeha. Zabilježite svoja očekivanja u dobro napisanom testni slučaj taj kompromis čini eksplicitnim za cijeli tim.
⚠️ Upozorenje: Promjena ordinalnog identifikatora za klasu je postavka na razini stroja, a ne na razini testiranja. Ako se ne izveze i ne podijeli, skripte koje se prenose na vašem računalu mogu propasti na računalu kolege ili na agentu za izgradnju.
Kako koristiti ordinalne identifikatore u Descriptive Programiranje
U deskriptivnom programiranju ne postoji dijalog za identifikaciju objekta. Ordinalni broj se upisuje izravno u opisni niz, baš kao i bilo koji drugi naziv svojstva, i uvijek je baziran na nuli.
' 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
Izlaz:
Filled WebEdit occurrence #4 Clicked WebButton occurrence #2 Switching to browser opened at position #2
Sigurniji obrazac je kombinirati stvarna svojstva s ChildObjects pa se ordinal provjerava prije upotrebe. Primjer u nastavku pretpostavlja stranicu koja sadrži pet odgovarajućih WebEdit objekata i indeks 9.
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
Izlaz:
Index 9 is out of range; only 5 objects match
Ovaj zaštitnik pretvara beskorisnu pogrešku "Nije moguće identificirati objekt" u čitljivu poruku, što je važno kada se rezultati objavljuju za defekt. tracker ili do HP ALM integriran s UFT.
Uobičajene pogreške pri korištenju ordinalnih identifikatora
Većina ordinalnih nedostataka tracnatrag na mali skup ponavljajućih pogrešaka.
- Brojeći od 1. Svaki ordinalni identifikator počinje od 0. Pisanje index:=1 za prvo polje je najčešća pogreška i stvara grešku "off-by-one" koja izgleda kao problem s vremenom.
- Zbunjujući indeks s lokacijom. Indeks slijedi izvorni kod; lokacija slijedi zaslon. Na stranici gdje CSS mijenja redoslijed elemenata, dvije vrijednosti se razlikuju i zamjenjuju.ping tiho ciljaju na pogrešnu kontrolu.
- Korištenje CreationTime izvan web okruženja. Svojstvo postoji samo na objektima preglednika. Primjena na objekt stranice, okvira ili prozora izbacuje grešku nepodržanog svojstva.
- Tvrdo kodiranje ordinala u zajedničku funkciju. Funkcija za višekratnu upotrebu koja pretpostavlja index:=2 postaje neupotrebljiva u trenutku kada je pozove drugi ekran s drugačijim rasporedom.
- Ostavljanje ordinala u repozitoriju nakon stabilizacije aplikacije. Nakon što programeri dodaju stabilne ID-ove, ponovno posjetite objekte i zamijenite ordinal novim svojstvom.
- Oslanjanje na ordinale unutar petlji preko mreža. preferiraju
ChildObjects, koja vraća aktivnu kolekciju, tako da brojač odražava trenutnu stranicu, a ne snimljenu.
Resursi
Preuzmite web-stranice korištene u gornjem vodiču za samostalnu vježbu
Ordinalni identifikatori su samo mali dio modela identifikacije objekata. Da biste vidjeli kako se uklapaju u širi tijek rada, nastavite s cijelim QTP/UFT serija treninga, pregledajte osnove u testiranje softvera, saznajte kako se rezultati upravljaju u HP ALM vodiči usporedite strategije lokatora s Selenium udžbenik.
Pitanja i odgovori
Kliknite ovdje ako video nije dostupan

