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.

  • 🎯 Viimase abinõuna: UFT lisab ordinaalidentifikaatori ainult pärast seda, kui kohustuslikud ja abistavad omadused ei muuda kirjeldust unikaalseks.
  • 🔢 Indeks: Numbers sama klassi objektid lähtekoodi järjekorras, alustades 0-st, seega index:=3 on suunatud neljandale vastele.
  • 📍 Asukoht: Numbers objektid ekraanipositsiooni järgi aknas, raamis või dialoogis, ülalt alla ja vasakult paremale.
  • 🕒 Loomise aeg: Kehtib ainult brauseriobjektidele ja salvestab iga brauseri eksemplari avamise järjekorra.
  • 🗂️ Objekti identifitseerimine: Iga testobjekti klassi vaikeväärtuslikku ordinaaltüüpi saab muuta menüüpunktis Tööriistad > Objekti identifitseerimine.
  • ⌨️ Descriptive programmeerimine: Edastage indeks, asukoht või loomise aeg tavalise atribuudina objekti kirjeldusstringi sees.
  • ⚠️ Haprus: Ordinaalväärtused muutuvad iga lehe paigutuse muutudes, seega käsitle neid ajutise lahendusena, mitte kunagi kujundusvalikuna.

Ordinaalne identifikaator QTP/UFT selgitatud indeksi, asukoha ja loomise aja abil

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.

Ordinaalse identifikaatori säte QTP/UFT Objekti tuvastamise aken

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:

  1. Indeksipõhine
  2. Asukohapõhine
  3. 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.

  1. avatud UFT ja valige Tööriistad > Objekti tuvastamine.
  2. Valige keskkond, näiteks Veeb või Standard Windows, rippmenüüst Keskkond.
  3. Valige muudetav testobjekti klass, näiteks WebEdit või WinButton.
  4. aasta Ordinaalne identifikaator jaotises valige Indeks, Asukoht, Loomise aeg või Puudub.
  5. Click OK ja õppige objekt uuesti, et uus ordinaalväärtus jäädvustataks.
  6. 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

Vaikimisi väärtus varieerub klassiti. Enamiku veebitesti objektide, näiteks WebEdit ja WebButton, vaikeväärtus on Index, Browser-objektide vaikeväärtus CreationTime ja Standard. Windows klasside vaikeväärtus on Asukoht. Iga vaikeväärtus on nähtav ja muudetav objekti tuvastamise aknas.

Esmalt käivitatakse nutikas tuvastamine. UFT proovib õpitud kirjeldust ja seejärel nutikat tuvastamist (Smart Identification), kui see on klassi jaoks lubatud, ning naaseb ordinaalidentifikaatori juurde ainult siis, kui kumbki ei suuda leida ühte sobivat objekti.

Jah. Määrake objekti tuvastamise aknas klassi rippmenüüst Ordinaalne identifikaator väärtuseks Puudub. UFT Seejärel teatab see äraarvamise asemel tuvastamisveast, mis on turvalisem sviitide puhul, kus vale objekti klõps võib testiandmeid rikkuda.

Veidi. UFT peab enne soovitud positsioonile lugemist loetlema kõik klassi objektid, seega sadade sarnaste juhtelementidega lehtede lahendamine võtab kauem aega kui unikaalse nime või ID põhjal üles ehitatud kirjelduse lahendamine.

Jah. Tehisintellektil põhinev tuvastamine praeguses süsteemis UFT Üks vabastab vastete juhtelemendid visuaalse välimuse ja sildi teksti, mitte märgistuse asukoha järgi, nii et välja saab leida selle välimuse järgi isegi siis, kui ümbritsevad indeksi väärtused nihkuvad.

Tehisintellekti assistent saab skannida repositooriumi eksporti, märgistada iga kirjelduse, mis sisaldab indeksit, asukohta või loomise aega, ja pakkuda asendusi jäädvustatud HTML-atribuutide põhjal. Inimene peab enne iga ettepaneku kinnitamist ikkagi iga ettepaneku reaalajas rakenduse suhtes kontrollima.

Click siin kui video pole juurdepääsetav

Võta see postitus kokku järgmiselt: