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.

  • ๐ŸŽฏ Posljednja opcija: UFT dodaje ordinalni identifikator tek nakon ลกto obavezna i pomoฤ‡na svojstva ne uspiju uฤiniti opis jedinstvenim.
  • ๐Ÿ”ข Indeks: Numbers objekti iste klase prema redoslijedu izvornog koda, poฤevลกi od 0, pa index:=3 cilja ฤetvrto podudaranje.
  • ???? Mjesto: Numbers objekte prema poloลพaju na zaslonu unutar prozora, okvira ili dijaloga, od vrha prema dnu i slijeva nadesno.
  • ๐Ÿ•’ Vrijeme stvaranja: Odnosi se samo na objekte preglednika i biljeลพi redoslijed kojim je svaka instanca preglednika otvorena.
  • ๐Ÿ—‚๏ธ Identifikacija objekta: Zadani ordinalni tip za svaku klasu testnog objekta moลพe se ureฤ‘ivati โ€‹โ€‹pod Alati > Identifikacija objekta.
  • โŒจ๏ธ Descriptลพivo programiranje: Proslijedite indeks, lokaciju ili vrijeme kreiranja kao obiฤno svojstvo unutar niza opisa objekta.
  • โš ๏ธ Krhkost: Ordinalne vrijednosti se mijenjaju kad god se promijeni izgled stranice, stoga ih tretirajte kao privremeno rjeลกenje, nikada kao dizajnerski izbor.

Ordinalni identifikator u QTP/UFT objaลกnjeno pomoฤ‡u indeksa, lokacije i vremena stvaranja

ล 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.

Postavka ordinalnog identifikatora u QTP/UFT Prozor za identifikaciju 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:

  1. Na temelju indeksa
  2. Na temelju lokacije
  3. 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.

  1. Otvoren UFT i odaberite Alati > Identifikacija objekta.
  2. Odaberite okruลพenje, na primjer Web ili Standardno Windows, iz padajuฤ‡eg izbornika Okolina.
  3. Odaberite klasu testnog objekta koju ลพelite promijeniti, kao ลกto je WebEdit ili WinButton.
  4. u Ordinalni identifikator U odjeljku odaberite Indeks, Lokacija, Vrijeme stvaranja ili Niลกta.
  5. Kliknite OK i ponovno nauฤiti objekt tako da se uhvati nova ordinalna vrijednost.
  6. 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

Zadana vrijednost varira ovisno o klasi. Veฤ‡ina web testnih objekata kao ลกto su WebEdit i WebButton zadana je Index, objekti Browsera zadana je CreationTime, a Standard Windows Klase imaju zadanu vrijednost Lokacija. Svaka zadana vrijednost je vidljiva i moลพe se ureฤ‘ivati โ€‹โ€‹u prozoru Identifikacija objekta.

Pametna identifikacija se pokreฤ‡e prva. UFT pokuลกava s nauฤenim opisom, zatim s pametnom identifikacijom ako je omoguฤ‡ena za klasu, i vraฤ‡a se na ordinalni identifikator samo kada oba ne uspiju proizvesti niti jedan odgovarajuฤ‡i objekt.

Da. Postavite padajuฤ‡i izbornik Ordinalni identifikator na Nema za klasu u prozoru Identifikacija objekta. UFT zatim prijavljuje pogreลกku identifikacije umjesto nagaฤ‘anja, ลกto je sigurnije za pakete gdje bi klik na pogreลกan objekt mogao oลกtetiti testne podatke.

Malo. UFT mora nabrojati svaki objekt klase prije nego ลกto moลพe doฤ‡i do traลพene pozicije, pa stranice sa stotinama sliฤnih kontrola trebaju dulje za rjeลกavanje nego opis izgraฤ‘en na jedinstvenom imenu ili ID-u.

Da. Identifikacija temeljena na umjetnoj inteligenciji u trenutnoj UFT Kontrole za oslobaฤ‘anje podudaranja se pronalaze prema vizualnom izgledu i tekstu oznake, a ne prema poloลพaju oznake, tako da se polje moลพe locirati prema izgledu ฤak i kada se vrijednosti okolnog indeksa pomaknu.

AI asistent moลพe skenirati izvoz iz repozitorija, oznaฤiti svaki opis koji sadrลพi indeks, lokaciju ili vrijeme kreiranja i predloลพiti zamjene iz snimljenih HTML atributa. ฤŒovjek i dalje mora provjeriti svaki prijedlog u odnosu na aktivnu aplikaciju prije nego ลกto ga potvrdi.

Kliknite ovdje ako video nije dostupan

Saลพmite ovu objavu uz: