Ordinaalne identifikaator QTP/UFTObjekti tuvastamise näide
⚡ Nutikas kokkuvõte
Ordinaalne identifikaator QTP/UFT on viigimurdja UFT kehtib juhul, kui kohustuslikud ja abistavad atribuudid vastavad endiselt mitmele objektile, kasutades indeksi, asukoha või loomise aja väärtusi ühe unikaalse objekti valimiseks.

Mis on ordinaalidentifikaator QTP/UFT?
An Ordinaal Identifier on numbriline omadus, mis UFT (varem QTP) lisab objekti kirjeldusele midagi, kui salvestusseansi ajal jäädvustatud kohustuslikest ja abistavatest omadustest ei piisa objekti üheselt tuvastamiseks. Ebaõnnestumise asemel kasutab tööriist loendurit, mis sisuliselt ütleb: „võta selle klassi kolmas objekt“.
Vaikimisi on igal testobjekti klassil olemas ordinaalidentifikaatori tüüp. WebEdit nummerdatakse erinevalt WinButtonist ja Browser nummerdatakse jällegi erinevalt. Klassi vaikimisi ordinaalidentifikaatorit saab vaadata või muuta objekti identifitseerimise aknas.
Nagu ülaltoodud ekraanipildil näha, asub järjekorranumbri rippmenüü objekti tuvastamise dialoogi allosas kohustuslike ja abistavate omaduste loendite all. See asukoht pole juhuslik: see peegeldab järjekorda, milles UFT konsulteerib tegelikult kolme rühmaga.
Ordinaalidentifikaatoreid on kolme tüüpi UFT:
- Indeksipõhine
- Asukohapõhine
- Loomise aeg
Miks UFT Kasutab ordinaalidentifikaatoreid ainult viimase abinõuna
Objekti tuvastamine UFT toimib kaskaadina. Kohustuslikud omadused õpitakse kõigepealt selgeks. Kui need ei anna ühtegi vastet, lisatakse abistavad omadused ükshaaval, kuni kirjeldus on unikaalne. Alles siis, kui mõlemad rühmad on ammendatud. UFT lisage järjekorranumber ja käitusajal konsulteeritakse enne järjekorranumbri usaldamist nutika identifitseerimismehhanismiga.
Selle järjestuse põhjus on stabiilsus. Kohustuslikud ja abistavad omadused kirjeldavad mida Objekt on: selle nimi, selle HTML-silt, selle tüüp, selle silt. Ordinaalidentifikaator kirjeldab ainult kus objekt juhtus salvestuse hetkel seal olema. Kõik, mis lehte muudab, muudab ka numbrit:
- Arendaja lisab automatiseeritud välja kohale peidetud välja.
- Reklaambänner lisab päisesse kaks lisalinki.
- Kohanduv paigutus muudab vormi kahest veerust üheks.
- Hüpikbrauser avaneb varem kui salvestatud jooksu ajal.
Ükski neist muudatustest ei riku nime või ID põhjal loodud kirjeldust, kuid igaüks neist muudab märkamatult iga indeksi ja asukoha väärtust lehel. Seetõttu käsitlevad kogenud insenerid ordinaalidentifikaatorit signaalina, et objekti kirjeldus vajab tööd, mitte valmis lahendusena. Sama põhimõte kehtib kõikjal... automaatika testimine raamistikud üldiselt, sealhulgas lokaliseerimisstrateegia Selenium.
💡 Näpunäide: Enne ordinaalidentifikaatori aktsepteerimist avage objekt Object Spy's ja otsige stabiilset kohandatud atribuuti. Selle atribuudi lisamine klassi abistavate omaduste loendisse eemaldab sageli vajaduse ordinaalidentifikaatori järele igal tulevasel sama tüüpi objektil.
Ordinaalsete identifikaatorite tüübid UFT/QTP
Indeksipõhine
- Kui kasutatakse indeksil põhinevat ordinaalidentifikaatorit, UFT määrab väärtuse indeks Objekti omadus salvestamise ajal.
- Väärtus põhineb objekti ilmumise järjekorral lähtekoodis, mitte ekraanil.
- Esimese esinemise väärtus on 0.
- Indeksi omaduste väärtused on objektispetsiifilised, seega loendatakse iga testobjekti klassi eraldi.
- Seega, kui kasutate WebEditi testobjekti kirjeldamiseks index:=3, UFT otsib lehel neljandat WebEdit-objekti.
- Samamoodi, kui kasutate WebButtoni testobjekti kirjeldamiseks index:=1, UFT otsib lehelt teist WebButton objekti.
Asukohapõhine
- Kui kasutatakse asukohapõhist ordinaalidentifikaatorit, UFT määrab väärtuse liising objekti omadus seda unikaalselt tuvastada.
- Väärtus põhineb sellel, millises järjekorras objekt kuvatakse aknas, raamis või dialoogiboksis, võrreldes teiste identsete omadustega objektidega.
- Objekti esmakordne esinemine on 0.
- Väärtused määratakse veergudes, ülalt alla ja seejärel vasakult paremale.
- Asukoht on enamiku standardsete rakenduste puhul vaikimisi järjekorranumber. Windows testobjektiklassid, kus visuaalne paigutus on stabiilsem kui märgistusjärjekord.
Loomise aeg
- Kui kasutatakse loomise aja ordinaalidentifikaatorit, UFT määrab väärtuse loomise aeg brauseriobjekti omadus.
- See identifikaator on saadaval ainult veebikeskkonna ja ainult brauseri testobjektide jaoks.
- Väärtus näitab brauseri avamise järjekorda võrreldes teiste avatud brauseritega.
- Käitamise ajal esimesena avatud brauser saab creationtime:=0 ja järgnevad brauserid saavad 1, 2, 3 jne.
- Kui brauser suletakse, säilitavad ülejäänud brauserid oma algsed väärtused, mitte ei nummerdata ümber.
Indeks vs asukoht vs loomise aeg: võrdlustabel
Need kolm identifikaatorit vastavad kolmele erinevale küsimusele ja vale valimine on vahelduvate rikete sagedane põhjus.
| Aspekt | indeks | Asukoht | Loomise aeg |
|---|---|---|---|
| Kinnisvara nimi | indeks | liising | loomise aeg |
| Tellimuse alus | Järjekord lähtekoodi/objekti hierarhias | Ekraani asukoht aknas, raamis või dialoogis | Brauseri eksemplaride avamise järjekord |
| Loendamise reegel | Järjestikune, testimisobjekti klassi kohta | Veerud, ülalt alla ja seejärel vasakult paremale | Järjestikune, brauseri eksemplari kohta |
| Esimene väärtus | 0 | 0 | 0 |
| Kohaldatakse | Veeb ja Windows klassid | Peamiselt standardne Windows klassid | Ainult brauseriobjektid |
| Katkestused, kui | Märgistusjärjekorra muudatused | Paigutuse asukohta või suurust muudetakse | Windows avada teises järjekorras |
| Parim kasutada | Korduvad ruudustiku või tabeli juhtelemendid | Fikseeritud paigutusega pärandvormid | Mitme aknaga veebivood, näiteks hüpikaknad maksetele |
Kuidas objektihoidlas ordinaalidentifikaatorit määrata?
Ordinaalidentifikaator konfigureeritakse iga testobjekti klassi kohta ja seda rakendatakse automaatselt igale selle klassi objektile, mis UFT õpib tagantjärele. Repositooriumis juba olemasolevaid objekte tagasiulatuvalt ei uuendata.
- avatud UFT ja valige Tööriistad > Objekti tuvastamine.
- Valige keskkond, näiteks Veeb või Standard Windows, rippmenüüst Keskkond.
- Valige muudetav testobjekti klass, näiteks WebEdit või WinButton.
- aasta Ordinaalne identifikaator jaotises valige Indeks, Asukoht, Loomise aeg või Puudub.
- Click OK ja õppige objekt uuesti, et uus ordinaalväärtus jäädvustataks.
- Ava objektide hoidla, vali objekt ja veendu, et ordinaalomadus kuvatakse nüüd kirjelduste loendis.
valides mitte ükski keelab selle klassi varuvariandi täielikult. UFT Seejärel tekitab see pigem tuvastamisvea kui oletuse, mis on sageli soovitud käitumine olukorras, kus vaikne valesti tuvastamine on kahjulikum kui puhas läbikukkumine. Oma ootuste jäädvustamine hästi kirjutatud vormis testjuhtum muudab selle kompromissi kogu meeskonna jaoks selgeks.
⚠️ Hoiatus: Klassi ordinaalidentifikaatori muutmine on masina tasemel säte, mitte testi tasemel säte. Kui seda ei ekspordita ega jagata, võivad teie masinal edastatavad skriptid kolleegi masinas või ehitusagendis nurjuda.
Kuidas kasutada ordinaalidentifikaatoreid Descriptive programmeerimine
Kirjeldavas programmeerimises puudub objekti tuvastamise dialoog. Järgarv kirjutatakse otse kirjeldavasse stringi, täpselt nagu iga teine omaduse nimi, ja see põhineb alati nullil.
' 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
Väljund:
Filled WebEdit occurrence #4 Clicked WebButton occurrence #2 Switching to browser opened at position #2
Ohutum muster on kinnisvara kombineerimine ChildObjects Seega kontrollitakse järgarvu enne kasutamist. Allolev näide eeldab lehte, mis sisaldab viit sobivat WebEdit-objekti ja indeksit 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
Väljund:
Index 9 is out of range; only 5 objects match
See valvur muudab ebavajaliku käitusaja vea „Ei saa objekti tuvastada” loetavaks teateks, mis on oluline, kui tulemused avaldatakse defektile. tracker või kuni HP ALM integreeritud UFT.
Levinud vead ordinaalidentifikaatorite kasutamisel
Enamik ordinaalsetest defektidest tractagasi väikese hulga korduvate vigade juurde.
- Loendades alates 1. Iga ordinaalidentifikaator algab nullist. Esimese välja index:=1 kirjutamine on kõige levinum viga ja põhjustab ühekordse vea, mis näeb välja nagu ajastusprobleem.
- Segaduses ajate indeksi asukohaga. Indeks järgneb lähtekoodile; asukoht järgneb ekraanile. Lehel, kus CSS järjestab elemente ümber, erinevad need kaks väärtust ja vahetavad omavahel.ping nad sihivad vaikselt valet kontrolli.
- CreationTime'i kasutamine väljaspool veebikeskkonda. See omadus eksisteerib ainult brauseriobjektidel. Selle rakendamine lehe-, raami- või aknaobjektile annab vea „mittetoetatud omadus”.
- Ordinaali kõvakodeerimine jagatud funktsiooni. Korduvkasutatav funktsioon, mis eeldab index:=2, muutub kasutuskõlbmatuks hetkel, kui teine ekraan, millel on erinev paigutus, seda kutsub.
- Järgarvude jätmine repositooriumisse pärast rakenduse stabiliseerumist. Kui arendajad on stabiilsed ID-d lisanud, vaadake objektid uuesti üle ja asendage järjenumber uue atribuudiga.
- Ruudustiku kohal olevate tsüklite sees olevatele ordinaalidele tuginemine. Eelista
ChildObjects, mis tagastab reaalajas kogumiku, seega kajastab arv praegust lehte, mitte salvestatud lehte.
Ressursid
Laadige alla ülaltoodud õpetuses kasutatud veebilehed iseseisvaks harjutamiseks
Ordinaalsed identifikaatorid on objektide tuvastamise mudeli üks väike osa. Et näha, kuidas need laiemasse töövoogu sobivad, jätkake täieliku mudeliga. QTP/UFT treeningseeria, vaadake üle põhitõed tarkvara testimine, saate teada, kuidas tulemusi hallatakse HP ALM-i õpetusja võrrelge lokaatoristrateegiaid Selenium juhendaja.
KKK
Click siin kui video pole juurdepääsetav

