learn advanced soapui groovy scripting concepts soapui tutorial 9
De tidligere SoapUI-tutorials har været en introduktion til SoapUI og dets programmeringskoncepter. Vi vil fra nu af gå ind i mere avancerede Groovy scripting-koncepter. Lad os være dette med Betingede flowangivelser - både boolske og iterative udsagn. Så går vi videre til arraysamling.
Dette er den 9. tutorial i vores SoapUI tutorial-serie .
Betingede udsagn bruges til at kontrollere strømmen af udførelsen. Her er forskellige typer betingede udsagn i Groovy.
for at øge sikkerheden på din virksomheds interne netværk
Hvad du vil lære:
- # 1. Kontrol eller logiske udsagn:
- # 2. Looping eller iterative udsagn:
- # 3. Arrays samling:
- Konklusion
- Anbefalet læsning
# 1. Kontrol eller logiske udsagn:
Disse udsagn resulterer i ægte eller falsk baseret på de logiske forhold. De er AND, OR og NOT. De anvendte symboler er '&& (og)', '|' | og '! (Udråb) 'henholdsvis. Adfærden er som nævnt i sandhedstabellen:
'Og' operatørens sandhedstabel:
Sandhedstabel 'ELLER' operatør:
'IKKE' operatør til negationsformål
Betinget erklæring: programmeringssprog understøtter følgende betingede udsagn:
- Hvis ... ellers udsagn
- Hvis ... ellers hvis ... ellers udsagn
- Ternær operatør
- Skift erklæring
A) hvis ... ellers blokerer syntaks:
hvis
{
}
Andet
{
}
I denne syntaks, når møder sand, bliver den givne sætning udført. Vi er nødt til at omslutte udsagnene med krøllede seler, hvis blokken indeholder mere end en linje. Dette instruerer, at hele blokken skal udføres baseret på betingelsen.
Se på eksemplet på kodestykket.
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 ellers… erklæring bør kun indeholde en ELSE-blok.
B) Flere betingede blokke: hvis ... ellers hvis ... ellers syntaks
hvis
{
}
Ellers hvis
{
}
Andet
{
}
Hvis ... ellers hvis ... ellers udsagn er lidt anderledes end hvis ellers… erklæring - i termer, som den har ellers hvis blok. Denne blok bruges til at tilføje flere betingelser. 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å output-skærmbilledet til ovenstående script: Brug også dette som en reference til boolen-operatoreksemplet:
C) Ternær operatør:
Denne operatør fungerer som hvis ellers udmelding. Den har to operander såsom spørgsmålstegn (TRUE) og kolon for FALSE / standard udsagn.
def A = 100
def B = (A> 100) ? 'BESTÅ IKKE-BESTÅ'
log.info (B)
Her er skærmbilledet til ovenstående script.
D) Omskifterhus: Denne erklæring tillader flere betingede grene med forskellige værdier. Det understøtter også sammenligning af klasseobjektreferencer, regulære udtryk, samlinger som arrays, lister osv.
Kontakt
{
sag :
;
pause;
sag :
;
pause;
Standard:
;
}
Det sag udsagn sammenligner værdierne med kontakt sagsværdi. Hvis det er en match, bliver den tilsvarende sagsblok udført. Når blokken er udført, skal den stoppes af nøgleordet 'pause'. Hvis vi gik glip af 'pause' nøgleord i slutningen af sagserklæringen, flyttes udførelsen til næste sagserklæring - og det er muligvis ikke nødvendigt. Hvis ingen af tilfældene er sande, Standard blok udføres. Bemærk, at Groovy understøtter alle de store operatorer og nøgleord, da det er integreret i java-bibliotekerne.
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 udsagn:
Disse muliggør gentagelse, når vi har brug for det, og er især nyttige til datadrevet test.
Lad os for eksempel antage, at vi har et par postnumre i en excel-fil. For at hente alle postnumre en efter en fra excel-filen og videregive den til service, dvs. GetSuppliersZipcode , kan vi bruge iterative udsagn. SoapUI giver også en alternativ funktion kaldet datakilde og sløjfetesttrin for datakilde (kun tilgængelig i SoapUI Pro prøveversion og licenserede versioner).
Vi kan bruge disse følgende iterative udsagn i det groovy script:
- Til løkke
- Mens løkke
Til løkke:
til (; ; )
{
;
}
I ovenstående syntaks betegner initialisering startpunktet for sløjfen og baseret på betingelsessløjfen fortsætter eller stopper udførelsen.
Se nedenstående script
for (int i = 1; i<=10; i++)
{
log.info ('Loop Iterated' + i + 'times');
}
Ovenstående script producerer resultaterne som vist i følgende skærmbillede.
selen webdriver med agurkeksempel i formørkelse
Lad os nu bruge kontrolerklæring og iterativ erklæring i vores virkelige testverden. Følg nedenstående trin:
- Tilføj testcase med dit ønskede navn. Jeg har oprettet som “T9_GetSupplierByZipCode_TestCase”.
- Tilføj derefter en ejendom med navnet “Property_Zipcode”
- Tilføj testanmodningstrin for 'GetSupplierByZipCode' -tjenesten, og læg ejendomsnavnet i anmodningen som vist på skærmbilledet.
Tilføj groovy script test trin som vist i følgende skærmbillede.
Skriv følgende script i den groovy script-editor.
for (int zipCode=1; zipCode5) { log.info('**************Stopped Execution*************'); break; } testStep.run(testRunner,context); log.info('Executed ' + zipCode + ' times') }
Følgende resultat modtages i loggen såvel som i skærmbilledet med svar på service.
(Klik på billedet for at se et forstørret billede)
'Mens' loop:
Syntaks:
mens
{
;
}
Ovenstående logik kan også implementeres ved hjælp af 'while' -sløjfen.
Derfor er kernen, at iterativ sætning kan bruges til at:
- Udfør testsagerne eller testtrinnene gentagne gange
- Styr strømmen af udførelsen gennem kontrolerklæringerne.
# 3. Arrays samling:
Array collection hjælper med at gemme flere værdier i en enkelt variabel eller et objekt. Matrixindeks starter som standard ved nul, og vi skal bruge dette indeks med arraynavn for at få adgang til den tilsvarende værdi, der er gemt i arrayet. Syntaks for at erklære arrays i groovy script:
arrayName = nyt objekt (5) eller,
arrayName = nyt objekt (10) () eller,
arrayName = nyt objekt (10) (10) ()
Bemærk : Mens vi erklærer arrays, skal vi angive den oprindelige størrelse, ellers kaster det en kompileringsfejl. Her er det enkle eksempel på det enkeltdimensionale array.
ArrayObj = nyt objekt (5);
ArrayObj (0) = “Testcase1”;
ArrayObj (1) = “Testcase2”;
ArrayObj (2) = “Testcase3”;
ArrayObj (3) = “Testcase4”;
ArrayObj (4) = “Testcase5”;
Lad os nu implementere dette i vores regelmæssige testtrin. Så tilføj egenskab, testanmodning og script testtrin under projekttestpakken som vist i det følgende skærmbillede.
Dobbeltklik derefter på script test test trin og skriv følgende script.
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 er meget nyttige til at håndtere flere elementer med forskellige typer. Mere praksis vil skabe bedre forståelse og brugervenlighed.
Konklusion
Det var en samlet introduktion med eksempler på betingede eller logiske blokke, der inkluderer IF… ELSE, switch og ternære udsagn. Disse udsagn styres af de logiske operatører som AND, OR, NOT. Sammenlignet med 'skift' -blok 'hvis' -blok er hurtig og enkel. For at håndtere flere samlinger som arrays for at gentage testprocessen er loop-sætninger kritiske.
Næste SoapUI-tutorial # 10 : I næste indlæg lærer vi “Objektorienteret Groovy Scripting i SoapUI”.
Flere nyttige begreber kommer i de næste SoapUI Groovy Script-vejledninger. Fortsæt med at læse, og del venligst dine oplevelser og spørgsmål i kommentarerne nedenfor.
Anbefalet læsning
- Sådan håndteres undtagelser i SoapUI Groovy Scripts - SoapUI Tutorial # 11
- Sådan skriver du Basic Groovy Script i SoapUI - SoapUi Tutorial # 6
- Sådan bruges egenskaber i SoapUI Groovy Script - SoapUI Tutorial # 7
- Dybdegående formørkelsesvejledninger til begyndere
- 4 Vigtige funktioner i SoapUI Pro for Pro Audience - SoapUI Tutorial # 12
- 15+ SoapUI Tutorials: Det bedste API-testværktøj til webtjenester
- Trin for trin SoapUI Download- og installationsproces - SoapUI Tutorial # 3
- En hurtig SoapUI-guide til lagring af anmodnings- og svardata i en fil - SoapUI-vejledning nr. 15