learn advanced soapui groovy scripting concepts soapui tutorial 9
enqueue i dequeue c ++
Poprzednie samouczki dotyczące SoapUI stanowiły wprowadzenie do SoapUI i jego koncepcji programistycznych. Od teraz przejdziemy do bardziej zaawansowanych koncepcji skryptów Groovy. Bądźmy tym z Warunkowe instrukcje przepływu - zarówno instrukcje logiczne, jak i iteracyjne. Następnie przejdziemy do zbierania tablic.
To jest dziewiąty samouczek w naszym Seria samouczków SoapUI .
Instrukcje warunkowe służą do sterowania przepływem wykonania. Oto różne typy instrukcji warunkowych w Groovy.
Czego się nauczysz:
- # 1. Instrukcje sterujące lub logiczne:
- # 2. Instrukcje pętlowe lub iteracyjne:
- # 3. Kolekcja tablic:
- Wniosek
- rekomendowane lektury
# 1. Instrukcje sterujące lub logiczne:
Te stwierdzenia dają wynik prawda lub fałsz w oparciu o warunki logiczne. Są AND, OR i NOT. Użyte symbole to „&& (i)”, „|” | i '! (Wykrzyknik) ”. Zachowanie jest takie, jak wspomniano w tabeli prawdy:
Tabela prawdy operatora „i”:
Tabela prawdy operatora „OR”:
Operator „NIE” w celu zaprzeczenia
Instrukcja warunkowa: języki programowania obsługują następujące instrukcje warunkowe:
- Jeśli… else oświadczenie
- Jeśli… else if… else oświadczenie
- Operator trójskładnikowy
- Instrukcja Switch
A) if… else blokowa składnia:
gdyby
{
}
Jeszcze
{
}
W tej składni, whenmeets true, podana instrukcja zostanie wykonana. Musimy ująć instrukcje w nawiasy klamrowe, jeśli blok zawiera więcej niż jedną linię. To nakazuje wykonanie całego bloku na podstawie warunku.
Spójrz na przykładowy fragment kodu.
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'); }
Na Jeśli inaczej… instrukcja powinna zawierać tylko jeden blok ELSE.
B) Wiele bloków warunkowych: składnia if… else if… else
gdyby
{
}
Inaczej, jeśli
{
}
Jeszcze
{
}
Jeśli… inaczej, jeśli… jeszcze oświadczenie jest trochę inne niż Jeśli inaczej… oświadczenie - w kategoriach, które ma inaczej, jeśli blok. Ten blok służy do dodawania wielu warunków. Spójrz na poniższy przykład.
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'); }
Spójrz na zrzut ekranu wyjściowego powyższego skryptu: użyj go również jako odniesienia dla przykładu operatora boolen:
C) Operator trójskładnikowy:
Ten operator działa podobnie do Jeśli inaczej komunikat. Ma dwa operandy, takie jak znak zapytania (PRAWDA) i dwukropek dla instrukcji FALSE / default.
def A = 100
def B = (A> 100) ? „PASS”: „FAIL”
log.info (B)
Oto zrzut ekranu powyższego skryptu.
D) Obudowa przełącznika: Ta instrukcja zezwala na wiele gałęzi warunkowych z różnymi wartościami. Obsługuje również porównanie odniesień do obiektów klas, wyrażeń regularnych, kolekcji, takich jak tablice, listy itp.
Przełącznik
{
walizka :
;
przerwa;
walizka :
;
przerwa;
domyślna:
;
}
Plik walizka instrukcje porównują wartości z przełącznik wartość przypadku. Jeśli pasuje, wykonywany jest odpowiedni blok wielkości liter. Po wykonaniu bloku należy go zatrzymać słowem kluczowym „break”. Jeśli pominęliśmy słowo kluczowe „break” na końcu instrukcji case, wykonanie zostanie przeniesione do następnej instrukcji case - i może to nie być konieczne. Jeśli żaden z przypadków nie jest prawdziwy, domyślna blok zostanie wykonany. Należy pamiętać, że Groovy obsługuje wszystkich głównych operatorów i słowa kluczowe, ponieważ jest zintegrowany z bibliotekami 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. Instrukcje pętlowe lub iteracyjne:
Umożliwiają one powtórzenie w dowolnym momencie i są szczególnie przydatne w testowaniu opartym na danych.
Załóżmy na przykład, że mamy kilka kodów pocztowych w pliku Excel. Aby pobrać wszystkie kody pocztowe jeden po drugim z pliku Excela i przekazać go do serwisu, tj. GetSuppliersZipcode , możemy użyć instrukcji iteracyjnych. SoapUI zapewnia również alternatywną funkcję zwaną etapami testowania pętli źródła danych i źródła danych (dostępna tylko w wersji próbnej i licencjonowanej SoapUI Pro).
W groovym skrypcie możemy użyć następujących iteracyjnych instrukcji:
- Dla pętli
- Podczas pętli
Dla pętli:
dla (; ; )
{
;
}
W powyższej składni inicjalizacja oznacza punkt początkowy pętli i na podstawie pętli warunkowej będzie kontynuowała lub zatrzyma wykonywanie.
Zobacz poniższy skrypt
dla (int i = 1; i<=10; i++)
{
log.info („Loop Iterated„ + i + ”times”);
}
Powyższy skrypt wygeneruje wyniki, jak pokazano na poniższym zrzucie ekranu.
Teraz użyjmy instrukcji sterujących i instrukcji iteracyjnych w naszym prawdziwym świecie testowym. Wykonaj poniższe kroki:
- Dodaj Testcase z wybraną nazwą. Utworzyłem jako „T9_GetSupplierByZipCode_TestCase”.
- Następnie dodaj właściwość o nazwie „Property_Zipcode”
- Dodaj krok żądania testu dla usługi „GetSupplierByZipCode” i umieść w żądaniu nazwę właściwości, jak pokazano na zrzucie ekranu.
Dodaj krok testowy skryptu groovy, jak pokazano na poniższym zrzucie ekranu.
W świetnym edytorze skryptów napisz następujący skrypt.
for (int zipCode=1; zipCode5) { log.info('**************Stopped Execution*************'); break; } testStep.run(testRunner,context); log.info('Executed ' + zipCode + ' times') }
Następujący wynik jest rejestrowany w dzienniku, a także na ekranie odpowiedzi usługi.
(Kliknij obraz, aby wyświetlić powiększenie)
Pętla „while”:
Składnia:
podczas
{
;
}
Powyższą logikę można zaimplementować również za pomocą pętli „while”.
Stąd sedno jest takie, że instrukcja iteracyjna może być użyta do:
- Wykonuj przypadki testowe lub kroki testowe wielokrotnie
- Kontroluj przepływ wykonania za pomocą instrukcji sterujących.
# 3. Kolekcja tablic:
Kolekcja tablic pomaga przechowywać wiele wartości w jednej zmiennej lub obiekcie. Indeks tablicy zaczyna się domyślnie od zera i musimy użyć tego indeksu z nazwą tablicy, aby uzyskać dostęp do odpowiedniej wartości przechowywanej w tablicy. Składnia do deklarowania tablic w groovym skrypcie:
arrayName = new Object [5] lub,
arrayName = new Object [10] [] lub,
arrayName = nowy obiekt [10] [10] []
Uwaga : Podczas deklarowania tablic musimy określić rozmiar początkowy, w przeciwnym razie wystąpi błąd kompilacji. Oto prosty przykład jednowymiarowej tablicy.
ArrayObj = nowy obiekt [5];
ArrayObj [0] = „Przypadek testowy1”;
ArrayObj [1] = „Testcase2”;
ArrayObj [2] = „Testcase3”;
ArrayObj [3] = „Testcase4”;
ArrayObj [4] = „Przypadek testowy5”;
Teraz zastosujmy to w naszych regularnych krokach testowych. Dodaj więc właściwość, żądanie testu i krok testu skryptu w zestawie testów projektu, jak pokazano na poniższym zrzucie ekranu.
Następnie kliknij dwukrotnie krok testu skryptu i napisz następujący skrypt.
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.
Dlatego tablice są bardzo przydatne do obsługi wielu elementów o różnych typach. Więcej praktyki będzie sprzyjać lepszemu zrozumieniu i łatwości użytkowania.
Wniosek
To było ogólne wprowadzenie z przykładami bloków warunkowych lub logicznych, które zawierają instrukcje IF… ELSE, przełączające i potrójne. Te instrukcje są kontrolowane przez operatory logiczne, takie jak AND, OR, NOT. W porównaniu z blokiem „przełącz” blok „if” jest szybki i prosty. Aby obsłużyć wiele kolekcji, takich jak tablice, w celu iteracji procesu testowania, instrukcje pętli są krytyczne.
Następny tutorial SoapUI nr 10 : W następnym poście nauczymy się „Zorientowane obiektowo skrypty Groovy w SoapUI”.
Bardziej użyteczne koncepcje pojawią się w następnych samouczkach SoapUI Groovy Script. Czytaj dalej i podziel się swoimi doświadczeniami i pytaniami w komentarzach poniżej.
rekomendowane lektury
- Jak obsługiwać wyjątki w skryptach SoapUI Groovy - samouczek SoapUI nr 11
- Jak napisać podstawowy skrypt Groovy w SoapUI - SoapUi Tutorial # 6
- Jak korzystać z właściwości w skrypcie SoapUI Groovy - samouczek SoapUI # 7
- Dogłębne samouczki dotyczące Eclipse dla początkujących
- 4 Ważne cechy SoapUI Pro dla Pro Audience - SoapUI Tutorial # 12
- Ponad 15 samouczków SoapUI: Najlepsze narzędzie do testowania interfejsu API usług internetowych
- Proces pobierania i instalacji SoapUI krok po kroku - Samouczek SoapUI nr 3
- Szybki przewodnik SoapUI dotyczący przechowywania danych żądań i odpowiedzi w pliku - SoapUI Tutorial # 15