Järjestysnumeron tunniste kohdassa QTP/UFTObjektin tunnistusesimerkki
⚡ Älykäs yhteenveto
Järjestysnumeron tunniste kohdassa QTP/UFT on ratkaiseva tekijä UFT pätee, kun pakolliset ja avustavat ominaisuudet vastaavat edelleen useampaa kuin yhtä objektia, valitsemalla yhden yksilöllisen objektin Index-, Location- tai CreationTime-arvojen avulla.

Mikä on järjestysnumeron tunniste QTP/UFT?
An Ordinaal Identifier on numeerinen ominaisuus, joka UFT (ent QTP) lisää objektin kuvaukseen, kun tallennusistunnon aikana tallennetut pakolliset ja avustavat ominaisuudet eivät riitä objektin yksiselitteiseen tunnistamiseen. Epäonnistumisen sijaan työkalu turvautuu laskuriin, joka käytännössä sanoo "ota tämän luokan kolmas objekti".
Oletusarvoisesti jokaiselle testiobjektiluokalle on olemassa järjestysnumerotyyppinen tunniste. WebEdit-elementti on numeroitu eri tavalla kuin WinButton-elementti, ja Browser-elementti on numeroitu eri tavalla. Voit tarkastella tai muokata luokan oletusjärjestysnumeroa Objektin tunnistus -ikkunassa.
Kuten yllä oleva kuvakaappaus osoittaa, Järjestysluvun tunniste -pudotusvalikko sijaitsee Objektin tunnistus -valintaikkunan alareunassa pakollisten ja avustavien ominaisuusluetteloiden alapuolella. Tämä sijainti ei ole sattumaa: se heijastaa järjestystä, jossa UFT itse asiassa konsultoi kolmea ryhmää.
Järjestyslukutunnisteita on kolmenlaisia UFT:
- Indeksipohjainen
- Sijainti perustuu
- Luomisaika
Miksi UFT Käyttää järjestyslukutunnisteita vain viimeisenä keinona
Objektin tunnistus UFT toimii ketjureaktiona. Pakolliset ominaisuudet opitaan ensin. Jos ne eivät tuota yhtäkään osumaa, avustavia ominaisuuksia lisätään yksi kerrallaan, kunnes kuvaus on yksilöllinen. Vasta kun molemmat ryhmät on käytetty loppuun UFT liitä järjestysnumeron tunniste, ja suorituksen aikana Smart Identification -mekanismia käytetään ennen kuin järjestysnumeroon luotetaan.
Syynä tähän sijoitukseen on vakaus. Pakolliset ja avustavat ominaisuudet kuvaavat mitä Objekti on: sen nimi, sen HTML-tagi, sen tyyppi, sen otsikko. Järjestysnumero (Ordinal ID) kuvaa vain jossa esine sattui olemaan tallennushetkellä. Kaikki sivua muuttava muutos muuttaa numeroa:
- Kehittäjä lisää piilotetun kentän automatisoidun kentän yläpuolelle.
- Mainosbanneri lisää kaksi ylimääräistä linkkiä otsikkoon.
- Responsiivinen asettelu muuttaa lomakkeen kahdesta sarakkeesta yhdeksi.
- Ponnahdusikkuna avautuu aikaisemmin kuin tallennetun juoksun aikana.
Mikään näistä muutoksista ei riko nimeen tai tunnukseen perustuvaa kuvausta, mutta jokainen niistä siirtää hiljaa jokaista sivun indeksiä ja sijaintiarvoa. Siksi kokeneet insinöörit käsittelevät järjestysnumeroa signaalina siitä, että objektikuvaus kaipaa työstämistä, eivätkä valmiina ratkaisuna. Sama periaate pätee kaikkialla automaatiotestaus viitekehykset yleisesti, mukaan lukien paikannusstrategia Selenium.
💡 Vinkki: Ennen ordinaalitunnisteen hyväksymistä avaa objekti Object Spy -työkalussa ja etsi vakaa mukautettu attribuutti. Attribuutin lisääminen luokan avustavien ominaisuuksien luetteloon poistaa usein tarpeen ordinaalille jokaiselle tulevalle saman tyyppiselle objektille.
Järjestyslukutunnisteiden tyypit UFT/QTP
Indeksipohjainen
- Kun käytetään indeksiin perustuvaa ordinaalitunnistetta, UFT antaa arvon indeksi kohteen ominaisuus tallennuksen aikana.
- Arvo perustuu objektin esiintymisjärjestykseen lähdekoodissa, ei näytöllä.
- Ensimmäisen esiintymän arvo on 0.
- Indeksiominaisuuksien arvot ovat objektikohtaisia, joten jokainen testiobjektiluokka lasketaan erikseen.
- Jos siis käytät index:=3-muuttujaa WebEdit-testiobjektin kuvaamiseen, UFT etsii sivulta neljättä WebEdit-objektia.
- Samoin, jos käytät index:=1-muotoa WebButton-testiobjektin kuvaamiseen, UFT etsii sivulta toista WebButton-objektia.
Sijaintiperusteinen
- Kun käytetään sijaintiin perustuvaa järjestysnumerotunnistetta, UFT antaa arvon sijainti objektin ominaisuus, joka tunnistaa sen yksiselitteisesti.
- Arvo perustuu järjestykseen, jossa objekti näkyy ikkunassa, kehyksessä tai valintaikkunassa suhteessa muihin objekteihin, joilla on samat ominaisuudet.
- Objektin ensimmäinen esiintyminen on 0.
- Arvot annetaan sarakkeissa ylhäältä alas ja sitten vasemmalta oikealle.
- Sijainti on useimpien standardien oletusjärjestystunniste. Windows testiobjektiluokat, joissa visuaalinen asettelu on vakaampi kuin merkintäjärjestys.
Luomisaika
- Kun käytetään luontiajan järjestysnumeroa, UFT antaa arvon luomisaika selainobjektin ominaisuus.
- Tämä tunniste on käytettävissä vain verkkoympäristössä ja vain selaintestiobjekteissa.
- Arvo osoittaa järjestyksen, jossa selain avattiin suhteessa muihin avoimiin selaimiin.
- Ensimmäinen suorituksen aikana avattu selain saa creationtime:=0:n, ja seuraavat selaimet saavat 1, 2, 3 ja niin edelleen.
- Jos selain suljetaan, jäljellä olevat selaimet säilyttävät alkuperäiset arvonsa uudelleennumeroimisen sijaan.
Indeksi vs. sijainti vs. luontiaika: vertailutaulukko
Kolme tunnistetta vastaavat kolmeen eri kysymykseen, ja väärän tunnuksen valitseminen on yleinen ajoittaisten vikojen syy.
| Aspect | indeksi | Sijainti | Luomisaika |
|---|---|---|---|
| Kiinteistön nimi | indeksi | sijainti | luomisaika |
| Tilausperuste | Järjestys lähdekoodissa / objektihierarkiassa | Näytön sijainti ikkunan, kehyksen tai valintaikkunan sisällä | Järjestys, jossa selaininstanssit avattiin |
| Laskentaperiaate | Peräkkäinen, testiobjektiluokkaa kohden | Sarakkeet ylhäältä alas ja sitten vasemmalta oikealle | Peräkkäinen, selaininstanssia kohden |
| Ensimmäinen arvo | 0 | 0 | 0 |
| Pätee | Verkko ja Windows luokat | Pääasiassa vakio Windows luokat | Vain selainobjektit |
| Tauot, kun | Merkintäjärjestyksen muutokset | Asettelun sijaintia tai kokoa muutetaan | Windows avautuvat eri järjestyksessä |
| Parhaiten käytetty | Toistuvat ruudukko- tai taulukko-ohjausobjektit | Vanhat työpöytälomakkeet kiinteällä asettelulla | Usean ikkunan verkkovirrat, kuten maksuponnahdusikkunat |
Järjestysluvun tunnisteen asettaminen objektisäilössä
Järjestysluvun tunniste konfiguroidaan testiobjektiluokkaa kohden, ja sitä käytetään automaattisesti kaikkiin kyseisen luokan objekteihin, jotka UFT oppii jälkikäteen. Arkistossa jo olevia objekteja ei päivitetä takautuvasti.
- avoin UFT ja valitse Työkalut > Objektin tunnistus.
- Valitse ympäristö, esimerkiksi Verkko tai Vakio Windows, Ympäristö-pudotusvalikosta.
- Valitse muutettava testiobjektiluokka, kuten WebEdit tai WinButton.
- In Järjestysnumeron tunniste valitse osiossa Indeksi, Sijainti, Luontiaika tai Ei mitään.
- Napauta OK ja opeta objekti uudelleen, jotta uusi järjestyslukuarvo tallennetaan.
- Avaa objektisäilö, valitse objekti ja varmista, että järjestyslukuominaisuus näkyy nyt kuvausluettelossa.
valitseminen Ei eristetty poistaa kyseisen luokan varatoiminnon kokonaan käytöstä. UFT herättää sitten tunnistusvirheen arvauksen sijaan, mikä on usein toivottu toimintatapa tilanteessa, jossa hiljainen virheellinen tunnistaminen on vahingollisempaa kuin puhdas epäonnistuminen. Odotustesi kirjaaminen hyvin kirjoitettuun lomakkeeseen testitapaus tekee tuon kompromissin selväksi koko joukkueelle.
⚠️ Varoitus: Luokan järjestysnumeron tunnuksen muuttaminen on konekohtainen asetus, ei testitason asetus. Jos sitä ei viedä ja jaeta, koneellasi välitettävät komentosarjat voivat epäonnistua työtoverin koneella tai koontiagentissa.
Kuinka käyttää järjestyslukutunnisteita Descriptive ohjelmointi
Kuvailevassa ohjelmoinnissa ei ole objektin tunnistusdialogia. Järjestysluku kirjoitetaan suoraan kuvausmerkkijonoon, aivan kuten minkä tahansa muun ominaisuuden nimi, ja se on aina nollapohjainen.
' 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
lähtö:
Filled WebEdit occurrence #4 Clicked WebButton occurrence #2 Switching to browser opened at position #2
Turvallisempi malli on yhdistää kiinteistöjä ChildObjects joten järjestysluku validoidaan ennen sen käyttöä. Alla olevassa esimerkissä oletetaan sivu, joka sisältää viisi vastaavaa WebEdit-objektia ja indeksin 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
lähtö:
Index 9 is out of range; only 5 objects match
Tämä suoja muuttaa hyödyttömän suorituksenaikaisen virheen ”Objektia ei voida tunnistaa” luettavaan muotoon, jolla on merkitystä, kun tuloksia julkaistaan vikaan. tracker tai HP ALM integroitu UFT.
Yleisiä virheitä järjestyslukutunnisteita käytettäessä
Useimmat ordinaaliin liittyvät viat tractakaisin pieneen joukkoon toistuvia virheitä.
- Lasketaan luvusta 1. Jokainen järjestysnumerotunniste alkaa nollasta. Ensimmäisen kentän indeksi:=1:n kirjoittaminen on yleisin virhe ja aiheuttaa ajoitusongelmaa muistuttavan virheen.
- Hakemisto ja sijainti hämmentävät toisiaan. Indeksi seuraa lähdekoodia; sijainti seuraa näyttöä. Sivulla, jossa CSS järjestää elementit uudelleen, nämä kaksi arvoa eroavat toisistaan ja vaihtuvat.ping ne kohdistavat hiljaa väärään kontrolliin.
- CreationTimen käyttö web-ympäristön ulkopuolella. Ominaisuus esiintyy vain selainobjekteissa. Sen käyttäminen sivu-, kehys- tai ikkunaobjektiin aiheuttaa "unsupported-property" -virheen.
- Ordinaalin kovakoodaus jaettuun funktioon. Uudelleenkäytettävä funktio, joka olettaa index:=2, muuttuu käyttökelvottomaksi heti, kun toinen näyttö, jolla on eri asettelu, kutsuu sitä.
- Järjestyslukujen jättäminen repositorioon sovelluksen vakautumisen jälkeen. Kun kehittäjät ovat lisänneet vakaat tunnukset, he tarkistavat objektit uudelleen ja korvaavat järjestysluvun uudella ominaisuudella.
- Luotetaan ordinaaleihin silmukoiden sisällä ruudukoiden yli. Mieluummin
ChildObjects, joka palauttaa live-kokoelman, joten lukumäärä heijastaa nykyistä sivua tallennetun sivun sijaan.
Esittelymateriaalit
Lataa yllä olevassa opetusohjelmassa käytetyt verkkosivut itseharjoittelua varten
Järjestysnumerotunnisteet ovat vain yksi pieni osa objektin tunnistusmallia. Jos haluat nähdä, miten ne sopivat laajempaan työnkulkuun, jatka koko mallin kanssa. QTP/UFT koulutussarja, tarkastele perusteita kohdassa ohjelmistojen testaus, opi, miten tuloksia hallitaan HP ALM -opetusohjelmaja vertaa paikannusstrategioita Selenium oppitunti.
UKK
Napauta täältä jos video ei ole saatavilla

