learn advanced soapui groovy scripting concepts soapui tutorial 9
De tidigare SoapUI-självstudierna har varit en introduktion till SoapUI och dess programmeringskoncept. Vi kommer från och med nu att gå över till mer avancerade Groovy-skriptkoncept. Låt oss vara detta med Villkorade flödesangivelser - både booleska och iterativa uttalanden. Sedan går vi vidare till arraysamling.
Det här är den 9: e handledningen i vår SoapUI-handledningsserie .
Villkorliga uttalanden används för att styra flödet av körningen. Här är olika typer av villkorliga uttalanden i Groovy.
Vad du kommer att lära dig:
- # 1. Kontroll eller logiska uttalanden:
- # 2. Looping eller Iterativa uttalanden:
- # 3. Arrays Collection:
- Slutsats
- Rekommenderad läsning
# 1. Kontroll eller logiska uttalanden:
Dessa uttalanden resulterar i sant eller falskt baserat på de logiska förhållandena. De är OCH, ELLER och INTE. De använda symbolerna är '&& (och)', '|' | och ‘! (Utrop) ”respektive. Beteendet är som nämnts i sanningstabellen:
'Och' operatörens sanningstabell:
”OR” operatörens sanningstabell:
”INTE” operatör för negationsändamål
Villkorligt uttalande: programmeringsspråk stöder följande villkorliga uttalanden:
- Om ... annars uttalande
- Om ... annars om ... annat uttalande
- Ternär operatör
- Byt uttalande
A) om ... annars blockerar syntax:
om
{
}
Annan
{
}
I denna syntax, när möter sant, kommer det angivna uttalandet att köras. Vi måste bifoga uttalandena med lockiga hängslen om blocket innehåller mer än en rad. Detta instruerar att hela blocket ska köras baserat på villkoret.
Titta på exempelkodavsnittet.
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'); }
Ett om annat… uttalande bör endast innehålla ett ELSE-block.
B) Flera villkorliga block: om ... annars om ... annars syntax
om
{
}
Annars om
{
}
Annan
{
}
Om ... annars om ... annat uttalande är lite annorlunda än om annat… uttalande - i termer som den har annars om blockera. Detta block används för att lägga till flera villkor. Titta på följande exempel.
vad används c ++ för
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'); }
Och titta på utgångsskärmbilden för ovanstående skript: Använd också detta som en referens för exempel på boolenoperatören:
C) Ternär operatör:
Denna operatör fungerar ungefär som om annat påstående. Den har två operander som frågetecken (TRUE) och kolon för FALSE / standarduttalanden.
def A = 100
def B = (A> 100) ? “PASS”: “FAIL”
log.info (B)
Här är skärmdumpen för ovanstående skript.
D) Växellåda: Detta uttalande tillåter flera villkorliga grenar med olika värden. Det stöder också jämförelse av klassobjektreferenser, reguljära uttryck, samlingar som matriser, listor etc.
Växla
{
fall :
;
ha sönder;
fall :
;
ha sönder;
standard:
;
}
De fall uttalanden jämför värdena med växla fallvärde. Om det är en matchning körs motsvarande fallblock ut. När blocket har körts bör det stoppas av nyckelordet 'break'. Om vi missade 'break' -nyckelordet i slutet av ärendet, kommer körningen att flyttas till nästa ärende- och det kanske inte är nödvändigt. Om inget av fallen är sant, standard block kommer att köras. Observera att Groovy stöder alla större operatörer och nyckelord eftersom det är integrerat i java-biblioteken.
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 eller Iterativa uttalanden:
Dessa möjliggör upprepning när vi behöver och är särskilt användbara för datadriven testning.
Låt oss till exempel anta att vi har några postnummer i en excel-fil. För att hämta alla postnummer en efter en från excel-filen och skicka den till tjänsten, dvs. GetSuppliersZipcode , kan vi använda iterativa uttalanden. SoapUI tillhandahåller också en alternativ funktion som kallas teststeg för datakälla och datakälla. (Endast tillgängligt i SoapUI Pro-test- och licensversioner.)
Vi kan använda dessa följande iterativa uttalanden i det groovy skriptet:
- För loop
- While loop
För loop:
för (; ; )
{
;
}
I ovanstående syntax betecknar initialiseringen startpunkten för slingan och baserat på villkorsslingan fortsätter eller stoppar körningen.
Se skriptet nedan
för (int i = 1; i<=10; i++)
{
log.info ('Loop Iterated' + i + 'times');
}
intervjufrågor om tvål och vila
Ovanstående skript ger resultaten som visas i följande skärmdump.
Låt oss nu använda kontrolluttalande och iterativt uttalande i vår verkliga testvärld. Följ stegen nedan:
- Lägg till Testcase med önskat namn. Jag har skapat som “T9_GetSupplierByZipCode_TestCase”.
- Lägg sedan till en egendom med namnet 'Property_Zipcode'
- Lägg till steg för testbegäran för tjänsten “GetSupplierByZipCode” och lägg fastighetsnamnet i begäran som visas på skärmdumpen.
Lägg till groovy script teststeg som visas i följande skärmdump.
Skriv följande manus i den groovy manusredigeraren.
for (int zipCode=1; zipCode5) { log.info('**************Stopped Execution*************'); break; } testStep.run(testRunner,context); log.info('Executed ' + zipCode + ' times') }
Följande resultat tas emot i loggen såväl som i svarsskärmen för tjänsten.
(Klicka på bilden för förstorad vy)
hur man visar xml-filer i word
'While' -slinga:
Syntax:
medan
{
;
}
Ovanstående logik kan också implementeras med 'while' -slingan.
Därför är kärnan att iterativt uttalande kan användas för att:
- Utför testfallet eller teststegen upprepade gånger
- Styr flödet av utförandet genom kontrolluttalanden.
# 3. Arrays Collection:
Array collection hjälper till att lagra flera värden i en enda variabel eller ett objekt. Arrayindex börjar som standard på noll och vi måste använda det indexet med arraynamn för att komma åt motsvarande värde som är lagrat i arrayen. Syntax för att deklarera arrays i groovy script:
arrayName = nytt objekt (5) eller,
arrayName = nytt objekt (10) () eller,
arrayName = nytt objekt (10) (10) ()
Notera : När vi deklarerar matriser måste vi ange den ursprungliga storleken annars kommer det att ge ett kompileringsfel. Här är det enkla exemplet för den endimensionella matrisen.
ArrayObj = nytt objekt (5);
ArrayObj (0) = “Testcase1”;
ArrayObj (1) = “Testcase2”;
ArrayObj (2) = “Testcase3”;
ArrayObj (3) = “Testcase4”;
ArrayObj (4) = “Testcase5”;
Låt oss nu implementera detta i våra vanliga teststeg. Så lägg till egendom, testförfrågan och skript teststeg under projekttestsviten som visas i följande skärmdump.
Dubbelklicka sedan på teststeget och skriv följande 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.
Så arrays är mycket användbara för att hantera flera element med olika typer. Mer övning kommer att främja bättre förståelse och användarvänlighet.
Slutsats
Det var en övergripande introduktion med exempel på villkorliga eller logiska block som inkluderar IF ... ELSE, switch och ternära uttalanden. Dessa uttalanden styrs av de logiska operatörerna som AND, OR, NOT. Jämfört med 'byt' block 'if' block är snabbt och enkelt. För att hantera flera samlingar som arrays för att iterera testprocessen är loop-uttalanden kritiska.
Nästa SoapUI-handledning # 10 : I nästa inlägg kommer vi att lära oss ”Objektorienterad Groovy Scripting i SoapUI”.
Fler användbara koncept kommer i nästa SoapUI Groovy Script-handledning. Fortsätt läsa och berätta om dina erfarenheter och frågor i kommentarerna nedan.
Rekommenderad läsning
- Hur man hanterar undantag i SoapUI Groovy Scripts - SoapUI-handledning # 11
- Hur man skriver Basic Groovy Script i SoapUI - SoapUi Tutorial # 6
- Hur man använder egenskaper i SoapUI Groovy Script - SoapUI-handledning nr 7
- Fördjupade förklaringar om förmörkelser för nybörjare
- 4 Viktiga funktioner i SoapUI Pro för Pro Audience - SoapUI Tutorial # 12
- 15+ SoapUI-handledning: Det bästa testtjänstprogrammet för webbtjänster
- Steg för steg SoapUI nedladdnings- och installationsprocess - SoapUI-handledning nr 3
- En snabb SoapUI-guide för att lagra begäran och svarsdata i en fil - SoapUI-handledning nr 15