learn advanced soapui groovy scripting concepts soapui tutorial 9
Prethodni vodiči za SoapUI uvod su u SoapUI i njegove koncepte programiranja. Od sada ćemo prijeći na naprednije koncepte Groovy skriptiranja. Budimo ovo s Izjave uvjetnog toka - i logičke i iterativne izjave. Zatim ćemo prijeći na prikupljanje nizova.
Ovo je 9. tutorial u našem Serija tutorijala za SoapUI .
Uvjetni izrazi koriste se za nadzor tijeka izvršenja. Evo različitih vrsta uvjetnih izjava u Groovyju.
Što ćete naučiti:
- # 1. Kontrolni ili logički iskazi:
- # 2. Izjave u petlji ili ponavljanje:
- # 3. Zbirka nizova:
- Zaključak
- Preporučena literatura
# 1. Kontrolni ili logički iskazi:
Ove izjave rezultiraju istinitim ili netačnim temeljem logičkih uvjeta. Oni su I, ILI I NE. Simboli koji se koriste su ‘&& (i)’, ‘|’ | i ‘! (Usklik) ’. Ponašanje je spomenuto u tablici istine:
Tabela istine operatora 'I':
nedefinirana referenca na c ++ funkciju
Tabela istinitosti operatora „ILI“:
'NOT' operator u svrhu negacije
Uvjetna izjava: programski jezici podržavaju sljedeće uvjetne izjave:
- Ako ... drugo izjava
- If ... else if ... else izjava
- Ternarni operater
- Izjava o prebacivanju
A) ako ... inače blokira sintaksu:
ako
{
}
Drugo
{
}
U ovoj će se sintaksi izvršiti zadani izraz kada ispuni vrijednost true. Izjave moramo priložiti kovrčavim zagradama ako blok sadrži više od jednog retka. To upućuje da se cijeli blok treba izvršiti na temelju stanja.
Pogledajte primjer isječka koda.
int a=100 int b=200 if (a>b) { log.info('B is greater than A'); } else { log.info('A is greater or both are equal'); }
An ako ... drugo ... izraz mora sadržavati samo jedan ELSE blok.
B) Više uvjetnih blokova: if ... else if ... else sintaksa
ako
{
}
Inače ako
{
}
Drugo
{
}
Ako ... drugo ako ... drugo Izjava se malo razlikuje od ako ... drugo ... izjava- u smislu da ima inače ako blok. Ovaj se blok koristi za dodavanje više uvjeta. Pogledajte sljedeći primjer.
int a=100 int b=200 int c=300 if (a>b && a>c) { log.info('A is greater than B and C'); } else if (b>a && b>c) { log.info('B is greater than A and C'); } else { log.info('C is greater than A and B or All are equal numbers'); }
I pogledajte izlaznu snimku zaslona za gornju skriptu: Također, upotrijebite ovo kao referencu i za primjer boolen operatora:
C) Ternarni operater:
Ovaj operater radi slično ako ... drugo izjava. Ima dva operanda, poput upitnika (TRUE) i dvotačke za FALSE / zadane izjave.
def A = 100
def B = (A> 100) ? 'PASS': 'FAIL'
log.info (B)
Evo snimke zaslona za gornju skriptu.
D) Kućište prekidača: Ova izjava omogućuje više uvjetnih grana s različitim vrijednostima. Također podržava usporedbu referenci predmeta klase, regularnih izraza, kolekcija poput nizova, popisa itd.
Sklopka
{
slučaj :
;
pauza;
slučaj :
;
pauza;
zadano:
;
}
The slučaj izjave uspoređuju vrijednosti s sklopka vrijednost predmeta. Ako se podudara, tada se izvršava odgovarajući blok slučaja. Jednom kad se blok izvrši, treba ga zaustaviti ključnom riječi 'break'. Ako smo propustili ključnu riječ 'break' na kraju izvoda slučaja, izvršenje će se premjestiti na sljedeći iskaz slučaja - a to možda neće biti potrebno. U slučaju da nijedan slučaj nije istinit, zadano blok će se izvršiti. Imajte na umu da Groovy podržava sve glavne operatore i ključne riječi jer su ugrađeni u java knjižnice.
def country='India' switch(country) { case 'Japan': log.info('Country matched with 1st case statement'); break; case 'Australia': log.info('Country matched with 2st case statement'); break; case 'India': log.info('Country matched with 3st case statement'); break; default: log.info('None of the matches available :('); }
Here’s the output screenshot for the above script.
# 2. Izjave u petlji ili ponavljanje:
Oni omogućuju ponavljanje kad god je to potrebno, a posebno su korisni za testiranje na temelju podataka.
Na primjer, pretpostavimo da u excel datoteci imamo nekoliko poštanskih brojeva. Da biste iz Excelove datoteke jedan po jedan preuzeli sve poštanske brojeve i proslijedili ih servisu, tj. GetSuppliersZipcode , možemo koristiti iterativne izjave. SoapUI također nudi alternativnu značajku koja se naziva koraci testiranja izvora podataka i petlje izvora podataka (dostupno samo u probnoj verziji SoapUI Pro i licenciranim verzijama.)
U groovy skripti možemo koristiti ove sljedeće iterativne izjave:
- Za petlju
- Dok petlja
Za petlju:
za (;;)
{
;
}
U gornjoj sintaksi inicijalizacija označava početnu točku petlje i na temelju petlje uvjeta nastavit će ili zaustaviti izvršenje.
Pogledajte donju skriptu
za (int i = 1; i<=10; i++)
{
log.info (‘Petlja ponovljena‘ + i + ‘puta’);
}
Iznad skripte će se dobiti rezultati kao što je prikazano na sljedećem snimku zaslona.
Sada se poslužimo kontrolnom izjavom i iterativnom izjavom u našem stvarnom svijetu testiranja. Slijedite korake u nastavku:
- Dodajte testnicu sa željenim imenom. Stvorio sam kao 'T9_GetSupplierByZipCode_TestCase'.
- Zatim dodajte svojstvo pod nazivom 'Property_Zipcode'
- Dodajte korak zahtjeva za test za uslugu “GetSupplierByZipCode” i stavite ime svojstva u zahtjev kao što je prikazano na snimci zaslona.
Dodajte korak testiranja groovy skripte kao što je prikazano na sljedećem snimku zaslona.
U groovy editor skripti napišite sljedeću skriptu.
for (int zipCode=1; zipCode5) { log.info('**************Stopped Execution*************'); break; } testStep.run(testRunner,context); log.info('Executed ' + zipCode + ' times') }
Sljedeći rezultat primljen je u zapisnik, kao i na zaslon odgovora na uslugu.
(Kliknite sliku za uvećani prikaz)
Petlja 'while':
Sintaksa:
dok
{
;
}
Gore navedena logika može se implementirati i pomoću petlje 'while'.
Stoga je suština da se iterativna izjava može koristiti za:
- Izvršite test slučajeve ili korake ispitivanja više puta
- Kontrolirajte tijek izvršenja putem kontrolnih naredbi.
# 3. Zbirka nizova:
Zbirka nizova pomaže pohraniti više vrijednosti u jednu varijablu ili objekt. Indeks niza prema zadanim postavkama započinje s nulom i taj indeks s imenom polja moramo koristiti za pristup odgovarajućoj vrijednosti pohranjenoj u polju. Sintaksa za deklariranje nizova u groovy skripti:
arrayName = novi objekt (5) ili,
arrayName = novi objekt (10) () ili,
arrayName = novi objekt (10) (10) ()
Bilješka : Dok deklariramo nizove, moramo odrediti početnu veličinu, u protivnom će se pojaviti pogreška pri kompajliranju. Evo jednostavnog primjera za jednodimenzionalni niz.
ArrayObj = novi objekt (5);
ArrayObj (0) = “Testcase1”;
ArrayObj (1) = “Testcase2”;
ArrayObj (2) = “Testcase3”;
ArrayObj (3) = “Testcase4”;
ArrayObj (4) = “Testcase5”;
Sada ćemo to implementirati u naše redovite korake ispitivanja. Dakle, dodajte svojstvo, zahtjev za test i korak testiranja skripte u paket za testiranje projekta, kao što je prikazano na sljedećem snimku zaslona.
A zatim dvaput kliknite korak testiranja skripte i napišite sljedeću skriptu.
def MAX_LIMIT = 5 def zipCodes = new Object(MAX_LIMIT) zipCodes(0) = '92704' zipCodes(1) = '99362' zipCodes(2) = '31401' zipCodes(3) = '90247' zipCodes(4) = '87102' int i=0; while (i<5) { if (i<5) { testRunner.testCase.testSteps('Properties'). setPropertyValue('Property_Zipcode',zipCodes(i)); def testStep = testRunner.testCase.testSteps('GetSupplierByZipCode'); testStep.run(testRunner,context); log.info('Loop executed ' + i + ' times'); } i++; } log.info('Testcase execution is completed....');
In this script, we initialized array object as 5 and assigned five zip codes in each array location respectively. Next part of the script is iterative block. Here we iterate the loop up to 5 times. Each time array value will be assigned to the property and then move to GetSupplierByZipCode web service to pass this array value in the request. After that, service step will be executed with the zip code. Finally we will get the following message in the log as shown in the screenshot.
Dakle, nizovi su vrlo korisni za obradu više elemenata različitih vrsta. Više prakse potaknut će bolje razumijevanje i jednostavnost upotrebe.
Zaključak
To je bio sveukupni uvod s primjerima uvjetnih ili logičkih blokova koji uključuju IF ... ELSE, prekidač i ternarne izjave. Ovim iskazima upravljaju logički operatori poput AND, OR, NOT. U usporedbi s blokom 'prebaci' blok 'ako' je brz i jednostavan. Za obradu više zbirki poput nizova za ponavljanje postupka testiranja, izjave petlje su ključne.
Sljedeći vodič za SoapUI br. 10 : U sljedećem postu naučit ćemo „Objektno orijentirano Groovy skriptiranje u SoapUI“.
Korisniji koncepti dolaze u sljedećim vodičima za SoapUI Groovy Script. Nastavite čitati i podijelite svoja iskustva i upite u komentarima u nastavku.
Preporučena literatura
- Kako postupati s iznimkom u Groovy skriptama SoapUI - Vodič za SoapUI br. 11
- Kako napisati osnovnu Groovy skriptu u SoapUI - Tutorial br. 6 za SoapUi
- Kako koristiti svojstva u SoapUI Groovy skripti - Vodič za SoapUI br. 7
- Dubinski vodiči pomračenja za početnike
- 4 važne značajke SoapUI Pro za profesionalnu publiku - Vodič za SoapUI br. 12
- 15+ vodiča za SoapUI: Najbolji alat za testiranje API-ja za web usluge
- Korak po korak Postupak preuzimanja i instalacije SoapUI - Vodič za SoapUI br. 3
- Kratki vodič za SoapUI za pohranu podataka o zahtjevima i odgovorima u datoteku - Vodič za SoapUI # 15