learn advanced soapui groovy scripting concepts soapui tutorial 9
De forrige SoapUI-opplæringene har vært en introduksjon til SoapUI og dets programmeringskonsepter. Vi vil fra nå av gå over i mer avanserte Groovy scripting-konsepter. La oss være dette med Utsagn om betinget flyt - både boolske og iterative uttalelser. Så vil vi gå videre til arraysamling.
Dette er den 9. opplæringen i vår SoapUI opplæringsserie .
Betingede utsagn brukes til å kontrollere gjennomføringsflyten. Her er forskjellige typer betingede uttalelser i Groovy.
Hva du vil lære:
- #1. Kontroll eller logiske utsagn:
- # 2. Looping eller Iterative uttalelser:
- # 3. Arrays Collection:
- Konklusjon
- Anbefalt lesing
#1. Kontroll eller logiske utsagn:
Disse utsagnene resulterer i sanne eller falske basert på de logiske forholdene. De er AND, OR og NOT. Symbolene som brukes er ‘&& (og)’, ‘|’ | og ‘! (Utrop) ’henholdsvis. Oppførselen er som nevnt i sannhetstabellen:
'Og' operatørens sannhetstabell:
«OR» -operatørens sannhetstabell:
“IKKE” operatør for negasjonsformål
Betinget uttalelse: programmeringsspråk støtter følgende betingelsesuttalelser:
- Hvis ... annet uttalelse
- Hvis ... annet hvis ... annet uttalelse
- Ternær operatør
- Bytt uttalelse
A) hvis ... ellers blokkerer syntaksen:
hvis
{
}
Ellers
{
}
I denne syntaksen, når møter sant, blir den gitte utsagnet utført. Vi må legge inn utsagnene med krøllete bukseseler hvis blokken inneholder mer enn en linje. Dette instruerer at hele blokken skal utføres basert på tilstanden.
Se på eksemplet på kodebiten.
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 hvis ... annet ... uttalelse skal bare inneholde en ELSE-blokk.
hvorfor er linux bedre enn windows
B) Flere betingede blokker: hvis… annet hvis… annet syntaks
hvis
{
}
Eller hvis
{
}
Ellers
{
}
Hvis ... ellers hvis ... ellers uttalelse er lite annerledes enn hvis ... annet ... uttalelse - i termer som den har eller hvis blokkere. Denne blokken brukes til å legge til flere forhold. Se på følgende eksempel.
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'); }
Og se på utgangsskjermbildet for ovennevnte skript: Bruk også dette som en referanse for boolen-operatøreksemplet også:
C) Ternær operatør:
Denne operatøren fungerer som hvis ... annet uttalelse. Den har to operander som spørsmålstegn (SANT) og kolon for FALSE / standarduttalelser.
def A = 100
def B = (A> 100) ? “PASS”: “FAIL”
log.info (B)
Her er skjermbildet for skriptet ovenfor.
D) Bryterveske: Denne uttalelsen tillater flere betingede grener med forskjellige verdier. Det støtter også sammenligning av referanser til klasseobjekter, regulære uttrykk, samlinger som matriser, lister etc.
Bytte om
{
sak:
;
gå i stykker;
sak:
;
gå i stykker;
misligholde:
;
}
De sak utsagn sammenligner verdiene med bytte om saksverdi. Hvis det er en kamp, blir den tilsvarende saksblokken utført. Når blokken er utført, bør den stoppes av nøkkelordet 'pause'. Hvis vi savnet 'pause' nøkkelord på slutten av saksuttalelsen, vil kjøringen flyttes til neste saksuttalelse - og det er kanskje ikke nødvendig. I tilfelle ingen av tilfellene er sanne, misligholde blokken vil bli utført. Vær oppmerksom på at Groovy støtter alle de store operatørene og nøkkelordene ettersom det er innlemmet i Java-bibliotekene.
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 Iterative uttalelser:
Disse muliggjør repetisjon når vi trenger det, og er spesielt nyttige for datadrevet testing.
La oss for eksempel anta at vi har noen postnummer i en Excel-fil. For å hente alle postnummerene en etter en fra excel-filen, og overføre den til tjenesten, dvs. GetSuppliersZipcode , kan vi bruke iterative uttalelser. SoapUI gir også en alternativ funksjon som kalles datakilde- og datakilde-testtrinn. (Kun tilgjengelig i SoapUI Pro prøveversjon og lisensierte versjoner.)
Vi kan bruke disse følgende iterative uttalelsene i groovy script:
- For løkke
- Mens løkke
For løkke:
for (;;)
{
;
}
intervju spørsmål om såpe og hvile
I ovennevnte syntaks, betegner initialisering startpunktet til sløyfen og basert på tilstandsløyfen vil fortsette eller stoppe kjøringen.
Se skriptet nedenfor
for (int i = 1; i<=10; i++)
{
log.info (‘Loop Iterated‘ + i + ‘times ');
}
Ovenfor skriptet vil produsere resultatene som vist i følgende skjermbilde.
La oss nå bruke kontrollerklæring og iterativ uttalelse i vår virkelige testverden. Følg trinnene nedenfor:
- Legg til testkasse med ønsket navn. Jeg har opprettet som “T9_GetSupplierByZipCode_TestCase”.
- Deretter legger du til et område som heter “Property_Zipcode”
- Legg til testforespørselstrinn for “GetSupplierByZipCode” -tjenesten og legg eiendomsnavnet i forespørselen som vist på skjermbildet.
Legg til groovy script test trinn som vist i følgende skjermbilde.
hvordan vise xml-filer i word
Skriv følgende manus i den skarpe manusredigereren.
for (int zipCode=1; zipCode5) { log.info('**************Stopped Execution*************'); break; } testStep.run(testRunner,context); log.info('Executed ' + zipCode + ' times') }
Følgende resultat mottas i loggen så vel som i skjermbildet for svar på tjenesten.
(Klikk på bildet for forstørret visning)
'While' -sløyfe:
Syntaks:
samtidig som
{
;
}
Ovennevnte logikk kan også implementeres ved hjelp av 'while' -sløyfen.
Derfor er kjernen at iterativ uttalelse kan brukes til å:
- Utfør testsakene eller testtrinnene gjentatte ganger
- Kontroller gjennomføringsflyten gjennom kontrolluttalelsene.
# 3. Arrays Collection:
Array collection hjelper til med å lagre flere verdier i en enkelt variabel eller et objekt. Arrayindeks starter som standard på null, og vi må bruke den indeksen med matrisenavn for å få tilgang til den tilsvarende verdien som er lagret i matrisen. Syntaks for å erklære matriser i groovy script:
arrayName = nytt objekt (5) eller,
arrayName = nytt objekt (10) () eller,
arrayName = nytt objekt (10) (10) ()
Merk : Mens vi deklarerer matriser, må vi spesifisere den opprinnelige størrelsen, ellers vil det kaste en kompileringsfeil. Her er det enkle eksemplet for den enkeltdimensjonale matrisen.
ArrayObj = nytt objekt (5);
ArrayObj (0) = “Testcase1”;
ArrayObj (1) = “Testcase2”;
ArrayObj (2) = “Testcase3”;
ArrayObj (3) = “Testcase4”;
ArrayObj (4) = “Testcase5”;
La oss nå implementere dette i våre vanlige teststrinn. Så legg til eiendom, testforespørsel og skripttesttrinn under prosjekttestsuiten som vist i skjermbildet nedenfor.
Dobbeltklikk deretter på skripttesttrinnet og skriv følgende 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å matriser er veldig nyttige for å håndtere flere elementer med forskjellige typer. Mer praksis vil fremme bedre forståelse og brukervennlighet.
Konklusjon
Det var en generell introduksjon med eksempler på betingede eller logiske blokker som inkluderer IF ... ELSE, switch og ternære uttalelser. Disse uttalelsene kontrolleres av de logiske operatørene som AND, OR, NOT. Sammenlignet med 'bytt' -blokk 'hvis' -blokk er rask og enkel. For å håndtere flere samlinger som matriser for å gjenta testprosessen, er sløyfesetninger kritiske.
Neste SoapUI opplæring # 10 : I neste innlegg vil vi lære “Object-Oriented Groovy Scripting in SoapUI”.
Flere nyttige konsepter kommer i de neste SoapUI Groovy Script-opplæringene. Fortsett å lese og vennligst del dine erfaringer og spørsmål i kommentarene nedenfor.
Anbefalt lesing
- Hvordan håndtere unntak i SoapUI Groovy Scripts - SoapUI Tutorial # 11
- Hvordan skrive Basic Groovy Script i SoapUI - SoapUi Tutorial # 6
- Hvordan bruke egenskaper i SoapUI Groovy Script - SoapUI Tutorial # 7
- In-Depth Eclipse Tutorials For Beginners
- 4 Viktige funksjoner i SoapUI Pro for Pro Audience - SoapUI Tutorial # 12
- 15+ SoapUI Tutorials: The Best Web Services API Testing Tool
- Steg for trinn SoapUI nedlastings- og installasjonsprosess - SoapUI Tutorial # 3
- En rask SoapUI-guide for lagring av forespørsels- og svardata i en fil - SoapUI-veiledning nr. 15