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.

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ä.
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:
- Pakolliset ominaisuudet tallennetaan oletusarvoisesti jokaiselle kyseisen luokan objektille riippumatta siitä, tarvitaanko niitä sen erottamiseksi naapureistaan.
- 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ä.
- 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ä:
- avoin UFT ja mene Työkalut > Objektin tunnistus.
- Valitse ympäristö (verkko, Windows, Javaja niin edelleen) avattavasta valikosta.
- Valitse vasemmalla olevasta luettelosta objektiluokka, kuten WebButton tai WinEdit.
- Siirrä ominaisuuksia pakollisten ja avustavien luetteloiden välillä tai järjestele avustava luettelo uudelleen hallitaksesi, mitä ominaisuutta UFT yrittää ensin.
- 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.


