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

