learn advanced soapui groovy scripting concepts soapui tutorial 9
Prejšnje vadnice SoapUI so bile uvod v program SoapUI in njegove koncepte programiranja. Odslej se bomo lotili naprednejših konceptov skriptiranja Groovy. Bodimo to Stavki pogojnega toka - tako logične kot iterativne stavke. Potem bomo prešli na zbirko nizov.
To je 9. vadnica v naši Serija vadnic SoapUI .
Pogojni stavki se uporabljajo za nadzor poteka izvedbe. Tu so različne vrste pogojnih stavkov v Groovyju.
Kaj se boste naučili:
- # 1. Nadzorni ali logični stavki:
- # 2. Looping ali ponovitvene izjave:
- # 3. Zbirka nizov:
- Zaključek
- Priporočeno branje
# 1. Nadzorni ali logični stavki:
Rezultat teh izjav je true ali false glede na logične pogoje. So IN, ALI IN NE. Uporabljeni simboli so '&& (in)', '|' | in ‘! (Klicaj) “. Obnašanje je omenjeno v tabeli resnic:
Tabela resnic operaterja:

Tabela resnic operaterja »ALI«:

Operator „NOT“ za namen negacije
Pogojna izjava: programski jeziki podpirajo naslednje pogojne stavke:
- Če ... drugače izjava
- Če ... drugače, če ... drugače izjava
- Ternarni operater
- Izjava o preklopu
A) če ... drugače blokira sintakso:
če
{
}
Drugače
{
}
V tej sintaksi, ko se izpolni true, se bo dana izjava izvedla. Če blok vsebuje več kot eno vrstico, moramo izjave obdati z zavitimi oklepaji. To navodi, naj se celoten blok izvede na podlagi pogoja.
Oglejte si primer kode.
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 če potem… stavek mora vsebovati samo en blok ELSE.
B) Več pogojnih blokov: sintaksa if ... else if ... else
če
{
}
V nasprotnem primeru
{
}
Drugače
{
}
Če ... drugače, če ... drugače izjava se malo razlikuje od če potem… izjava - v smislu, da je sicer če blok. Ta blok se uporablja za dodajanje več pogojev. Oglejte si naslednji primer.
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'); } In poglejte izhodni posnetek zaslona za zgornji skript: Uporabite ga tudi kot referenco za primer boolen operaterja:

C) Ternarni operater:
Ta operater deluje podobno če potem izjavo. Ima dva operanda, kot sta vprašaj (TRUE) in dvopičje za FALSE / privzete stavke.
def A = 100
def B = (A> 100) ? “PASS”: “FAIL”
log.info (B)
Tu je posnetek zaslona za zgornji skript.

D) Ohišje stikala: Ta stavek omogoča več pogojnih vej z različnimi vrednostmi. Podpira tudi primerjavo referenc predmetov razreda, regularnih izrazov, zbirk, kot so nizi, seznami itd.
Preklopi
{
Ovitek :
;
odmor;
Ovitek :
;
odmor;
privzeto:
;
}
The Ovitek izjave primerjajo vrednosti z stikalo vrednost primera. Če gre za ujemanje, se izvede ustrezen blok primera. Ko je blok izveden, ga je treba ustaviti s ključno besedo 'break'. Če smo na koncu stavka primera zamudili ključno besedo »break«, bo izvedba premaknjena na naslednjo izjavo o primeru - in to morda ne bo potrebno. Če noben od primerov ni resničen, privzeto blok bo izveden. Upoštevajte, da Groovy podpira vse glavne operaterje in ključne besede, saj so vključene v knjižnice java.
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. Looping ali ponovitvene izjave:
Ti omogočajo ponavljanje, kadar koli to potrebujemo, in so še posebej koristni za testiranje na podlagi podatkov.
Denimo, da imamo v datoteki excel nekaj poštnih številk. Če želite iz datoteke excel pridobiti vse poštne številke eno za drugo in jih poslati servisu, tj. GetSuppliersZipcode , lahko uporabimo iterativne izjave. SoapUI ponuja tudi nadomestno funkcijo, imenovano preskusni koraki za vir podatkov in zanke vira podatkov (na voljo samo v preskusni in licenčni različici SoapUI Pro).
V groovy skriptu lahko uporabimo te iterativne izjave:
- Za zanko
- Medtem ko zanka
Za zanko:
za (;;)
{
;
}
V zgornji sintaksi inicializacija označuje začetno točko zanke in bo na podlagi pogojne zanke nadaljevala ali ustavila izvajanje.
Glejte spodnji skript
za (int i = 1; i<=10; i++)
{
log.info (‘Loop Iterated‘ + i + ‘times’);
}
Zgornji skript bo ustvaril rezultate, kot je prikazano na naslednjem posnetku zaslona.

Zdaj pa uporabimo izjavo o nadzoru in ponovitev v našem resničnem svetu testiranja. Sledite spodnjim korakom:
- Dodajte Testcase z želenim imenom. Ustvaril sem kot “T9_GetSupplierByZipCode_TestCase”.
- Nato dodajte lastnost z imenom 'Property_Zipcode'
- Dodajte korak zahteve za preizkus za storitev »GetSupplierByZipCode« in ime zahteve vnesite v zahtevo, kot je prikazano na posnetku zaslona.

Dodajte testni korak groovy skripta, kot je prikazano na naslednji sliki zaslona.
najboljše spletno mesto za brezplačno gledanje anime

V urejevalnik groovy skript napišite naslednji skript.
for (int zipCode=1; zipCode5) { log.info('**************Stopped Execution*************'); break; } testStep.run(testRunner,context); log.info('Executed ' + zipCode + ' times') } Naslednji rezultat je prejet v dnevnik in na zaslon z odzivom storitve.
(Kliknite sliko za povečavo)

Zanka »while«:
Sintaksa:
medtem
{
;
}
Zgornjo logiko lahko izvedemo tudi s pomočjo zanke »while«.
Bistvo je torej, da se s ponovitveno izjavo lahko:
- Izvedite testne primere ali preizkusne korake večkrat
- Nadzirajte potek izvedbe s kontrolnimi stavki.
# 3. Zbirka nizov:
Zbirka matric pomaga shraniti več vrednosti v eni spremenljivki ali predmetu. Indeks matrike se privzeto začne pri nič in ta indeks z imenom polja moramo uporabiti za dostop do ustrezne vrednosti, shranjene v matriki. Sintaksa za razglasitev nizov v groovy skriptu:
arrayName = nov objekt (5) ali,
arrayName = nov objekt (10) () ali,
arrayName = nov objekt (10) (10) ()
Opomba : Med prijavljanjem nizov moramo določiti začetno velikost, sicer bo prišlo do napake pri prevajanju. Tu je preprost primer za enodimenzionalno matriko.
ArrayObj = nov objekt (5);
ArrayObj (0) = “Testcase1”;
ArrayObj (1) = “Testcase2”;
ArrayObj (2) = “Testcase3”;
ArrayObj (3) = “Testcase4”;
ArrayObj (4) = “Testcase5”;
Zdaj pa to izvedimo v naših rednih preizkusnih korakih. Torej dodajte lastnost, preizkusno zahtevo in preskusni korak skripta v paket za preizkušanje projekta, kot je prikazano na naslednji sliki zaslona.

Nato dvokliknite korak preizkusa skripta in napišite naslednji skript.
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.
Polja so torej zelo koristna za obdelavo več elementov z različnimi vrstami. Več prakse bo spodbudilo boljše razumevanje in enostavnost uporabe.
Zaključek
To je bil splošen uvod s primeri pogojnih ali logičnih blokov, ki vključujejo stavke IF ... ELSE, preklopnik in ternarne stavke. Te stavke nadzorujejo logični operaterji, kot so AND, OR, NOT. V primerjavi z blokom »preklopi« je blok »če« hiter in preprost. Za obdelavo več zbirk, kot so nizi, za ponovitev postopka testiranja so stavki zanke ključnega pomena.
Naslednja vadnica SoapUI # 10 : V naslednjem prispevku se bomo naučili »Objektno usmerjeno Groovy skriptiranje v SoapUI«.
V naslednjih vadnicah za SoapUI Groovy Script boste našli več uporabnih konceptov. Nadaljujte z branjem in delite svoje izkušnje in vprašanja v spodnjih komentarjih.
Priporočeno branje
- Kako ravnati z izjemami v groovy skriptih SoapUI - Vadnica SoapUI št. 11
- Kako napisati osnovni skript Groovy v SoapUI - Vadnica SoapUi # 6
- Kako uporabljati lastnosti v skriptu Groapy SoapUI - Vadnica SoapUI št. 7
- Vadnice za globinsko zasenčenje za začetnike
- 4 Pomembne značilnosti programa SoapUI Pro za občinstvo - Vadnica SoapUI št. 12
- 15+ vadnic za SoapUI: najboljše orodje za testiranje API-jev za spletne storitve
- Postopek prenosa in namestitve programa SoapUI - Vadnica št. 3 za SoapUI
- Kratek vodnik SoapUI za shranjevanje podatkov o zahtevah in odzivih v datoteki - Vadnica SoapUI # 15