learn advanced soapui groovy scripting concepts soapui tutorial 9
Tutorialele anterioare SoapUI au fost o introducere în SoapUI și conceptele sale de programare. Vom trece de acum înainte la concepte de scriptare Groovy mai avansate. Să fim cu asta Declarații de flux condiționat - atât declarații booleene, cât și declarații iterative. Apoi vom trece la colectarea matricelor.
Acesta este al 9-lea tutorial din Seria de tutoriale SoapUI .
Instrucțiunile condiționale sunt utilizate pentru a controla fluxul execuției. Iată diferite tipuri de afirmații condiționate în Groovy.
Ce veți învăța:
- # 1. Afirmații logice sau de control:
- # 2. Declarații în buclă sau iterative:
- # 3. Colecția matrice:
- Concluzie
- Lectură recomandată
# 1. Afirmații logice sau de control:
Aceste afirmații au ca rezultat adevărat sau fals pe baza condițiilor logice. Ele sunt ȘI, SAU și NU. Simbolurile utilizate sunt „&& (și)”, „|” | și '! (Exclamare) ’, respectiv. Comportamentul este așa cum este menționat în tabelul adevărului:
Tabelul adevărului operatorului „Și”:
Tabelul adevărului operatorului „SAU”:
Operator „NU” în scop de negare
cel mai bun convertor de la YouTube la mp3
Declarație condiționată: limbajele de programare acceptă următoarele afirmații condiționale:
- Dacă ... altfel declarație
- Dacă ... altfel dacă ... altfel declarație
- Operator ternar
- Declarație de comutare
A) dacă ... altfel blocați sintaxa:
dacă
{
}
Altfel
{
}
În această sintaxă, când se întâlnește adevărată, instrucțiunea dată va fi executată. Trebuie să anexăm enunțurile prin acolade dacă blocul conține mai multe linii. Aceasta instruiește întregul bloc să se execute pe baza condiției.
Uită-te la fragmentul de cod de exemplu.
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'); }
Un dacă ... altfel ... declarația trebuie să conțină un singur bloc ELSE.
B) Blocuri condiționale multiple: if ... else if ... else sintaxă
dacă
{
}
Altfel dacă
{
}
Altfel
{
}
Dacă ... altfel dacă ... altfel afirmația este puțin diferită de dacă ... altfel ... declarație- în termenii pe care îi are altfel dacă bloc. Acest bloc este utilizat pentru adăugarea mai multor condiții. Uită-te la următorul exemplu.
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'); }
Și uitați-vă la captura de ecran de ieșire pentru scriptul de mai sus: De asemenea, vă rugăm să utilizați acest lucru ca referință și pentru exemplul operatorului boolen:
C) Operator ternar:
Acest operator funcționează similar cu dacă ... altfel afirmație. Are doi operanzi, cum ar fi semnul întrebării (TRUE) și colon pentru declarațiile FALSE / implicite.
def A = 100
def B = (A> 100) ? 'TRECUT PICAT'
log.info (B)
Iată captura de ecran pentru scriptul de mai sus.
D) Comutarea carcasei: Această declarație permite mai multe ramuri condiționate cu valori diferite. De asemenea, acceptă compararea referințelor la obiecte de clasă, expresii regulate, colecții precum matrici, liste etc.
Intrerupator
{
carcasa:
;
pauză;
carcasa:
;
pauză;
Mod implicit:
;
}
ce downloader de muzică este cel mai bun
caz afirmațiile compară valorile cu intrerupator valoarea cazului. Dacă este o potrivire, atunci se execută blocul de caz corespunzător. Odată ce blocul este executat, acesta trebuie oprit de cuvântul cheie „break”. Dacă am ratat cuvântul cheie „break” la sfârșitul declarației de caz, execuția va fi mutată la următoarea instrucțiune de caz - și ar putea să nu fie necesar. În cazul în care niciunul dintre cazuri nu este adevărat, Mod implicit blocul va fi executat. Vă rugăm să rețineți că Groovy acceptă toți principalii operatori și cuvinte cheie, deoarece este încorporat în bibliotecile 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. Declarații în buclă sau iterative:
Acestea permit repetarea ori de câte ori avem nevoie și sunt utile în special pentru testarea bazată pe date.
De exemplu, să presupunem că avem câteva coduri poștale într-un fișier excel. Pentru a prelua toate codurile poștale unul câte unul din fișierul Excel și trece-le la service, adică GetSuppliersZipcode , putem folosi enunțuri iterative. SoapUI oferă, de asemenea, o caracteristică alternativă numită sursă de date și etape de testare a buclei sursei de date (disponibilă numai în versiunea de încercare și versiunile licențiate SoapUI Pro).
Putem folosi următoarele afirmații iterative în scenariul groovy:
- Pentru buclă
- În timp ce bucla
Pentru buclă:
pentru (; ; )
{
;
}
În sintaxa de mai sus, inițializarea denotă punctul de pornire al buclei și, pe baza condiției, bucla va continua sau va opri execuția.
Vedeți scriptul de mai jos
pentru (int i = 1; i<=10; i++)
{
log.info (‘Buclă Iterată‘ + i + ‘ori’);
}
Scriptul de mai sus va produce rezultatele așa cum se arată în următoarea captură de ecran.
Acum, să folosim declarația de control și declarația iterativă în lumea noastră reală de testare. Urmați pașii de mai jos:
- Adăugați Testcase cu numele dorit. Am creat ca „T9_GetSupplierByZipCode_TestCase”.
- Apoi adăugați o proprietate numită „Property_Zipcode”
- Adăugați pasul Cerere de test pentru serviciul „GetSupplierByZipCode” și introduceți numele proprietății în cerere așa cum se arată în captura de ecran.
Adăugați pasul de testare a scenariului groovy așa cum se arată în următoarea captură de ecran.
În editorul de scenarii groovy, scrieți următorul script.
for (int zipCode=1; zipCode5) { log.info('**************Stopped Execution*************'); break; } testStep.run(testRunner,context); log.info('Executed ' + zipCode + ' times') }
Următorul rezultat este primit în jurnal, precum și în ecranul de răspuns al serviciului.
(Faceți clic pe imagine pentru vizualizare mărită)
Bucla „în timp ce”:
Sintaxă:
in timp ce
{
;
}
Logica de mai sus poate fi implementată folosind și bucla „while”.
Prin urmare, esența este că afirmația iterativă poate fi utilizată pentru:
- Executați cazurile de testare sau pașii de testare în mod repetat
- Controlați fluxul execuției prin instrucțiunile de control.
# 3. Colecția matrice:
Colectarea matrice ajută la stocarea mai multor valori într-o singură variabilă sau obiect. Indexul matricei începe de la zero în mod implicit și trebuie să folosim acel index cu numele matricei pentru a accesa valoarea corespunzătoare stocată în matrice. Sintaxa pentru a declara matrici în script groovy:
arrayName = obiect nou (5) sau,
arrayName = obiect nou (10) () sau,
arrayName = new Object (10) (10) ()
Notă : În timp ce declarăm matricele, trebuie să specificăm dimensiunea inițială, altfel va genera o eroare de compilare. Iată exemplul simplu pentru matricea unidimensională.
ArrayObj = obiect nou (5);
ArrayObj (0) = „Testcase1”;
ArrayObj (1) = „Testcase2”;
ArrayObj (2) = „Testcase3”;
ArrayObj (3) = „Testcase4”;
ArrayObj (4) = „Testcase5”;
Acum, să implementăm acest lucru în pașii noștri de testare obișnuiți. Așadar, adăugați proprietatea, cererea de testare și pasul de testare a scriptului în suita de testare a proiectului, așa cum se arată în următoarea captură de ecran.
Și apoi faceți dublu clic pe pasul de testare a scriptului și scrieți următorul script.
cum se folosește double în java
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.
Deci, matricile sunt foarte utile pentru a gestiona mai multe elemente cu diferite tipuri. Mai multă practică va favoriza o mai bună înțelegere și ușurință în utilizare.
Concluzie
Aceasta a fost o introducere generală, cu exemple de blocuri condiționate sau logice care includ IF ... ELSE, switch și declarații ternare. Aceste afirmații sunt controlate de operatori logici precum AND, OR, NOT. În comparație cu blocul „comutați”, blocul „dacă” este rapid și simplu. Pentru a gestiona mai multe colecții, cum ar fi matrici pentru a itera procesul de testare, instrucțiunile de buclă sunt critice.
Următorul tutorial SoapUI # 10 : În următoarea postare vom învăța „Scripturi groovy orientate pe obiecte în SoapUI”.
Mai multe concepte utile apar în următoarele tutoriale SoapUI Groovy Script. Continuați să citiți și vă rugăm să împărtășiți experiențele și întrebările dvs. în comentariile de mai jos.
Lectură recomandată
- Cum să gestionați excepția în scripturile SoapUI Groovy - Tutorialul SoapUI # 11
- Cum se scrie un script groovy de bază în SoapUI - Tutorialul SoapUi # 6
- Cum se utilizează proprietăți în SoapUI Groovy Script - Tutorial SoapUI # 7
- Tutoriale detaliate pentru eclipsă pentru începători
- 4 Caracteristici importante ale publicului SoapUI Pro pentru Pro - Tutorial SoapUI # 12
- 15+ Tutoriale SoapUI: Cel mai bun instrument de testare API pentru servicii web
- Proces de descărcare și instalare SoapUI pas cu pas - Tutorial SoapUI # 3
- Un ghid rapid SoapUI pentru stocarea datelor de solicitare și răspuns într-un fișier - Tutorial SoapUI nr. 15