Descriptive Ohjelmointi QTP/UFT:ssä: Dynaaminen ja staattinen
Mikä on Descriptive ohjelmointi?
Descriptive-ohjelmointia käytetään operaatioiden suorittamiseen AUT:ssa olevalle objektille, jonka määritelmää ei ole tallennettu objektivarastoon. Tämän mekanismin avulla voit ohittaa tunnistuksen objektivarastosta ja toimittaa objektin Descriptioni itse lausunnossa.
Objektin nimeä käytetään yksinkertaisesti kuvaamaan objekti komentosarjassa sen kuvauksen kanssa objektivarastossa. Tämä tarkoittaa, että jos muutat objektin nimeä komentosarjassa ja objektivarastossa, komentosarjan pitäisi toimia. Katso seuraava video tästä konseptista
Napauta tätä jos video ei ole saatavilla
Video Highlights
- Poista objekti Description Agent Name Win Edit Box Objektivarastosta. Jos suoritat testin uudelleen, se epäonnistuu, koska se ei tunnista objektia. Tarkastellaan syytä, miksi komentosarja epäonnistuu
- Ajon aikana Micro Focus UFT tunnistaa toiminnon, joka suoritetaan WinEdit-ruudulle ja objektille Description Object Repositoryssa on tallennettu Agentin nimenä. Se käyttää tätä nimeä objektin jäljittämiseen objektiarkistossa. Vanhemmalla ei voi olla kahta aliobjektia samalla nimellä. Näin ollen QTP kartoittaa arkistossa olevan objektin yksilöllisesti. Sitten se käyttää objektivarastoon tallennettua kuvausta ja korvaa nimen kuvauksella. Tämän käskyn avulla se tunnistaa objektin testattavassa sovelluksessa
- Koska meidän tapauksessamme olimme poistaneet tämän objektin kuvauksen kokonaan, komentosarja epäonnistuu
- Mutta entä jos sen sijaan, että QTP korvaisi objektin kuvauksen, testaajana määrität objektikuvaukset suoraan komentosarjassasi. Tämä ei ole muuta kuin "Descriptive ohjelmointi"
Tyyppisiä Descriptive ohjelmointi
Voit käyttää Descriptohjelmointi kahdella tavalla
- Staattinen
- Dynaaminen
Staattinen Descriptive ohjelmointi
Staattisessa menetelmässä objektin tunnistamista varten määrität objektin ominaisuuden seuraavassa muodossa
property:=values,
Tätä muotoa kutsutaan ominaisuusarvopariksi ja se on suljettu käänteisillä pilkuilla
Jos esineesi käyttää useita kuvauksia tunnistamista varten, voit määrittää ne pilkuilla
Joten meidän tapauksessamme Agentin nimen kuvaus tulee
"nativeclass:=Edit", "attached text:=Agent Name:"
Dynaaminen Descriptive ohjelmointi
Toinen tapa tehdä sama toiminto on käyttää Dynamic Descriptive ohjelmointi
Jos komentosarjasi käyttää kuvaavaa ohjelmointiobjektiehdokasta useita kertoja, on erittäin väsyttävää määrittää kaikki ominaisuusarvoparit jokaiselle lauseelle
Tällaisissa tapauksissa voit käyttää Descriptioniluokka tarjoaa QTP
Syntaksi kuvausobjektin luomiseen on
Set MyDescription = Description.Create(); MyDescription("property").Value = "property-value";
Tämä on Dynaaminen menetelmä
Miksi käyttää Descriptive ohjelmointi?
Video-transkripti
- Miljoonan dollarin kysymys on, miksi käyttää DP:tä, kun objektintunnistusprosessia hoitaa QTP
- Oletetaan, että sinut on määrätty testaamaan työportaalia. Kirjoitat hakukyselyn portaaliin ja
- testisi odottaa sinun valitsevan kaikki käytettävissä olevat työt .ja napsauta hakea työtä
- Mutta heijastuvien töiden lukumäärä riippuu hakukyselystä ja skriptin suorittamishetkellä käytettävissä olevista töistä, mutta ei ole mitään keinoa ennustaa etukäteen näkyvien töiden määrää.
- Tällaisissa tapauksissa voit käyttää kuvaavaa ohjelmointia. Vaikka et tiedä valintaruutujen lukumäärää ja nimiä, tiedät objektien luokan nimellä "WebCheckBox"
- Voit käyttää ChildObject-menetelmä palauttaa tietylle vanhemmalle kuuluvia objekteja
- Koodirivi, kuten -
Set allObjects = Browser("Jobs").Page("QTP").ChildObjects()
- Palauttaa kaikki tämän sivun aliobjektit.
- Mutta haluamme vain WebCheckinBox esineitä. Tätä varten voimme luoda suodattimen luontiobjektin ja asettaa sen ominaisuuden webiksi -valintaruudun ja välittää tämän suodattimen argumentiksi ChildObjects-menetelmälle.
- Tässä tapauksessa vain valintaruudut palautetaan.
- Seuraavaksi voit kirjoittaa tällaisen koodin, joka käyttää koko valintaruutujen kokoelmaa nollasta alkaen ja asettaa kaikki valintaruudut PÄÄLLE.
- Seuraavaksi voit suorittaa testin napsauttamalla Käytä-painiketta
- Voit myös käyttää Descriptive Ohjelmointi suorittamaan kohteita, joita on vaikea tallentaa, kuten automaattinen piilotuspaneelit, objektit muuttuvilla hierarkioilla, sisäkkäiset sisäiset objektit, alivalikot.
- Voit myös tehdä edistyneitä merkkijonokäsittelyjä käyttämällä kuvaavaa ohjelmointia
- Yhdessä indeksiominaisuuden kanssa kuvaava ohjelmointi voi olla erittäin hyödyllinen vaikeiden kohteiden tunnistamisessa.
- Jos käytät ohjelmallista kuvausta objektille objektihierarkiassa, sinun on käytettävä kuvausohjelmointia seuraaville aliobjekteille
- Esimerkiksi sivuobjektille käytettiin kuvaavaa ohjelmointia, mutta seuraavalle aliobjektille käytetään WinEdit Object Repositorya, mikä on virheellinen
- Päinvastoin, tässä sekä Page- että WinEdit-ohjelmassa käytetään kuvaavaa ohjelmointia, mikä on oikein