Toiminnot sisällä QTP/UFT esimerkin kanssa

⚡ Älykäs yhteenveto

Toiminnot sisällä UFT/QTP Jaa testiskripti loogisiin, uudelleenkäytettäviin yksiköihin, jotta testaajat voivat rakentaa, ylläpitää ja jakaa automaatiota nopeammin. Tällä sivulla selitetään kolme toimintotyyppiä, niiden jakaminen ja kutsuminen sekä datan välittäminen toimintojen välillä.

  • 🧩 Määritelmä: Toiminto ryhmittelee joukon testausvaiheita yhdeksi modulaariseksi, uudelleenkäytettäväksi yksiköksi testin sisällä. UFT/QTP skriptejä.
  • 🔁 Uudelleenkäytettävät toiminnot: Kutsu samaa toimintoa useita kertoja, samassa testissä tai mistä tahansa muusta testistä.
  • 🔒 Kertakäyttöiset toiminnot: Suorita vain kerran ja vain sen testin sisällä, jossa ne luotiin.
  • 🌐 Ulkoiset toimet: Uudelleenkäytettävästä toiminnosta tulee vain luettavissa oleva ulkoinen toiminto, kun jokin toinen testi kutsuu sitä.
  • ✂️ Jakaminen: Jaa suuri toiminto itsenäisiksi sisarustoiminnoiksi tai sisäkkäisiksi vanhemman ja lapsen yksiköiksi.
  • 📞 Kutsuvat toiminnot: Lisää uusi toiminto, toiminnon kopio tai kutsu olemassa olevaan toimintoon.
  • 📤 parametrit: Välitä syöte- ja tulosarvoja toimintojen välillä RunAction-lausekkeen avulla.
  • 🗂️ Datalehdet: Käytä Globaali-taulukkoa testilaajuisille tiedoille ja kunkin toiminnon Paikallinen-taulukkoa yksityisille tiedoille.

Mikä on toiminto UFT/QTP?

Toiminnot in UFT/QTP jakaa testin "loogisiin yksiköihin" tai "liiketoimintaprosesseihin". Jokainen toiminto ryhmittelee yhteen vaiheet, jotka suorittavat yhden tunnistettavan tehtävän, kuten sisäänkirjautumisen, lennon etsimisen tai lipun varaamisen. Toiminnot auttavat luomaan modulaarisemman ja tehokkaamman skriptin.

Kun skripti luodaan juuri, se koostuu vain yhdestä toiminnosta. Voit lisätä useampia toimintoja Micro Focus -toimintoosi. UFT vaatimusten mukainen komentosarja, ja jokainen lisätty toiminto pitää oman logiikkansa ja paikalliset tiedot erillään muusta testistä.

Pitkän skriptin jakaminen toimintoihin kannattaa heti, kun testiä on muutettava. Testaaja voi päivittää yhden toiminnon, kuten kirjautumissekvenssin, koskematta muiden toimintojen haku- tai uloskirjautumislogiikkaan. Tämä eristäminen muuttaa toiminnot myös uudelleenkäytettäviksi rakennuspalikoiksi, joita muut skriptit voivat kutsua sen sijaan, että ne tallentaisivat samat vaiheet uudelleen.

Tyypillinen lentovarausskripti esimerkiksi jakautuu siististi kirjautumistoimintoon, lentohakuun ja lipun varaamiseen. Jokaisella on omat vaiheensa ja paikalliset tietonsa, joten testaajan, jonka tarvitsee vain varmistaa kirjautuminen, ei tarvitse tallentaa tai ylläpitää varausprosessia lainkaan.

Toimintotyypit kohdassa UFT/QTPUudelleenkäytettävä, kertakäyttöinen ja ulkoinen

UFT/QTP tukee kolmenlaisia ​​toimintoja, ja valitsemasi tyyppi määrittää, voidaanko toiminto jakaa skriptien kesken vai pysyykö se yksityisenä siinä testissä, jossa se luotiin.

Toiminnan tyyppi Missä se voi toimia Muokattavissa Calling Testissä
Uudelleen käytettävä Sama testi, useita kertoja tai mikä tahansa muu testi Kyllä, sen omistavan testin perusteella
Ei uudelleenkäytettävä Vain se testi, jossa se luotiin, ja vain kerran Kyllä
Ulkoinen uudelleenkäytettävä Kutsutaan toisesta testistä jaettuna, tallennettuna toimintona Ei, vain luku -tilassa; vain sen paikallinen datataulukon kopio on muokattavissa

Uudelleenkäytettävästä toiminnosta tulee ulkoinen toiminta sillä hetkellä, kun jokin toinen testi kutsuu sitä sen omistavan testin sijaan. Ulkoiset toiminnot pysyvät kutsuvassa testissä vain luku -tilassa, koska jaettua toimintoa voivat käyttää kymmenet skriptit samanaikaisesti, ja jos jokainen kutsuja voi muokata vaiheita, muut toimivat virheellisesti. Voit silti parametroida kutsun ja työskennellä paikallisesti sen datataulukon kopion kanssa.

Nykyään uusi toiminto pidetään käyttökelvottomana niin kauan kuin sen logiikka on edelleen yhden testin alainen. PromoTee se uudelleenkäytettäväksi heti, kun toinen skripti tarvitsee samat vaiheet, ja odota sen toimivan ulkoisena, vain luku -tilassa olevana toimintona heti, kun toinen skripti kutsuu sitä.

Toimintojen jakaminen, kopioiminen ja kutsuminen UFT

Kun toiminta kasvaa, pidäping jokainen vaihe yhdessä paikassa vaikeuttaa skriptin virheenkorjausta ja uudelleenkäyttöä. UFT voit jakaa olemassa olevan toiminnon kahteen osaan, kun siitä tulee hankala.

  • Itsenäinen (sisarus)jako: Valittu toiminto jakautuu kahdeksi erilliseksi toiminnoksi, jotka suoritetaan peräkkäin, ja kumpikin pysyyping oma paikallinen datataulukko.
  • Sisäkkäinen (vanhempi-lapsi) -jako: Valittu toiminto jakautuu päätoimintoon, jonka viimeinen vaihe kutsuu toista, alitoimintoa, säilyttäen loogisen riippuvuuden näiden kahden välillä.

Kun teot ovat olemassa, UFT tarjoaa kolme tapaa tuoda toiminto testiin liite valikko:

  • Lisää kutsu uuteen toimintoon: Luo uuden, tyhjän toiminnon nykyisen testin sisään.
  • Lisää toiminnon kopiointikutsu: Kopioi olemassa olevan toiminnon kokonaisuudessaan, mukaan lukien tarkistuspisteet, parametrisoinnin ja sen Data Table -välilehden, kutsuvaan testiin. Kopio on täysin itsenäinen, joten muokkaukset eivät koskaan vaikuta alkuperäiseen eivätkä ne muutu alkuperäisen kanssa. Voit kopioida sekä uudelleenkäytettäviä että ei-uudelleenkäytettäviä toimintoja.
  • Lisää kutsu olemassa olevaan toimintoon: Lisää vain luku -tilassa olevan kutsun toiseen testiin tallennettuun uudelleenkäytettävään toimintoon. Sitä voi muokata vain siinä testissä, jossa se luotiin, mikä pitää jokaisen kutsujan synkronoituna ja helpottaa suurten testisarjojen ylläpitoa.

Jokainen kutsu kootaan yhteen RunAction lausunto asiantuntijalausunnossa:

' Calls Action2, which is stored in Test2, running it for one iteration
RunAction "Action2[Test2]", oneIteration

Toiminto suoritetaan niin monta kertaa kuin sen toimintokutsuominaisuudet määrittävät. Jos esimerkiksi toiminto2 on asetettu suoritettavaksi jokaisella Test2:n tietotaulukon iteraatiolla, mutta testi1:n kutsuva toiminto1 suoritetaan vain kerran, toiminto2 suoritetaan silti vain kerran, koska itse kutsu käynnistetään vain kerran.

💡 Vinkki: Kun testi sisältää useita toimintoja, avaa Testivirta ruudusta Näytä-valikosta vetääksesi ja järjestääksesi ne uudelleen. Tämä muuttaa järjestystä, jossa UFT suorittaa toiminnot muokkaamatta yksittäisten toimintojen sisällä olevia vaiheita.

Alla oleva video perustuu aiemmissa opetusohjelmissa luotuun viisivaiheiseen kirjautumisskriptiin Lennon varaus ja käy läpi toimintojen luomisen, jakamisen ja kutsumisen alusta loppuun. Se on pisin video tässä UFT/QTP opetusohjelmasarja, joten muistiinpanojen tekeminen katselun aikana on hyödyllistä.

Napauta täältä jos video ei ole saatavilla

Parametrien välittäminen ja tulosarvojen tallentaminen toimintojen välillä

Toiminnon kutsumisen lisäksi useimpien oikeiden skriptien on siirrettävä dataa siihen ja luettava tulos takaisin. UFT antaa jokaiselle toiminnolle omat syöte- ja tulosparametrit sekä useita tapoja säilyttää palauttamansa arvot.

Parametrien välittäminen toiminnolle ja toiminnolta

Ihan kuin funktiot tai metodit Ohjelmointikielissä toiminto voi määritellä syötteen ja tulosteen parametritTällä parametrilla ei ole yhteyttä Testitietojen parametrointi aiemmin käsitelty; parametrit kuuluvat tässä itse toimintoon, eivät tietotaulukon sarakkeeseen. Määritä ne Muokkaa > Toiminto > Toiminnon ominaisuudettai napsauttamalla toimintoa hiiren kakkospainikkeella avainsananäkymässä. Välitä arvot kutsussa käyttämällä tätä syntaksia:

' Passes an input value and captures the action's output into myResult
RunAction "Action1", oneIteration, "testuser", myResult

Toiminnon lähtöarvon tallentaminen

Riippuen siitä, mitä muu komentosarja tarvitsee, voit säilyttää toiminnon palauttaman arvon yhdessä kolmesta paikasta:

  • Muuttuja: RunAction "Action1", oneIteration, "testuser", myResult tallentaa tulosteen suoraan myResult.
  • An ympäristömuuttuja: luo käyttäjän määrittämä muuttuja alle Tiedosto > Asetukset > Ympäristö, kirjoita sitten RunAction "Action1", oneIteration, "testuser", Environment("env_var").
  • Tietotaulukon sarake: RunAction "Action1", oneIteration, "testuser", DataTable("A", dtGlobalSheet) kirjoittaa tuloksen suoraan globaalille taulukkoon.

Globaalit ja paikalliset datalehdet

Toiminnot lukevat ja kirjoittavat testidataa kahdenlaisten taulukoiden kautta. Globaali datalehti on ainutlaatuinen koko testille; mikä tahansa toiminto voi lukea siitä tai kirjoittaa siihen, ja sen nimi on aina ”Globaali”. Paikallinen käyttöturvallisuustiedote on toimintoa kohden ainutlaatuinen, on nimetty kyseisen toiminnon mukaan, ja vain sen oma toiminto voi lukea tai kirjoittaa sen.

Toiminnon lopettaminen ja iteraation hallinta

Kun vaiheen on pysäytettävä toiminto aikaisin sen sijaan, että se annettaisiin suorittaa loppuun, UFT tarjoaa neljä lausuntoa:

  • ExitAction — pysäyttää vain nykyisen toiminnon.
  • ExitActionIteration — pysäyttää toiminnon nykyisen iteraation ja siirtyy seuraavaan.
  • ExitRun — pysäyttää koko testiajon välittömästi.
  • ExitGlobalIteration — pysäyttää nykyisen globaalin testi-iteraation ja siirtyy seuraavaan.

Suorittaessaan a UFT/QTP käsikirjoitus joka käyttää toimintoja, pidä mielessä globaalit ja paikalliset iteraatiot, koska molemmat vaikuttavat siihen, kuinka monta kertaa toiminto todellisuudessa suoritetaan. Voit muuttaa kutsutun toiminnon toistumistiheyttä avaamalla Toimintokutsun ominaisuudet > Suorita välilehti ja iteraatiotilan asettaminen siellä.

⚠ Yleinen sudenkuoppa: Kutsuttu toiminto, joka on asetettu suoritettavaksi jokaisella paikallisella iteraatiolla, mutta jonka käynnistää vain kerran suoritettava päätoiminto, suoritetaan silti vain kerran. Vahvista sekä päätoiminnon globaalien iteraatioiden määrä että alitoiminnon kutsuominaisuudet ennen kuin oletat kutsutun toiminnon toistuvan.

UKK

Toiminto on sisäänrakennettu UFT ominaisuus, jolla on oma objektisäilö ja datataulukko, ja sitä voidaan käyttää uudelleen tai ei. toiminto on pelkkää VBScriptiä, aina uudelleenkäytettävää, eikä sillä ole omaa objektisäilöä eikä datataulukkoa.

Kyllä. Avaa toiminnon ominaisuudet ja ota uudelleenkäytettävä merkintä käyttöön milloin tahansa. Jos merkitset aiemmin uudelleenkäytettävän toiminnon ei-uudelleenkäytettäväksi, kun muut testit kutsuvat sitä edelleen, kutsuvat testit epäonnistuvat ja UFT näyttää varoituksen, kunnes puhelut on poistettu.

Toiminnot tallennetaan testin mukana .mtr/.mts-toimintokansioina erillisten skriptitiedostojen sijaan. Funktiokirjastot taas tallennetaan erillisinä .vbs- tai .qfl-tiedostoina, joihin mikä tahansa testi voi liittää ja käyttää uudelleen.

Kyllä. Tekoälyllä avustetut testisuunnittelutyökalut voivat skannata tallennetun työnkulun ja ehdottaa loogisia keskeytyskohtia, kuten kirjautumista, hakua ja uloskirjautumista, vaihtoehtoisiksi toimiksi. Testaajan tulisi silti varmistaa, että jako vastaa todellisia uudelleenkäyttötarpeita ennen sen viimeistelyä.

Se auttaa. Itsekorjautuva objektin tunnistus linkittää siirretyn tai uudelleennimetyn ohjausobjektin uudelleen toiminnon sisällä sen sijaan, että se epäonnistuisi kokonaan, mikä vähentää useiden skriptien jakamien uudelleenkäytettävien ja ulkoisten toimintojen ylläpitokuormaa. RevKatsele parantuneita esineitä ennen kuin luotat niihin täysin.

Tiivistä tämä viesti seuraavasti: