learn advanced soapui groovy scripting concepts soapui tutorial 9
Předchozí SoapUI tutoriály byly úvodem do SoapUI a jeho programovacích konceptů. Od nynějška přejdeme k pokročilejším konceptům skriptování Groovy. Pojďme s tím být Podmíněné příkazy toku - Booleovské i iterativní výroky. Poté přejdeme ke kolekci polí.
Toto je 9. tutoriál v našem SoapUI tutorial series .
Podmíněné příkazy se používají k řízení toku provádění. Tady jsou různé typy podmíněných příkazů v Groovy.
Co se naučíte:
- # 1. Ovládací nebo logické příkazy:
- # 2. Opakování nebo opakované příkazy:
- # 3. Sbírka polí:
- Závěr
- Doporučené čtení
# 1. Ovládací nebo logické příkazy:
Výsledkem těchto prohlášení je pravda nebo nepravda na základě logických podmínek. Jsou to AND, NEBO NE. Použité symboly jsou „&& (a)“, „|“ | a '! (Vykřičník) “. Chování je uvedeno v tabulce pravdy:
„A“ tabulka pravdy operátora:
Tabulka pravdy operátoru „NEBO“:
„NE“ operátor pro účely negace
Podmíněné prohlášení: programovací jazyky podporují následující podmíněné příkazy:
- Pokud… else prohlášení
- If… else if… else statement
- Ternární operátor
- Přepnout prohlášení
A) pokud… else syntaxe bloku:
-li
{
}
Jiný
{
}
V této syntaxi, když splní true, bude daný příkaz proveden. Pokud blok obsahuje více než jeden řádek, musíme příkazy uzavřít složenými závorkami. To dává pokyn, aby se celý blok provedl na základě podmínky.
Podívejte se na ukázkový fragment 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 pokud ... jinak ... příkaz by měl obsahovat pouze jeden ELSE blok.
B) Více podmíněných bloků: pokud… else if… else syntaxe
-li
{
}
Jinak pokud
{
}
Jiný
{
}
Pokud ... jinak, pokud ... jinak prohlášení je trochu jiné než pokud ... jinak ... prohlášení - z hlediska, které má jinak pokud blok. Tento blok se používá pro přidání více podmínek. Podívejte se na následující příklad.
sloučit třídit kód C ++
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 podívejte se na výstupní snímek obrazovky pro výše uvedený skript: Také to prosím použijte jako referenci pro příklad boolen operator:
C) Ternární operátor:
Tento operátor funguje podobně jako pokud ... jinak tvrzení. Má dva operandy, například otazník (TRUE) a dvojtečku pro FALSE / výchozí příkazy.
def A = 100
def B = (A> 100) ? „PASS“: „FAIL“
log.info (B)
Tady je snímek obrazovky výše uvedeného skriptu.
D) Pouzdro spínače: Toto prohlášení umožňuje více podmíněných větví s různými hodnotami. Podporuje také srovnání odkazů na objekty třídy, regulárních výrazů, kolekcí jako pole, seznamy atd.
Přepínač
{
případ :
;
přestávka;
případ :
;
přestávka;
výchozí:
;
}
The případ příkazy porovnávají hodnoty s přepínač hodnota případu. Pokud se jedná o shodu, provede se odpovídající blok případu. Jakmile je blok proveden, měl by být zastaven klíčovým slovem „break“. Pokud jsme na konci příkazu case vynechali klíčové slovo „break“, provedení se přesune na další příkaz case - a to nemusí být nutné. V případě, že žádný z případů není pravdivý, výchozí blok bude proveden. Vezměte prosím na vědomí, že Groovy podporuje všechny hlavní operátory a klíčová slova, protože je začleněn do java knihoven.
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. Opakování nebo opakované příkazy:
Umožňují opakování, kdykoli potřebujeme, a jsou obzvláště užitečné pro testování založené na datech.
Předpokládejme například, že v souboru aplikace Excel máme několik PSČ. Chcete-li načíst všechny poštovní směrovací čísla jeden po druhém ze souboru aplikace Excel a předat je do služby, tj. GetSuppliersZipcode , můžeme použít iterativní příkazy. SoapUI také poskytuje alternativní funkci nazvanou kroky testování zdroje dat a smyčky zdroje dat. (K dispozici pouze ve zkušební verzi SoapUI Pro a licencovaných verzích.)
V groovy skriptu můžeme použít tyto následující iterativní příkazy:
- Pro smyčku
- Zatímco smyčka
Pro smyčku:
pro (; ; )
{
;
}
Ve výše uvedené syntaxi označuje inicializace počáteční bod smyčky a na základě podmínkové smyčky bude pokračovat nebo zastaví provádění.
Viz níže uvedený skript
pro (int i = 1; i<=10; i++)
{
log.info („Loop Iterated“ + i + „times“);
}
Výše uvedený skript vytvoří výsledky, jak je znázorněno na následujícím snímku obrazovky.
Nyní použijeme kontrolní a iterativní prohlášení v našem reálném testovacím světě. Postupujte podle následujících kroků:
- Přidejte Testcase s požadovaným jménem. Vytvořil jsem jako „T9_GetSupplierByZipCode_TestCase“.
- Poté přidejte vlastnost s názvem „Property_Zipcode“
- Přidejte krok požadavku na test pro službu „GetSupplierByZipCode“ a vložte název vlastnosti do požadavku, jak je znázorněno na snímku obrazovky.
Přidejte krok testu groovy skriptu, jak je znázorněno na následujícím snímku obrazovky.
V editoru skriptů groovy napište následující skript.
for (int zipCode=1; zipCode5) { log.info('**************Stopped Execution*************'); break; } testStep.run(testRunner,context); log.info('Executed ' + zipCode + ' times') }
Následující výsledek je přijat v protokolu i na obrazovce odezvy služby.
(Klikněte na obrázek pro zvětšení)
Smyčka „while“:
Syntax:
zatímco
{
;
}
Výše uvedenou logiku lze implementovat také pomocí smyčky „while“.
Podstatou tedy je, že iterativní příkaz lze použít k:
- Provádějte testovací případy nebo testovací kroky opakovaně
- Řiďte tok provádění prostřednictvím řídicích příkazů.
# 3. Sbírka polí:
Kolekce polí pomáhá ukládat více hodnot do jedné proměnné nebo objektu. Ve výchozím nastavení index pole začíná na nule a pro přístup k odpovídající hodnotě uložené v poli musíme tento index s názvem pole použít. Syntaxe pro deklaraci polí v groovy skriptu:
arrayName = nový objekt (5) nebo,
arrayName = nový objekt (10) () nebo,
arrayName = nový objekt (10) (10) ()
Poznámka : Při deklaraci polí musíme určit počáteční velikost, jinak to způsobí chybu kompilace. Zde je jednoduchý příklad jednorozměrného pole.
ArrayObj = nový objekt (5);
ArrayObj (0) = „Testcase1“;
ArrayObj (1) = „Testcase2“;
ArrayObj (2) = “Testcase3”;
ArrayObj (3) = “Testcase4”;
ArrayObj (4) = “Testcase5”;
Nyní to implementujeme do našich pravidelných testovacích kroků. Přidejte tedy vlastnost, požadavek na test a krok testu skriptu v rámci testovací sady projektu, jak je znázorněno na následujícím snímku obrazovky.
Poté dvakrát klikněte na krok testu skriptu a napište následující 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.
Pole jsou tedy velmi užitečná pro zpracování více prvků s různými typy. Více praxe podpoří lepší porozumění a snadné použití.
Závěr
Jednalo se o celkový úvod s příklady podmíněných nebo logických bloků, které obsahují příkazy IF… ELSE, switch a ternary. Tyto příkazy jsou řízeny logickými operátory, jako jsou AND, OR, NOT. Ve srovnání s blokem „switch“ je blok „if“ rychlý a jednoduchý. Chcete-li zpracovat více kolekcí, jako jsou pole, k iteraci procesu testování, jsou kritické příkazy smyčky.
jak vytvořit seznam celých čísel v Javě
Další SoapUI tutorial # 10 : V dalším příspěvku se naučíme „Objektově orientované Groovy skriptování v SoapUI“.
Další užitečné koncepty přicházejí v příštích výukových programech SoapUI Groovy Script. Pokračujte v čtení a podělte se o své zkušenosti a dotazy v komentářích níže.
Doporučené čtení
- Jak zpracovat výjimku v SoapUI Groovy skriptech - SoapUI Tutorial # 11
- Jak psát základní Groovy skript v SoapUI - SoapUi Tutorial # 6
- Jak používat vlastnosti v SoapUI Groovy Script - SoapUI Tutorial # 7
- Výukové programy pro zatmění do hloubky pro začátečníky
- 4 důležité funkce SoapUI Pro pro profesionální publikum - SoapUI Tutorial # 12
- 15+ SoapUI Tutorials: The Best Web Services API Testing Tool
- Krok za krokem Proces stahování a instalace SoapUI - SoapUI Tutorial # 3
- Rychlý průvodce SoapUI pro ukládání dat požadavků a odpovědí do souboru - SoapUI Tutorial # 15