learn advanced soapui groovy scripting concepts soapui tutorial 9
Predchádzajúce tutoriály k SoapUI boli úvodom do SoapUI a jeho programovacích konceptov. Odteraz sa presunieme k pokročilejším skriptovacím konceptom Groovy. Buďme pri tom Podmienené tokové vyhlásenia - booleovské aj iteračné tvrdenia. Potom prejdeme k kolekcii polí.
Toto je 9. tutoriál v našom Séria výučbových programov SoapUI .
Podmienené príkazy sa používajú na riadenie toku vykonania. Tu sú rôzne typy podmienených príkazov v Groovy.
Čo sa dozviete:
- # 1. Kontrolné alebo logické výroky:
- # 2. Opakovanie alebo opakované výpisy:
- # 3. Zbierka polí:
- Záver
- Odporúčané čítanie
# 1. Kontrolné alebo logické výroky:
Výsledkom týchto tvrdení je pravda alebo nepravda na základe logických podmienok. Sú to AND, OR alebo NIE. Použité symboly sú „&& (a)“, „|“ | a ‘! (Výkričník) “. Správanie je uvedené v tabuľke pravdy:
„A“ tabuľka pravdy operátora:
Tabuľka pravdy operátora „ALEBO“:
Operátor „NIE“ na účely negácie
Podmienené vyhlásenie: programovacie jazyky podporujú nasledujúce podmienené vyhlásenia:
- Keby ... iné vyhlásenie
- Keby ... inak keby ... inak vyhlásenie
- Ternárny operátor
- Prepnúť vyhlásenie
A) ak… else syntax bloku:
ak
{
}
Inak
{
}
V tejto syntaxi sa pri zadaní hodnoty true vykoná daný príkaz. Ak blok obsahuje viac ako jeden riadok, musíme príkazy ohraničiť zloženými zátvorkami. Toto dáva pokyn, aby sa celý blok vykonal na základe podmienky.
Pozrite sa na ukážkový útržok kódu.
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 ak ... inak ... výpis by mal obsahovať iba jeden ELSE blok.
ako otvoriť súbor .json
B) Viaceré podmienené bloky: ak ... inak ak ... inak syntax
ak
{
}
Ináč Ak
{
}
Inak
{
}
Keby ... ešte keby ... inak vyhlásenie sa trochu líši od ak ... inak ... vyhlásenie - v zmysle toho, čo má ináč Ak blokovať. Tento blok slúži na pridanie viacerých podmienok. Pozrite sa na nasledujúci príklad.
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'); }
A pozrite sa na výstupnú snímku obrazovky vyššie uvedeného skriptu: Použite to tiež ako referenciu pre príklad boolen operátora:
C) Ternárny operátor:
Tento operátor funguje podobne ako ak ... inak vyhlásenie. Má dva operandy, ako je otáznik (TRUE) a dvojbodka pre FALSE / default vyhlásenia.
def A = 100
def B = (A> 100) ? „PASS“: „FAIL“
log.info (B)
Tu je screenshot vyššie uvedeného skriptu.
D) Spínacia skrinka: Toto vyhlásenie umožňuje viac podmienených vetiev s rôznymi hodnotami. Podporuje tiež porovnanie odkazov na objekty triedy, regulárnych výrazov, kolekcií ako polia, zoznamy atď.
Prepnúť
{
prípad:
;
prestávka;
prípad:
;
prestávka;
predvolené:
;
}
The prípade príkazy porovnávajú hodnoty s prepínač hodnota prípadu. Ak je to zhoda, potom sa vykoná príslušný blok veľkých a malých písmen. Akonáhle je blok vykonaný, mal by byť zastavený kľúčovým slovom „break“. Ak sme na konci príkazu case vynechali kľúčové slovo „break“, prevedenie sa presunie do nasledujúceho príkazu case - a to nemusí byť potrebné. V prípade, že žiaden z prípadov nie je pravdivý, predvolené blok sa vykoná. Upozorňujeme, že program Groovy podporuje všetkých hlavných operátorov a kľúčové slová, pretože je súčasťou java knižníc.
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. Opakovanie alebo opakované výpisy:
Umožňujú opakovanie, kedykoľvek potrebujeme, a sú obzvlášť užitočné pri testovaní na základe údajov.
Predpokladajme napríklad, že v súbore programu Excel máme niekoľko PSČ. Ak chcete postupne získať všetky poštové smerovacie čísla zo súboru programu Excel a odovzdať ich do služby, t.j. GetSuppliersZipcode , môžeme použiť iteračné tvrdenia. SoapUI tiež poskytuje alternatívnu funkciu nazvanú kroky testu zdroja dát a slučky zdroja dát. (K dispozícii iba v skúšobnej verzii SoapUI Pro a licencovaných verziách.)
V groovy skripte môžeme použiť tieto nasledujúce iteračné príkazy:
- Pre slučku
- Zatiaľ čo slučka
Pre slučku:
pre (;;)
{
;
}
ako používať thread.sleep v jave
Vo vyššie uvedenej syntaxi označuje inicializácia začiatočný bod slučky a na základe podmienkovej slučky bude pokračovať alebo zastaví vykonávanie.
Pozrite si nižšie uvedený skript
pre (int i = 1; i<=10; i++)
{
log.info („Smyčka iterovaná„ + i + „krát“);
}
Skript nad výsledkom vyprodukuje výsledky, ako je uvedené na nasledujúcej snímke obrazovky.
Teraz použijeme kontrolné a iteračné vyhlásenia v našom skutočnom testovacom svete. Postupujte podľa nasledujúcich krokov:
- Pridajte Testcase s požadovaným menom. Vytvoril som ako „T9_GetSupplierByZipCode_TestCase“.
- Potom pridajte nehnuteľnosť s názvom „Property_Zipcode“.
- Pridajte krok žiadosti o test pre službu „GetSupplierByZipCode“ a do požiadavky vložte názov vlastnosti, ako je znázornené na snímke obrazovky.
Pridajte Groovy krok testu skriptu, ako je znázornené na nasledujúcej snímke obrazovky.
vytvoriť pole reťazcov
V editore groovy script napíšte nasledujúci skript.
for (int zipCode=1; zipCode5) { log.info('**************Stopped Execution*************'); break; } testStep.run(testRunner,context); log.info('Executed ' + zipCode + ' times') }
Nasledujúci výsledok sa prijme do denníka aj na obrazovku odpovede služby.
(Kliknite na obrázok pre zväčšenie)
Slučka „while“:
Syntax:
zatiaľ čo
{
;
}
Vyššie uvedenú logiku je možné implementovať aj pomocou slučky „while“.
Podstatou teda je, že iteratívne vyhlásenie možno použiť na:
- Vykonajte testovacie prípady alebo testovacie kroky opakovane
- Kontrolujte priebeh výkonu prostredníctvom kontrolných príkazov.
# 3. Zbierka polí:
Zbierka polí pomáha ukladať viac hodnôt do jednej premennej alebo objektu. Index poľa štandardne začína na nule a my musíme tento index s názvom poľa použiť na prístup k zodpovedajúcej hodnote uloženej v poli. Syntax na deklarovanie polí v skromnom skripte:
arrayName = nový objekt (5) alebo,
arrayName = nový objekt (10) () alebo,
arrayName = nový objekt (10) (10) ()
Poznámka : Pri deklarovaní polí musíme určiť počiatočnú veľkosť, inak to spôsobí chybu kompilácie. Tu je jednoduchý príklad jednorozmerného poľa.
ArrayObj = nový objekt (5);
ArrayObj (0) = „Testcase1“;
ArrayObj (1) = „Testcase2“;
ArrayObj (2) = „Testcase3“;
ArrayObj (3) = „Testcase4“;
ArrayObj (4) = „Testcase5“;
Teraz to implementujeme do našich pravidelných testovacích krokov. Pridajte teda vlastnosť, požiadavku na test a krok testu skriptu v rámci testovacej sady projektu, ako je to znázornené na nasledujúcej snímke obrazovky.
Potom dvakrát kliknite na krok testu skriptu a napíšte nasledujúci 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.
Polia sú teda veľmi užitočné na prácu s viacerými prvkami s rôznymi typmi. Viac praxe podporí lepšie pochopenie a jednoduchšie použitie.
Záver
To bol celkový úvod s príkladmi podmienených alebo logických blokov, ktoré obsahujú výrazy IF… ELSE, switch a ternary. Tieto príkazy sú riadené logickými operátormi ako AND, OR, NOT. V porovnaní s blokom „switch“ je blok „if“ rýchly a jednoduchý. Pri manipulácii s viacerými kolekciami, ako sú polia, na iteráciu procesu testovania, sú príkazy cyklu dôležité.
Ďalej SoapUI tutorial # 10 : V nasledujúcom príspevku sa dozvieme „Objektovo orientované Groovy skriptovanie v SoapUI“.
Viac užitočných konceptov sa chystá v ďalších výučbových programoch SoapUI Groovy Script. Čítajte ďalej a podeľte sa o svoje skúsenosti a otázky v komentároch nižšie.
Odporúčané čítanie
- Ako zvládnuť výnimku v skriptoch SoapUI Groovy - SoapUI Tutorial # 11
- Ako písať základný Groovy skript v SoapUI - SoapUi Tutorial # 6
- Ako používať vlastnosti v SoapUI Groovy Script - SoapUI Tutorial # 7
- Hĺbkové návody pre zatmenie pre začiatočníkov
- 4 dôležité vlastnosti SoapUI Pro pre Pro Audience - SoapUI Tutorial # 12
- 15+ návodov na SoapUI: najlepší nástroj na testovanie API webových služieb
- Krok za krokom Proces sťahovania a inštalácie SoapUI - Výukový program SoapUI # 3
- Stručný sprievodca SoapUI pre ukladanie údajov o požiadavkách a odpovediach do súboru - SoapUI Tutorial # 15