SoapUI Common Assertions
în cele două articole anterioare, am acoperit detaliile afirmațiilor specifice testului, care erau aplicabile numai pentru un anumit tip de TestCase sau WebService testat. Toate afirmațiile menționate în articolul „SoapUI test Specific Assertions: REST Services” sunt aplicabile numai pentru serviciile web REST și toate afirmațiile menționate în articolul „SoapUI Test Specific Assertions: Soap Services” sunt aplicabile numai serviciilor web SOAP. Acum, SoapUI oferă și alte câteva afirmații, care sunt aplicabile atât pentru SOAP, cât și pentru serviciile de odihnă și sunt cunoscute sub numele de SoapUI afirmații comune. În acest articol, vom înțelege utilizarea tuturor acestor afirmații comune acoperind detaliile din următoarele subiecte:
- care sunt afirmațiile conținutului proprietății comune în SoapUI?
- ce conține afirmația în SoapUI?
- în plus, ceea ce nu este conține afirmație în SoapUI?
- ce este afirmația XPath în SoapUI?
- ce este XQuery meci Asertionin SoapUI?
- în mod similar, care sunt afirmațiile comune de conformitate, statut și Standard în SoapUI?
- care sunt afirmațiile codurilor de stare HTTP furnizate de SoapUI?
- în plus, care sunt afirmațiile de Conformitate a schemei în SoapUI?
- care sunt afirmațiile SLA comune în SoapUI?
deoarece toate aceste afirmații sunt aplicabile atât pentru serviciile SOAP, cât și pentru REST, vom folosi următoarele informații pentru validarea tuturor acestor afirmații:
- proiectul REST creat folosind URI: „http://bookstore.toolsqa.com/BookStore/v1/Books ” și proiectul SOAP creat folosind WSDL:” http://bookstore.toolsqa.com/BookStoreService.wsdl „conform detaliilor menționate în articolul” SoapUI: lucrul cu proiecte.”
- puteți consulta ieșirea eșantionului proiectului REST din articolul „SoapUI Test afirmații specifice: servicii REST” și ieșirea eșantionului proiectului SOAP din articolul „SoapUI Test afirmații specifice: servicii SOAP”.
care sunt afirmațiile conținutului proprietății comune în SoapUI?
după cum știm deja, afirmațiile conținutului proprietății validează conținutul răspunsului primit. SoapUI oferă mai multe afirmații de conținut care sunt aplicabile atât pentru soap, cât și pentru cererile de odihnă. Să vedem în secțiunile de mai jos, cum putem folosi aceste afirmații?
ce conține afirmația în SoapUI?
conține aserțiunea caută existența unui simbol șir în valoarea proprietății.
luați în considerare un scenariu care, în serviciul Librăriei, trebuie să verificăm dacă există o carte cu numele autorului „Richard E. Silverman”?Să urmăm pașii menționați mai jos pentru a valida același lucru folosind afirmația „conține:
- mai întâi, navigați la caseta de dialog Adăugare afirmație. După aceea, faceți clic pe afirmația” conține „din categoria afirmației ” conținut de proprietate”, așa cum este evidențiat mai jos:
- în al doilea rând, faceți clic pe butonul „Adăugați” și va afișa caseta de dialog „conține afirmație”, așa cum se arată mai jos:
-
în al treilea rând, introduceți numele autorului „Richard E. Silverman” în secțiunea „Conținut”. Este șirul de căutare pe care doriți să îl validați în răspunsul serviciului Web.
-
în al patrulea rând, în caseta de dialog de mai sus, veți vedea și două casete de selectare. Acestea sunt:
- ignorare caz: dacă bifați caseta de selectare ignorare caz, aceasta va valida șirul ignorând cazul. Să presupunem că tastați ” richARD E. SilVerMan „în caseta de text a conținutului și bifați caseta de selectare” ignorați cazul în comparație”. În plus, va ignora cazul și va verifica doar valoarea șirului introdus.
deci, afirmația va trece ca caracterele din șir sunt aceleași dacă ignorăm cazul.
- expresie regulată: dacă doriți să validați ieșirea pe baza unui RegEx, puteți bifa această casetă de selectare și apoi să specificați expresia regulată în secțiunea Conținut. SoapUI urmează modelele de expresie regulate specificate de Oracle, de exemplu, dacă dorim să validăm că răspunsul serviciului de carte conține „O ‘ Reilly” în răspuns, puteți specifica „.O ‘ Reilly.”ca RegEx în secțiunea Conținut, așa cum se arată mai jos:
Deci, putem valida existența unui șir în răspunsul serviciului Web folosind afirmația conține și putem folosi acest lucru atât pentru Soap, cât și pentru serviciile web REST.
ce nu conține afirmație în SoapUI?
spre deosebire de Conține afirmația, not conține aserțiunea caută inexistența unui șir în valoarea proprietății. Mai mult, această afirmație va trece dacă răspunsul nu conține valoarea specificată.
să presupunem; vrem să validăm că nu există nicio carte cu titlul „carte Groovy” în răspunsul serviciului librăriei, putem folosi această afirmație pentru a valida răspunsul API-ului Librăriei.
să urmăm pașii menționați mai jos pentru a valida aceeași afirmație folosind „nu conține:
- în primul rând, navigați la Adăugați caseta de dialog aserțiune și faceți clic pe afirmația” nu conține „din categoria aserțiune ” conținut de proprietate”, așa cum este evidențiat mai jos:
-
în al doilea rând, faceți clic pe butonul „Adăugați” și va afișa caseta de dialog” NotContains Assertion”, așa cum se arată mai jos:
-
în al treilea rând, introduceți numele șirului „Groo Book” în secțiunea „Conținut”. Șirul de căutare pe care doriți să îl validați nu există în răspunsul serviciului Web.
Notă: cele două casete de selectare(ignorați cazul & RegEx) funcționează aici în același mod, așa cum au fost cu afirmația conține.
- în al patrulea rând, făcând clic pe butonul” OK ” va executa afirmația împotriva răspunsului serviciului Web și va afișa rezultatul, așa cum se arată mai jos:
- deci, atâta timp cât șirul nu este prezent în răspunsul serviciului țintă, afirmația va trece.
ce este afirmația meciului XPath în SoapUI?
afirmația XPath Match vă permite să utilizați o expresie XPath pentru a selecta conținutul din nodul specific al răspunsului țintă și a-l compara cu valoarea pe care o așteptați.
să presupunem că doriți să validați că ISBN din prima carte prezentă în răspunsul API Librărie nu este nul. Putem valida rapid același lucru folosind afirmația XPath.
să urmăm pașii menționați mai jos pentru a valida același lucru folosind afirmația „XPath Match” :
- în primul rând, navigați la Adăugați caseta de dialog aserțiune. După aceea, faceți clic pe afirmația „XPath Match ” din categoria” Property Content”, așa cum este evidențiat mai jos:
- în al doilea rând, faceți clic pe butonul „Adăugați” și va afișa caseta de dialog „Xpath Match Configuration”, așa cum se arată mai jos:
unde,
-
declarați: făcând clic pe acest buton preia și populează automat spațiul de nume. Dacă aveți încredere în detaliile spațiului de nume, îl puteți tasta manual, altfel trebuie doar să faceți clic pe butonul „declarați” și acesta va popula detaliile spațiului de nume așa cum se arată mai jos:
- spațiul de nume pentru serviciul SOAP va fi populat, după cum se arată mai jos:
- în mod similar, spațiul de nume pentru serviciul REST va fi populat, așa cum se arată mai jos:
după declararea spațiului de nume, putem specifica XPATH nodului dorit în secțiunea XPath Expresie.
- puteți specifica un eșantion XPATH”//ns1:BooksResult/ns1:Books/ns1:CustomBookModel / ns1: Isbn” pentru serviciul SOAP așa cum se arată mai jos:
în mod similar, puteți specifica un eșantion XPATH „//ns1: Cărți/ / ns1:e / ns1:isbn” pentru serviciul REST așa cum se arată mai jos:
notați utilizarea spațiului de nume ns1 în ambele cazuri. Pentru accesarea nodurilor, utilizarea spațiului de nume este obligatorie.
- selectați din curent: făcând clic pe acest buton, acesta va selecta automat valoarea nodului așa cum sa menționat mai sus în secțiunea rezultat așteptat, care este isbn în cazul de mai sus. În plus, va selecta valoarea nodului isbn ca „9781449325862”. Dacă nu doriți să selectați automat valoarea făcând clic pe acest buton, puteți chiar să tastați rezultatul așteptat și manual.
- Test: făcând clic pe butonul „Test”, puteți testa ieșirea, dacă afirmația trece, va afișa alerta de succes de mai jos:
sau în cazul în care afirmația nu reușește, aruncă eroare și arată o casetă de dialog,așa cum se arată mai jos:
- casete de selectare opționale: secțiunea rezultat așteptat oferă și câteva casete de selectare, care oferă ajutor suplimentar în validarea afirmației. Să înțelegem detaliile acestor casete de selectare:
- Allow Wildcard Checkbox: dacă valoarea pe care dorim să o validăm se modifică dinamic în răspunsul țintă, atunci putem folosi wildcard-urile pentru a valida răspunsul. Să presupunem că, dacă considerăm că isbn din cartea 1 se termină întotdeauna cu” 862″, atunci putem folosi WildCard *” 862″, care va valida că isbn se termină întotdeauna cu”862″. Acesta va apărea în secțiunea rezultat așteptat ca:
- ignorați caseta de selectare prefix spațiu de nume: Dacă dorim să ignorăm prefixul spațiului de nume în timp ce validăm răspunsul, putem face acest lucru bifând această casetă de selectare.
- Ignore XML Comments Checkbox: dacă dorim să ignorăm comentariile din răspuns, putem realiza acest lucru selectând această casetă de selectare.
- după explorarea tuturor opțiunilor de mai sus, faceți clic pe butonul Salvare pentru a salva afirmația. Acesta va trece ca afirmația și va primi ISBN așteptat ca „9781449325862”. În consecință, va afișa ieșirea eșantionului după cum urmează:
ce este XQuery Match Assertionin SoapUI?
meciul XQuery este destul de similar cu afirmația XPath, cu singura diferență că folosește o expresie XQuery și o compară cu rezultatul pe care îl așteptați.
luați în considerare un scenariu să presupunem că doriți să validați toate „titlurile” cărților disponibile în răspuns, indiferent de ordinea în care acestea există. Puteți scrie un XQuery simplu și apoi sunteți bine să mergeți.
să urmăm pașii menționați mai jos pentru a valida același lucru folosind afirmația „XQueryMatch:
- mai întâi, navigați la caseta de dialog Adăugare afirmație. După aceea, faceți clic pe afirmația „XQuery Match” din categoria de afirmații „Property Content”, așa cum este evidențiat mai jos:
- în al doilea rând, faceți clic pe butonul „Adăugați” și va afișa caseta de dialog „configurația meciului XQuery”, așa cum se arată mai jos:
unde,
- XQuery Expression: aceasta este expresia XQuery pe care trebuie să o specificați pentru a extrage valoarea din răspunsul serviciului Web. De exemplu, pentru a obține titlul tuturor cărților, putem specifica expresia XQuery după cum urmează:
<Result>{for$z in //*:CustomBookModelreturn (<Title>{data($z/*:Title)}</Title>)}</Result>
în fragmentul de cod de mai sus:
-
<Result>
este eticheta în care va stoca rezultatul pe baza răspunsului XQuery. Mai mult, poate fi orice etichetă bazată pe alegerea utilizatorului. - în plus, iterăm răspunsul folosind bucla for, iar $z este orice variabilă, care va obține valoarea de la
<CustomBookModel>
. - //. specifică rădăcina CustomBookModel, puteți naviga, de asemenea, folosind Namespace și apoi specificând namespace în loc de **”//.”.***
- în plus față de cele de mai sus, funcția „return” va returna valoarea etichetei
<Title>
. - de asemenea, funcția „date” returnează datele fiecărei etichete de titlu din eticheta
<CustomBookModel>
.
2) Selectați din curent: Faceți clic pe buton pentru a selecta valoarea curentă din Răspuns conform XQuery-ului menționat.
3) rezultat așteptat: după ce faceți clic pe butonul „Selectați din curent”, acesta va returna toate titlurile din răspunsul serviciului. De asemenea, puteți specifica manual rezultatul așteptat.
4) făcând clic pe butonul „Test” va afișa răspunsul de succes, așa cum se arată mai jos:
- dacă faceți clic pe butonul” OK”, se va afișa executarea validă a afirmației.
care sunt afirmațiile comune de conformitate, statut și Standard în SoapUI?
la fel ca afirmațiile comune furnizate de SoapUI în secțiunea „Conținut de proprietate”, Acesta oferă, de asemenea, unele afirmații din categoria „conformitate, stare și standard” afirmații, care sunt comune atât pentru SOAP, cât și pentru serviciile web REST. Să înțelegem detaliile tuturor acestor afirmații în următoarele secțiuni:
care sunt afirmațiile codurilor de stare HTTP furnizate de SoapUI?
după cum știm cu toții, codurile de stare HTTP reprezintă dacă o cerere HTTP a fost finalizată sau nu. Toate aceste coduri de răspuns se împart în general în următoarele categorii:
1 | 1xx: informativ: aceste coduri de stare reprezintă primirea cererii și prelucrarea acesteia. |
2 | 2xx: succes: aceste coduri de stare reprezintă faptul că acțiunea a fost primită, procesată și acceptată cu succes. |
3 | 3xx: redirecționare: aceste coduri de stare reprezintă faptul că există acțiuni suplimentare care sunt necesare pentru a finaliza cererea. |
4 | 4xx: eroare Client: aceste coduri de stare reprezintă faptul că cererea conține sintaxă incorectă, sau există ceva în neregulă cu cererea noastră. |
5 | 5xx: eroare Server: aceste coduri de stare reprezintă faptul că există o eroare de Server-side, ceea ce înseamnă că serverul nu a reușit să îndeplinească o cerere validă. |
pentru validarea acestor coduri de stare, SoapUI oferă câteva afirmații. Să înțelegem detaliile acestor afirmații în următoarele secțiuni:
ce este o afirmație validă a codurilor de stare HTTP în SoapUI?
această afirmație validează faptul că codul de răspuns HTTP returnat de serviciul web se află în Lista codurilor HTTP așteptate.
luați în considerare un scenariu care, pentru API-ul Librăriei, dorim să validăm că codul de răspuns returnat este întotdeauna fie 200, fie 201. Putem folosi afirmația „coduri de stare HTTP valide” pentru a valida același lucru.
să urmăm pașii menționați mai jos pentru a valida același lucru folosind afirmația „coduri de stare HTTP valide:
- navigați la Adăugați caseta de dialog aserțiune și faceți clic pe afirmația „coduri de stare HTTP valide” din categoria aserțiune „conformitate, stare și Standard”, așa cum este evidențiat mai jos:
- Faceți clic pe butonul „Adăugați” și va afișa caseta de dialog” valid HTTP status codes Assertion Configuration”, așa cum se arată mai jos:
- în secțiunea” specificați codurile”, puneți valorile 200, 201. Puteți specifica fie un singur cod, fie o listă de coduri separate prin virgulă. Dacă faceți clic pe butonul” OK”, veți valida codurile de stare HTTP în raport cu ultimul răspuns al serviciului.
ce este o afirmație nevalidă a codurilor de stare HTTP în SoapUI?
spre deosebire de afirmația „coduri de stare HTTP valide”, afirmația „coduri de stare HTTP nevalide” validează faptul că lista „coduri așteptate” nu conține codul de stare HTTP returnat de serviciul Web.
luați în considerare un scenariu care, pentru API-ul Librăriei, dorim să validăm că codul de răspuns returnat nu este 401. Putem folosi afirmația „coduri de stare HTTP nevalide” pentru a valida același lucru.
să urmăm pașii menționați mai jos pentru a valida același lucru folosind afirmația „coduri de stare HTTP nevalide:
- navigați la Adăugați caseta de dialog aserțiune și faceți clic pe afirmația „coduri de stare HTTP nevalide” din categoria aserțiune „conformitate, stare și Standard”, așa cum este evidențiat mai jos:
- Faceți clic pe butonul” Add”, și se va afișa caseta de dialog „invalid HTTP status codes Assertion Configuration”, așa cum se arată mai jos:
- în secțiunea” specificați codurile”, puneți valorile 401. Puteți specifica fie un singur cod, fie o listă de coduri separate prin virgulă. Dacă faceți clic pe butonul” OK”, veți valida inexistența codurilor de stare HTTP față de ultimul răspuns al serviciului.
notă: putem aplica aceste afirmații atât punctelor finale SOAP, cât și repausului.
care sunt afirmațiile de Conformitate a schemei în SoapUI?
în afară de codurile de stare, în SoapUI, putem valida și mesajul de răspuns împotriva definiției din WSDL(SOAP) sau WADL(REST) a serviciului țintă testat.
luați în considerare un scenariu pe care dorim să-l verificăm rapid dacă răspunsul SOAP pe care îl primim este compatibil cu WSDL sau nu?
să urmăm pașii menționați mai jos pentru a valida același lucru folosind afirmația „conformitate schemă:
- navigați la Adăugați caseta de dialog aserțiune și faceți clic pe afirmația „conformitate schemă” din categoria aserțiune „conformitate, stare și Standard”, așa cum este evidențiat mai jos:
-
Faceți clic pe butonul „Adăugați” și va afișa caseta de dialog „Schema Compliance Assertion Configuration”, așa cum se arată mai jos:
-
în caseta de dialog Configurare, populează automat WSDL, care a creat proiectul, dar dacă doriți să specificați un alt WSDL, îl puteți actualiza. Faceți clic pe OK pentru a continua.
- dacă răspunsul este conform conform schemei menționate, veți vedea răspunsul de succes, așa cum se arată mai sus. Veți vedea eroarea ori de câte ori ultimul răspuns nu este conform cu schema WSDL.
notă: În mod similar, puteți valida răspunsul serviciului REST împotriva unui WADL specificat.
care sunt afirmațiile SLA comune în SoapUI?
după cum știm cu toții, un acord la nivel de serviciu(SLA) este denumit în general acordul dintre un furnizor de servicii și un client. Acordul poate fi clasificat după diferite caracteristici convenite, cum ar fi disponibilitatea, calitatea, timpul de răspuns etc. SoapUI oferă funcționalitatea pentru a valida timpul de răspuns al unui anumit serviciu.
luați în considerare un scenariu ipotetic conform căruia timpul de răspuns convenit pentru serviciul web al librăriei este mai mic de 4 secunde. Putem valida același lucru în SoapUI folosind categoriile de afirmații” SLA”.
să urmăm pașii de mai jos pentru a valida aceeași folosind „răspuns SLA” afirmație:
- navigați la Adăugați caseta de dialog aserțiune și faceți clic pe afirmația „răspuns SLA” din categoria aserțiune „SLA”, așa cum este evidențiat mai jos:
- Faceți clic pe butonul „Add”, și se va afișa caseta de dialog” Response sla Assertion configuration”, așa cum se arată mai jos:
- specificați timpul maxim (în ms), în care serviciul se așteaptă să returneze răspunsul. Pentru scenariul nostru, am specificat 4000 ms. Faceți clic pe butonul OK pentru a adăuga afirmația. Acesta va afișa rezultatul testului, așa cum se arată mai jos:
- după cum putem vedea în captura de ecran de mai sus, deoarece timpul de răspuns al serviciului a fost de 1374 ms, așa că a fost sub sla menționat de 4000 ms și a dus la o afirmație de succes.
Takeaways cheie
- SoapUI oferă o gamă largă de afirmații care pot fi aplicate atât SOAP și servicii web REST.
- în plus, puține dintre afirmațiile comune sunt Conțin, nu conțin, Xpath și XQuery Match, care sunt utilizate pentru validarea răspunsului conținutului Serviciului Web.
- mai mult, un alt set de afirmații comune furnizate de SoapUI este utilizat pentru validarea codurilor de stare HTTP și a schemei răspunsului serviciilor Web.
- de asemenea, SoapUI oferă, de asemenea, o afirmație SLA care poate fi utilizată pentru validarea timpului de răspuns al serviciilor SOAP și REST.
să trecem la următorul articol în care ne vom scufunda în continuare pentru a înțelege cum putem implementa unele afirmații avansate folosind „afirmații Script” în SoapUI.