learn advanced soapui groovy scripting concepts soapui tutorial 9
De vorige SoapUI-tutorials waren een inleiding in SoapUI en zijn programmeerconcepten. We gaan vanaf nu over naar meer geavanceerde Groovy-scriptingconcepten. Laten we erbij zijn Voorwaardelijke stroomverklaringen - zowel Booleaanse als iteratieve instructies. Daarna gaan we verder met het verzamelen van arrays.
Dit is de 9e tutorial in ons SoapUI-tutorialserie
Voorwaardelijke instructies worden gebruikt om de stroom van de uitvoering te regelen. Hier zijn verschillende soorten voorwaardelijke uitspraken in Groovy.
gratis mp3-downloader-app voor Android-telefoon
Wat je leert:
- # 1. Controle of logische uitspraken:
- # 2. Herhalende of iteratieve uitspraken:
- # 3. Arrays-collectie:
- Gevolgtrekking
- Aanbevolen literatuur
# 1. Controle of logische uitspraken:
Deze uitspraken resulteren in waar of onwaar op basis van de logische voorwaarden. Ze zijn EN, OF en NIET. De gebruikte symbolen zijn ‘&& (en)’, ‘|’ | en ‘! (Uitroep) ’. Het gedrag is zoals vermeld in de waarheidstabel:
'En' Operator waarheidstabel:
Waarheidstabel van operator 'OF':
'NOT' -operator voor ontkenningsdoeleinden
Voorwaardelijke verklaring: programmeertalen ondersteunen de volgende voorwaardelijke instructies:
- If… else-verklaring
- If ... else if ... else-verklaring
- Ternaire operator
- Schakel statement
A) als ... anders de syntaxis blokkeren:
als
Anders
In deze syntaxis, wanneer aan true voldoet, wordt de gegeven instructie uitgevoerd. We moeten de instructies omsluiten met accolades als het blok meer dan één regel bevat. Dit geeft aan dat het hele blok moet worden uitgevoerd op basis van de conditie.
Bekijk het voorbeeldcodefragment.
Een als ... anders ... instructie mag slechts één ELSE-blok bevatten.
B) Meerdere voorwaardelijke blokken: if… else if… else syntaxis
als
Anders als
Anders
Als ... anders als ... anders verklaring is weinig anders dan als ... anders ... verklaring - in termen die het heeft anders als blok. Dit blok wordt gebruikt om meerdere voorwaarden toe te voegen. Bekijk het volgende voorbeeld.
En kijk naar de output screenshot voor het bovenstaande script: Gebruik dit ook als referentie voor het boolen operator voorbeeld:
C) Ternaire operator:
Deze operator werkt vergelijkbaar met als ... anders uitspraak. Het heeft twee operanden, zoals vraagteken (TRUE) en dubbele punt voor FALSE / standaardinstructies.
def A = 100
def B = (A> 100) 'PASS': 'FAIL'
log.info (B)
Hier is de schermafbeelding voor het bovenstaande script.
D) Schakelkast: Deze instructie staat meerdere voorwaardelijke vertakkingen toe met verschillende waarden. Het ondersteunt ook vergelijking van klasseobjectreferenties, reguliere expressies, verzamelingen zoals arrays, lijsten enz.
Schakelaar
geval:
breken;
geval:
breken;
standaard:
De geval statements vergelijken de waarden met de schakelaar case waarde. Als het een match is, wordt het bijbehorende case-blok uitgevoerd. Zodra het blok is uitgevoerd, moet het worden gestopt door het trefwoord 'break'. Als we het trefwoord 'break' aan het einde van de case-instructie hebben gemist, wordt de uitvoering verplaatst naar de volgende case-instructie - en dat is misschien niet nodig. Als geen van de gevallen waar is, standaard blok wordt uitgevoerd. Houd er rekening mee dat Groovy alle belangrijke operators en trefwoorden ondersteunt, aangezien het is opgenomen in de java-bibliotheken.
# 2. Herhalende of iteratieve uitspraken:
Deze maken herhaling mogelijk wanneer dat nodig is en zijn vooral handig voor datagestuurd testen.
Laten we bijvoorbeeld aannemen dat we een paar postcodes in een Excel-bestand hebben. Om alle postcodes één voor één uit het Excel-bestand op te halen en door te geven aan service, d.w.z. GetSuppliersZipcode kunnen we iteratieve uitspraken gebruiken. SoapUI biedt ook een alternatieve functie genaamd gegevensbron- en gegevensbronlus-teststappen. (Alleen beschikbaar in SoapUI Pro-proefversies en gelicentieerde versies.)
We kunnen deze volgende iteratieve uitspraken gebruiken in het groovy script:
- For loop
- Herhalingslus
For loop:
voor (; ; )
In de bovenstaande syntaxis geeft initialisatie het startpunt van de lus aan en op basis van de conditie-lus wordt de uitvoering voortgezet of gestopt.
Zie het onderstaande script
voor (int i = 1; i<=10; i++)
log.info (‘Loop Iterated‘ + i + ‘times’);
beste firewallsoftware voor Windows 10
Het bovenstaande script produceert de resultaten zoals weergegeven in de volgende schermafbeelding.
Laten we nu control statement en iterative statement gebruiken in onze echte testwereld. Volg onderstaande stappen:
- Voeg Testcase toe met uw gewenste naam. Ik heb gemaakt als 'T9_GetSupplierByZipCode_TestCase'.
- Voeg vervolgens een eigenschap toe met de naam 'Property_Zipcode'
- Voeg de testverzoekstap toe voor de 'GetSupplierByZipCode' -service en plaats de eigenschapsnaam in het verzoek zoals weergegeven in de schermafbeelding.
Voeg een groovy scriptteststap toe zoals weergegeven in de volgende schermafbeelding.
Schrijf het volgende script in de groovy scripteditor.
Het volgende resultaat wordt zowel in het logboek als in het servicereactiescherm ontvangen.
(Klik op afbeelding voor vergrote weergave)
'herhalingslus:
Syntaxis:
terwijl
De bovenstaande logica kan ook worden geïmplementeerd met behulp van de 'while' -lus.
Daarom is de kern dat een iteratieve verklaring kan worden gebruikt om:
- Voer de testcases of teststappen herhaaldelijk uit
- Beheers de stroom van de uitvoering via de control statements.
# 3. Arrays-collectie:
Array-verzameling helpt bij het opslaan van meerdere waarden in één variabele of object. Array-index begint standaard bij nul en we moeten die index met array-naam gebruiken om toegang te krijgen tot de corresponderende waarde die in de array is opgeslagen. Syntaxis om arrays in groovy script te declareren:
arrayName = nieuw object [5] of,
arrayName = nieuw object [10] [] of,
arrayName = nieuw object [10] [10] []
Notitie : Bij het declareren van arrays moeten we de initiële grootte specificeren, anders zal er een compilatiefout optreden. Hier is het eenvoudige voorbeeld voor de eendimensionale matrix.
ArrayObj = nieuw object [5];
ArrayObj [0] = 'Testcase1';
ArrayObj [1] = 'Testcase2';
ArrayObj [2] = 'Testcase3';
ArrayObj [3] = 'Testcase4';
ArrayObj [4] = 'Testcase5';
Laten we dit nu implementeren in onze reguliere teststappen. Dus voeg eigenschap, testverzoek en scriptteststap toe onder de projecttestsuite, zoals weergegeven in de volgende schermafbeelding.
En dubbelklik vervolgens op de scriptteststap en schrijf het volgende script.
Arrays zijn dus erg handig om meerdere elementen met verschillende typen te verwerken. Meer oefening bevordert een beter begrip en gebruiksgemak.
Gevolgtrekking
Dat was een algemene inleiding met voorbeelden van voorwaardelijke of logische blokken die IF… ELSE, switch en ternaire statements bevatten. Deze instructies worden bestuurd door de logische operatoren zoals AND, OR, NOT. In vergelijking met 'schakel' blok 'als' blok is snel en eenvoudig. Om meerdere verzamelingen, zoals arrays, te verwerken om het testproces te herhalen, zijn lusinstructies van cruciaal belang.
Volgende SoapUI tutorial # 10 : In de volgende post zullen we “Object-Oriented Groovy Scripting in SoapUI” leren.
Meer bruikbare concepten komen naar voren in de volgende SoapUI Groovy Script-tutorials. Blijf lezen en deel uw ervaringen en vragen in de onderstaande opmerkingen.
Aanbevolen literatuur
- Hoe om te gaan met uitzonderingen in SoapUI Groovy Scripts - SoapUI Tutorial # 11
- Hoe u een standaard Groovy-script schrijft in SoapUI - SoapUi-zelfstudie # 6
- Eigenschappen in SoapUI Groovy Script gebruiken - SoapUI Tutorial # 7
- Diepgaande Eclipse-zelfstudies voor beginners
- 4 Belangrijke kenmerken van SoapUI Pro voor professioneel publiek - SoapUI Tutorial # 12
- 15+ SoapUI-zelfstudies: de beste API-testtool voor webservices
- Stap voor stap SoapUI download- en installatieproces - SoapUI Tutorial # 3
- Een snelle SoapUI-gids om verzoek- en reactiegegevens in een bestand op te slaan - SoapUI-zelfstudie # 15