Miten objektin tunnistus toimii QTP/UFT?

⚡ Älykäs yhteenveto

Objektin tunnistus QTP/UFT määrittää, miten työkalu tunnistaa jokaisen graafisen käyttöliittymän elementin testiajon aikana, vertaamalla tallennettuja testiobjektin ominaisuuksia reaaliaikaisiin ajonaikaisen objektin ominaisuuksiin, jotta skriptit toimivat edelleen, vaikka näytön asettelu muuttuisi.

  • 🎯 Testiobjektin malli: UFT vertaa tallennettua testiobjektia reaaliaikaiseen ajonaikaiseen objektiin jokaisessa vaiheessa tunnistaakseen ohjausobjektit näytön sijainnista riippumatta.
  • 🗂️ Pakolliset ominaisuudet: UFT tallentaa aina oletusarvoisen ominaisuusjoukon kullekin objektiluokalle objektitietovaraston sisällä.
  • 🧩 Avustavat ominaisuudet: UFT lisää varmuuskopio-ominaisuuksia yksi kerrallaan vain, kun pakollinen joukko yksinään ei pysty muodostamaan yksilöllistä kuvausta.
  • ⚙️ Objektin tunnistus -valintaikkuna: Työkalut > Objektin tunnistus -kohdassa testaajat voivat lisätä, poistaa tai järjestää ominaisuuksia uudelleen ympäristön ja objektiluokan mukaan.
  • 🕵️ Objektivakooja: Vie hiiri minkä tahansa ohjausobjektin päälle tarkistaaksesi sen testiobjektin ja suorituksenaikaiset ominaisuudet ennen kuin päätät, mihin niistä luotat.
  • 🔢 Järjestysnumerotunnisteet: Indeksi, sijainti ja luontiaika katkaisevat siteet objektien välillä, jotka pysyvät identtisinä jokaisen ominaisuustarkistuksen jälkeen.
  • 🧠 Älykäs tunnistus: Tämä varamekanismi toimii ennen järjestyslukutunnisteita ja palauttaa usein objektin, jonka opittu kuvaus on rikki.

Mitä on objektin tunnistus? UFT/QTP?

Objektin tunnistaminen on mekanismi UFT/QTP käyttää näytöllä olevan graafisen käyttöliittymän elementin tunnistamiseen, jotta komentosarja voi toimia sen perusteella luotettavasti suorituksen jälkeen. Tallennusistunnon aikana UFT tutkii pienen joukon ominaisuuksia hiiren osoittimen alla olevasta objektista ja tallentaa ne; toiston aikana se vertaa näitä tallennettuja arvoja jokaisen todellisuudessa läsnä olevan objektin ominaisuuksiin ja valitsee sen, joka vastaa yksikäsitteisesti riippumatta siitä, missä objekti tällä hetkellä sijaitsee näytöllä.

Tallennettu objekti ominaisuuksineen UFT muistaa sen, sitä kutsutaan Testaa objektiVastaava elementti, joka näkyy näytöllä testin suorittamisen aikana, on Ajonaikainen objektiNäiden kahden vertailu jokaisessa vaiheessa on perusta sille, mitä Micro Focus kutsuu Testiobjektimalli, ja siksi a UFT Skripti toimii edelleen, vaikka painike liikkuisi muutaman pikselin tai sivun tyyliä muutettaisiin.

Objektitietovarasto ja lisäosat

UFT pitää jokaisen opitun testiobjektin ja sen tallennetut ominaisuudet sisällään Objektivarasto. Apuohjelmia kertoa Pikatesti etukäteen, mihin teknologiaan näyttö kuuluu, jotta työkalu tietää jo, mikä ominaisuusjoukko on voimassa, eikä sen tarvitse arvailla, mikä lyhentää objektin oppimiseen kuluvaa aikaa.

Napauta täältä jos video ei ole saatavilla

Jokainen esine UFT tietueissa voi olla kymmeniä ominaisuuksia. Pelkästään verkkoympäristössä yksi painike voi näyttää sen nimen, HTML-tunnisteen, tyypin, luokan, indeksin ja paljon muuta. Kaikkien näiden tallentaminen jokaiselle objektille on teknisesti mahdollista, mutta harvoin hyödyllistä, kuten seuraava kuva osoittaa tyypillisestä Object Repository -merkinnästä.

Objektivarasto

If UFT yritti muistaa jokaisen objektin kaikki käytettävissä olevat ominaisuudet, objektisäilön koko kasvoi ja komentosarjan suoritus hidastui huomattavasti. Tämän välttämiseksi QTP ei tallenna kaikkia ominaisuuksia oletusarvoisesti – se tallentaa pienen, tyypillisen joukon kullekin objektityypille, yhden valitun joukon yksilöllinen tunniste mahdollista ilman lisäkustannuksia. Tämä ominaisuuksien lyhyt luettelo, joka päätetään erikseen kullekin ympäristölle ja objektiluokalle, määritetään objektin tunnistusasetuksissa, joita käsitellään seuraavaksi.

objekti Description: Pakolliset ja avustavat ominaisuudet

Kohteen ominaisuus ja sen arvo yhdessä muodostavat sen, mitä UFT kutsuu objekti Descriptioni — tarkka yhdistelmä, jota työkalu käyttää yhden elementin valitsemiseen sivun jokaisesta muusta objektista. Esimerkiksi WebButton-painikkeelle ominaisuus nimi arvon kanssa Kirjaudu on usein itsessään riittävä muodostamaan käyttökelpoisen objektin Descriptioni.

Voit tarkastella tai muuttaa tätä toimintaa avaamalla Työkalut > Objektin tunnistus sisällä UFTObjektin tunnistus -valintaikkunassa luetellaan kaikki ladatut ympäristöt; yhden valitseminen täyttää objektiluokat automaattisesti. UFT tukee sitä, ja oikealla oleva paneeli näyttää tarkalleen, mitkä ominaisuudet kyseisen luokan objekteille tallennetaan. Lista on jaettu kahteen ryhmään:

  1. Pakolliset ominaisuudet tallennetaan oletusarvoisesti jokaiselle kyseisen luokan objektille riippumatta siitä, tarvitaanko niitä sen erottamiseksi naapureistaan.
  2. Apuominaisuudet tallennetaan vain silloin, kun pakolliset ominaisuudet yksinään eivät pysty muodostamaan yksilöllistä kuvausta — UFT käy tätä listaa alaspäin yksi ominaisuus kerrallaan, kunnes objektista tulee yksilöllinen.

Verkkokuvan avulla sääntö on helpompi nähdä käytännössä.

objekti Descriptioni, pakolliset ja apuominaisuudet

  • UFT tallentaa aina verkkokuvan alt-tekstin, HTML-tunnisteen ja kuvatyypin, vaikka pelkkä alt-teksti olisi jo yksilöllinen.
  • Jos pakolliset ominaisuudet eivät voi luoda yksilöllistä kuvausta, UFT lisää luokan ominaisuuden apuluettelosta.
  • Kun ominaisuus tekee kuvauksesta ainutlaatuisen, UFT lopettaa uusien arvojen lisäämisen — se ohittaa tiedostonimen ja korkeuden, jos luokkaa oli jo riittävästi, ohittaa korkeuden, jos tiedostonimeä tarvittiin, ja niin edelleen.
  • Oletetaan, että vain luokan ominaisuus tallennetaan tallennushetkellä. Suorituksen aikana UFT ei enää erottele, mitkä ominaisuudet olivat pakollisia ja mitkä avustavia – se yksinkertaisesti vertaa jokaista tallennetun kuvauksen ominaisuutta suorituksenaikaiseen objektiin.
  • Jos yksikin tallennettu ominaisuus ei täsmää, vaihe epäonnistuu – yksilöllinen kuvaus on binäärinen, ei paras mahdollinen osuma.
Aspect Pakolliset ominaisuudet Avustavat ominaisuudet
Säilytettäessä Aina, jokaiselle kyseisen luokan objektille Vain silloin, kun pakolliset ominaisuudet eivät voi muodostaa yksilöllistä kuvausta
Määritetty Objektin tunnistus -valintaikkuna, pakollinen luettelo Objektin tunnistusvalintaikkuna, avustava luettelo
Käyttöjärjestys Opi ensin, ehdoitta Lisätään yksi kerrallaan, kunnes objekti on ainutlaatuinen
Suoritusaikainen käsittely Verrattuna samoihin kuin avustaviin ominaisuuksiin Verrattuna samoihin kuin pakolliset ominaisuudet

Alla oleva video käy läpi tämän pakollisen ja avustavan työnkulun alusta loppuun.

Objektin tunnistusikkuna Box ja Object Spy

Objektin tunnistus -valintaikkuna ei ole vain katseluikkuna – se on paikka, jossa testaaja säätää kuinka aggressiivisesti UFT tunnistaa koko ympäristön objektit. Ominaisuuden järjestäminen uudelleen, lisääminen tai poistaminen tässä muuttaa sitä, mitä kyseisen luokan jokaiselle objektille opitaan kyseisestä pisteestä eteenpäin, ei vain parhaillaan tallennettavalle objektille. Tyypillinen työnkulku näyttää tältä:

  1. avoin UFT ja mene Työkalut > Objektin tunnistus.
  2. Valitse ympäristö (verkko, Windows, Javaja niin edelleen) avattavasta valikosta.
  3. Valitse vasemmalla olevasta luettelosta objektiluokka, kuten WebButton tai WinEdit.
  4. Siirrä ominaisuuksia pakollisten ja avustavien luetteloiden välillä tai järjestele avustava luettelo uudelleen hallitaksesi, mitä ominaisuutta UFT yrittää ensin.
  5. Ota älykäs tunnistus käyttöön tai poista se käytöstä kyseisessä luokassa paneelin yläreunassa olevalla valintaruudulla.

Tässä tehdyt muutokset tulevat voimaan seuraavalla kerralla UFT oppii kyseisen luokan objektin — Objektitietovarastoon jo tallennetut merkinnät säilyttävät alkuperäisen kuvauksensa, kunnes objekti tallennetaan uudelleen tai päivitetään manuaalisesti.

Object Spy -työkalun käyttö ominaisuuksien tarkastamiseen

Ennen pakollisen tai avustavan luettelon muokkaamista useimmat testaajat tarkistavat, miltä objektin ominaisuudet todellisuudessa näyttävät Object SpyKun vakoilukohdistin osoittaa mihin tahansa testattavan sovelluksen ohjausobjektiin, sekä sen testiobjektin että ajonaikaiset ominaisuudet luetellaan rinnakkain sekä metodit. UFT voi kutsua sitä — hyödyllinen, kun pakollinen ominaisuus muuttuu jatkuvasti koontiversioiden välillä ja se on vaihdettava vakaampaan ominaisuus.

Järjestysnumerotunnisteet: indeksi, sijainti ja luontiaika

Joskus jopa jokainen pakollinen ja avustava ominaisuus jättää kaksi tai useampia objekteja näyttämään identtisiltä – esimerkiksi kolme valintaruutua, joilla on sama nimi, luokka ja otsikko. Juuri tässä tilanteessa UFT putoaa takaisin johonkin järjestysnumero, vara-arvo, joka luokittelee muuten identtiset objektit niiden sijainnin eikä ominaisuuksien perusteella.

Ordinaal Identifier Omaisuus Tilaus määritetty Pätee
indeksi indeksi Järjestä objekti lähdekoodissa alkaen nollasta Mikä tahansa objektiluokka
Sijainti Sijainti Ylhäältä alas, sitten vasemmalta oikealle näytöllä, alkaen kohdasta 0 Mikä tahansa objektiluokka
Luomisaika Luomisaika Järjestys, jossa selainikkuna avattiin, alkaen nollasta Vain selainobjektit

UFT oppii järjestysnumerotunnisteen vain, kun pakolliset ja avustavat ominaisuudet eivät todellakaan pysty erottamaan kahta objektia, koska arvo on suhteellinen ja voi muuttua, jos sivun asettelu muuttuu, vaikka itse objekti ei muuttuisi. Alla oleva VBScript-koodinpätkä käyttää Index-funktiota napsauttaakseen toista kahdesta identtisesti nimetystä linkistä.

Dim objBrowser, objPage
Set objBrowser = Browser("title:=Guru99 Bank")
Set objPage = objBrowser.Page("title:=Guru99 Bank")
' Index:=1 clicks the second Link named "Manage Order" (index starts at 0)
objPage.Link("name:=Manage Order", "index:=1").Click

Indeksi- ja sijaintiarvot ovat lausekkeessa nimetylle objektiluokalle ominaisia, joten Indeksi:=3 WebEdit-elementissä haku koskee vain WebEdit-objekteja, kun taas sama arvo yleisessä WebElement-elementissä lasketaan kaikkiin sivun verkko-objekteihin tyypistä riippumatta.

Missä älykäs tunnistaminen sopii

Objektin tunnistus UFT ei pysähdy opittuun kuvaukseen. Kun ainutlaatuista osumaa ei löydy, UFT käy prosessin läpi kiinteässä järjestyksessä: se ensin tarkistaa opitut pakolliset ja avustavat ominaisuudet, sitten mahdolliset visuaaliset relaatiotunnisteet ja lopuksi Älykäs tunnistus jos kyseinen mekanismi on käytössä luokalle, ja vain viimeisenä keinona järjestyslukutunnistetta.

Älykäs tunnistus (Smart Identification) sijoittuu tarkoituksella opitun kuvauksen ja järjestysnumerotunnisteen väliin. Se rakentaa ehdokaslistan uudelleen luokan ydinominaisuuksien avulla ja rajaa sitä valinnaisilla ominaisuuksilla, joten se voi usein palauttaa objektin, jonka opittu kuvaus on rikki – esimerkiksi uudelleennimetyn painikkeen – koskematta koskaan objektitietovarastoon. Koska tämä ylimääräinen hakuvaihe vie aikaa, useimmat tiimit ottavat sen käyttöön tunnistusherkille luokille ja nojaavat järjestysnumerotunnisteisiin vain silloin, kun sijainti on todella ainoa jäljellä oleva erottava tekijä, kuten nimeämättömien radiopainikkeiden pankissa.

UKK

Objektitietovarasto tallentaa jokaisen opitun testiobjektin ja sen tallennetut ominaisuudet. Objektin tunnistusasetukset, jotka avataan kohdasta Työkalut > Objektin tunnistus, hallitsevat ominaisuuksia. UFT tietueet kyseiseen tietovarastoon ensisijaisesti kullekin objektiluokalle.

UFT toimii visuaalisten relaatiotunnisteiden, älykkään tunnistuksen ja lopuksi järjestysnumerotunnisteen avulla. Jos mikään näistä ei tuota yhtäkään osumaa, vaihe epäonnistuu suorituksen aikana, koska mikään objekti ei täytä kaikkia tallennettuja ominaisuuksia.

Kaikkien käytettävissä olevien ominaisuuksien tallentaminen paisuttaisi Object Repositorya ja hidastaisi komentosarjojen suoritusta. UFT tallentaa pienen, tyypillisen joukon objektiluokkaa kohden ja lisää avustavia ominaisuuksia vain silloin, kun pakolliset ominaisuudet eivät pysty muodostamaan yksilöllistä kuvausta.

Kyllä. Tekoälyllä varustetut työkalut voivat tarkastella tuotantoliikennettä tai DOM-rakennetta ja ehdottaa vakaampia ja vähemmän hauraita ominaisuuksia ennen tallennusta. Ne voivat myös merkitä objekteja, joiden pakolliset ominaisuudet muuttuvat usein koontiversioiden välillä – testaajat tarkistavat silti ehdotukset.

Ei täysin. Itsekorjaavat paikantimet vähentävät uudelleennimettyjen tai siirrettyjen elementtien aiheuttamia virheitä, mutta järjestysnumerotunnisteet ratkaisevat silti objekteja, jotka ovat aidosti identtisiä jokaiselta ominaisuudeltaan, kuten useita nimeämättömiä valintaruutuja peräkkäin.

Tiivistä tämä viesti seuraavasti: