Afirmații în SoapUIScripturi, XQuery, tipuri XPath

⚡ Rezumat inteligent

Afirmații în SoapUI sunt punctele de control care decid dacă răspunsul unui serviciu web este corect, transformând o cerere care se execută doar într-un test care trece sau eșuează pe conținut real, verificabil.

  • 🔘 Categorii: Conținut de proprietăți, Conformitate/Stare/Standarde, Script, SLA, JMS și Securitate.
  • ☑️ Conţine: Confirmă existența unui șir de caractere în răspuns, cu suport pentru expresii regulate.
  • Nu conține: Confirmă absența unui șir de caractere, util pentru token-uri de eroare și câmpuri scurse.
  • 🧪 Potrivire XPath: Declarați mai întâi spațiul de nume, apoi vizați un nod și comparați valoarea acestuia.
  • 🛠️ Potrivire XQuery: Validează seturi de noduri repetitive care altfel ar necesita sute de verificări XPath.
  • 📊 script: Groovy Aserțiunile gestionează răspunsuri dinamice și logica de configurare sau demontare.
  • 🔍 Depanare: Spațiul de nume greșit și sintaxa cu punct în loc de două puncte cauzează majoritatea eșecurilor.

Afirmații în SoapUI

Ce este o afirmație?

Aserțiune înseamnă act de afirmare sau afirmare a ceva. Poate fi interpretat și ca punct de verificare sau punct de validare.

Odată ce o cerere este trimisă către un server web, se primește un răspuns. Trebuie să validăm dacă răspunsul conține datele pe care le așteptăm. Pentru a valida răspunsul, trebuie să folosim aserțiuni. Fără o aserțiune, un pas de testare dovedește doar că serviciul a răspuns, nu că a răspuns corect, motiv pentru care fiecare Testarea API-ului ar trebui să poarte cel puțin unul.

Tipuri de afirmații

Există diverse modalități de a afirma un răspuns; cu toate acestea, ne vom concentra asupra celor utilizate în mod obișnuit SoapUI tipuri de afirmații în timpul validării unui răspuns. Mai jos sunt categoriile disponibile în versiunea Open Source a SoapUI.

  1. Conținutul proprietății
  2. Standard de stare de conformitate
  3. Scenariu
  4. SLA
  5. JMS
  6. Securitate

Dialogul grupează fiecare afirmație în aceste categorii, așa cum se arată în captura de ecran de mai jos.

Categoriile de afirmații enumerate în SoapUI Caseta de dialog Adăugare afirmație
Tipuri de afirmații în SoapUI

Pe lângă cele enumerate mai sus, versiunea Pro are și o aserțiune JDBC încorporată, prin care putem confirma dacă serviciul web a actualizat corect baza de date.

Notă privind versiunea: curent SoapUI documentația enumeră, de asemenea, o JDBC categorie (Stare JDBC și Expirare JDBC) alături de categoriile de mai sus și o Continutul mesajului afirmație în interiorul conținutului proprietății pentru o comparație XML mai bogată. Ediția comercială denumită aici „Pro” este acum vândută ca ReadyAPI de SmartBear, astfel încât etichetele meniurilor din versiunile mai noi se pot citi diferit, în timp ce comportamentul aserțiunilor rămâne același.

Conține Aserțiune

Caută existența șirului specificat. De asemenea, susține expresia regulată.

Vom continua cu același exemplu din tutorialul anterior cu cerere WSDL ca http://www.dneonline.com/calculator.asmxDacă nu ați construit încă acel proiect, continuați crearea unui proiect, a unei suite de teste și a unui caz de testare mai întâi.

Pasul 1: În mod implicit, nu există aserțiuni.

  1. Numărul de aserțiuni este afișat în fila Aserțiuni.
  2. Pentru a adăuga o nouă afirmație, faceți clic pe butonul „Adăugați o nouă afirmație”.

SoapUI Fila Aserțiuni care nu afișează nicio aserțiune și butonul Adăugare aserțiune nouă

Pasul 2: Acum,

  1. Selectați Categoria de aserțiune.
  2. Selectați tipul de afirmație.
  3. Faceți clic pe „Adăugați”

Caseta de dialog Adăugați o aserțiune cu categoria și tipul de aserțiune selectate

Pasul 3: Să validăm dacă șirul „46” există în răspuns. Faceți clic pe „OK”.

Notă: putem ignora, de asemenea, majuscule și litere și adăugați expresii regulate.

Conține caseta de dialog de configurare a aserțiunii cu valoarea 46 introdusă

Pasul 4: La adăugare, aserțiunea este executată imediat și arată dacă este VALIDĂ sau INVALIDĂ.

Fila Aserțiuni care raportează aserțiunea Conține ca fiind VALIDĂ

Pasul 5: Acum să presupunem că modificăm conținutul lui „Conține aserțiunea” în SoapUIla „47” și vedem ce se întâmplă.

Editarea conținutului aserțiunii „Conține” de la 46 la 47

Pasul 6: Aserțiunea este executată, iar rezultatul este afișat utilizatorului. Deoarece nu avem șirul de caractere „47” în răspuns, aserțiunea a eșuat.

Fila Aserțiuni raportează aserțiunea Conține ca fiind eșuată

Nu Conține Aserțiune

Omologul său funcționează invers. Caută inexistența șirului specificat. De asemenea, acceptă expresii regulate.

Pasul 1: După ce faceți clic pe butonul „adăugați afirmații noi”,

  1. Selectați Categoria de aserțiune.
  2. Selectați tipul de afirmație – În acest caz, „NU conține”
  3. Faceți clic pe „Adăugați”

Caseta de dialog Adăugați o afirmație cu opțiunea NU conține selectată

Pasul 2: Să validăm dacă șirul „intA” există în răspuns. Introduceți șirul „FromCurrency” și faceți clic pe „OK”.

Dialogul de afirmație „Nu conține” cu șirul FromCurrency introdus

Pasul 3: De îndată ce este adăugată o aserțiune, aceasta se execută și afișează rezultatul. Până acum am adăugat două aserțiuni, prin urmare ambele aserțiuni sunt executate și afișează rezultatul.

Fila Aserțiuni care afișează atât rezultatele Conține, cât și cele Nu Conține

Pasul 4: Acum haideți să modificăm conținutul aserțiunii „Not Contains” și să vedem ce se întâmplă. Vom verifica dacă șirul de caractere „AddResult” nu există.

Verificarea dialogului de afirmație „Nu conține” pentru token-ul AddResult

Pasul 5: Șirul „AddResult” este prezent în răspuns, prin urmare, aserțiunea „NOT Contains” va eșua, așa cum se arată mai jos.

Aserțiunea „Nu conține” eșuează deoarece AddResult este prezent.

Afirmația de potrivire XPath

Potrivirea șirurilor de caractere este directă, așa că următoarea aserțiune vizează un singur nod. Se folosește expresia XPath pentru a selecta nodul țintă și valorile sale. XPath, este un limbaj de interogare XML pentru selectarea nodurilor dintr-un document XML.

Pasul 1: După ce faceți clic pe butonul „Adăugați afirmații noi”,

  1. Selectați Categoria de aserțiune.
  2. Selectați tipul de afirmație – În acest caz, „Potrivire XPath”
  3. Faceți clic pe „Adăugați”

Caseta de dialog Adăugare afirmație cu opțiunea XPath Match selectată

Pasul 2: Se deschide fereastra Adăugare XPath.

Înainte de a adăuga un SoapUI XPath, trebuie să declarăm spațiul de nume. Un spațiu de nume XML este o colecție de nume, identificate printr-o referință URI (Uniform Resource Identifier), care sunt utilizate în documentele XML ca nume de elemente și atribute. Același lucru este utilizat și în SoapUI Afirmație XPath.

Pentru a declara un spațiu de nume XML, trebuie doar să facem clic pe butonul „Declară”, care ar face treaba pentru noi, altfel putem declara manual un spațiu de nume.

După declararea spațiului de nume, trebuie să facem referire la XPath folosind spațiul de nume creat.

La clicul pe butonul „Declarare”, vor apărea două spații de nume, deoarece avem două URI-uri. Unul dintre ele este schema. URL iar celălalt corespunde serviciului web propriu-zis URLTrebuie să folosim spațiul de nume real în care se află serviciul web și NU spațiul de nume al schemei atunci când facem referire la XPath. Liniile declarate apar în partea de sus a casetei XPath, așa cum se arată mai jos.

Spațiile de nume SOAP și ns1 declarate în fereastra de aserțiune XPath

declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/';

declare namespace ns1='http://tempuri.org/';

Fereastra de afirmație XPath imediat după ce faceți clic pe Declarare

Pasul 3: Acum trebuie să introducem XPath-ul nodului XML pe care trebuie să-l validăm.

//ns1:AddResult Ne oferă valoarea nodului cuprins între & și ns1 corespunde spațiului de nume declarat care indică „http://tempuri.org/”

După introducerea XML-ului, trebuie să facem clic pe „Selectează din curent”, astfel încât valoarea din răspunsul curent să fie preluată pentru comparație în continuare.

Expresia XPath introdusă cu opțiunea „Selectare din curent” evidențiată

Pasul 4: Până acum,

  1. După declararea spațiilor de nume, am intrat în nodul XPath of XML pe care trebuie să-l validăm.
  2. Trebuie să facem clic pe „Selectați din curent” pentru a face ca valoarea curentă să fie valoarea așteptată.
  3. Valoarea curentă este afișată utilizatorului, pe care o putem modifica dacă este necesar.
  4. Faceți clic pe „Salvați”.

Configurația XPath Match care afișează valoarea așteptată și butonul Salvare

Pasul 5: Afirmația adăugată în SoapUI va fi afișat așa cum se arată mai jos.

Fila Aserțiuni care afișează aserțiunea XPath Match adăugată

Afirmații de scriptare

Această tehnică de aserțiune este cea mai utilizată, deoarece este extrem de dificil de gestionat și menținut sute de aserțiuni.

SoapUI folosește fie Groovy Scripting sau JavaScenariu pentru aserțiuni de scriptare. Tehnica de scriptare este adoptată pentru dezvoltareping un cadru pentru testarea SOAP. Aserțiunile de scripting sunt utilizate în următoarele circumstanțe.

  • Scriptarea permite utilizatorului să efectueze anumite operațiuni înainte și după executarea unui caz de testare folosind metodele de configurare și respectiv demontare. Configurarea este o procedură care se execută înainte de executarea unei anumite metode (exemplu - crearea și inițializarea obiectului), în timp ce demontarea este o procedură care se execută după executarea metodei (de exemplu: distrugerea obiectelor și curățarea). Această funcționalitate nu este disponibilă în alte tipuri de aserțiuni și poate fi realizată doar prin codare.
  • Permite utilizatorilor să deschidă/închidă un proiect, pentru a inițializa sau curăța setările aferente proiectului și, de asemenea, să lucreze cu variabile de mediu, ceea ce este foarte util în timpul scriptării.
  • Ne ajută să afirmăm un conținut dinamic de răspuns.
  • Aserțiunile de scriptare sunt utilizate pentru crearea de aserțiuni definite de utilizator care NU sunt predefinite de SoapUI.

Pentru demonstrarea unei afirmații Script în SoapUI, vom folosi calculatorul WSDL, cazul de test „Add” pe care l-am creat anterior.

Pasul 1: Pașii pentru adăugarea unui script groovy sunt aceiași ca și pentru alte aserțiuni, cu excepția faptului că aserțiunea nu este una predefinită. În schimb, este o aserțiune definită de utilizator, care oferă flexibilități mai mari decât cele încorporate.

Selectați pasul Test față de care trebuie adăugată afirmația.

Etapa de testare selectată în SoapUI navigator înainte de a adăuga o afirmație

Faceți clic pe butonul „Adăugați o afirmație”, așa cum se arată mai jos.

Adăugați butonul Aserțiune în bara de instrumente pentru aserțiunile pasului de testare

Pasul 2: Acum selectați categoria Afirmație.

  1. În acest caz este Script.
  2. Selectați SoapUI Aserțiune de script și nu există subtipuri asociate cu aceasta.
  3. Faceți clic pe „Adăugați”.

Caseta de dialog Adăugare afirmație cu categoria Script selectată

Pasul 3: Se deschide caseta de dialog Scripting, unde utilizatorul va putea scrie un script definit de utilizator pentru a valida fișierul XML al răspunsului.

Gol SoapUI dialogul editorului de afirmații de script

Pasul 4: Acum haideți să scriem un script groovy pentru a valida rata de conversie. Scriptul este atașat mai jos cu comentariile încorporate. Se recomandă să aveți cunoștințe despre Java Script sau Groovy Script înainte de a încerca să scrieți propriul script.

//Define Groovy Utils and holder for validating the XML reponse content
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(messageExchange.responseContent)

//Define the NameSpace
holder.namespaces["ns1"] = "http://tempuri.org/"

//Get the Value of the Node 'AddResult' and assign to a variable
def addResult = holder.getNodeValue("//ns1:AddResult")

//print the value of the result in the Output panel
log.info "The result value for integers is " + addResult

//Comparing the value to print 'Pass' or 'Fail'
if(addResult=="46")
{ log.info "Pass" }
else
{ log.info "fail"}
  1. Faceți clic pe butonul „Execute” pentru a declanșa execuția.
  2. Ieșirea Scriptului este afișată în panoul Ieșire. A tipărit atât valoarea conversiei, cât și rezultatul final (reușit sau eșuat)
  3. Se afișează informațiile că „Aserțiunea scriptului a fost trecută”. Faceți clic pe OK.

Notă: Fereastra pop-up finală cu informații va fi întotdeauna afișată cu mesajul „Aserțiune scriptura trecută”, atâta timp cât scriptul este corect din punct de vedere sintactic. Nu are nicio corelație cu afirmația dvs. din script.

Panoul de ieșire a aserțiunii scriptului afișează valoarea rezultatului și Pass

Faceți clic pe OK

Pasul 5: Acum, fila Aserțiuni afișează toate aserțiunile pe care le-am adăugat pentru această suită de teste cu starea pentru fiecare dintre acestea.

Fila Aserțiuni care listează fiecare aserțiune adăugată în suita de teste

Pasul 6: Acum

  1. Selectați suita de teste din arborele Navigator
  2. Faceți clic pe butonul „Run”.
  3. Rezultatele vor fi afișate pentru întreaga suită de teste.

Rezultatele rulării suitei de teste după executarea tuturor aserțiunilor

Aserțiune de potrivire XQuery

Folosește o expresie XQuery pentru a selecta conținut din proprietatea țintă. Avem nevoie de un XML de răspuns mult mai mare pentru a înțelege mai bine aserțiunea XQuery din SoapUISă importăm un alt fișier WSDL, așa cum se arată mai jos: http://www.webservicex.net/medicareSupplier.asmx?WSDL

Notă: Punctele finale demo publice webservicex.net utilizate în această demonstrație nu mai sunt accesibile în mod fiabil, așa că capturile de ecran cu cererea și răspunsul de mai jos sunt păstrate ca exemplu de referință. Orice WSDL care returnează un set de noduri repetitive va exercita aserțiunea XQuery exact în același mod.

Pasul 1: Faceți clic dreapta pe proiectul existent și selectați „Adăugare WSDL”.

Faceți clic dreapta pe meniu SoapUI proiect care prezintă Adăugarea WSDL

Pasul 2: Se deschide caseta de dialog Adăugare WSDL. Lăsați celelalte opțiuni implicite și faceți clic pe butonul „OK”.

Adăugați o casetă de dialog WSDL cu opțiunile implicite de import

Pasul 3: Toate operațiunile sunt listate așa cum se arată mai jos.

Operațiuni WSDL ale furnizorului Medicare listate în arborele navigatorului

Pasul 4: Acum să adăugăm un Caz de testare în aceeași suită de teste pentru care am creat-o Testarea convertorul valutar.

Noua opțiune TestCase pe suita de teste existentă

Pasul 5: Introduceți numele cazului de testare și faceți clic pe butonul „OK”.

Introducerea numelui cazului de testare în caseta de dialog Caz de testare nou

Pasul 6: Cazul de testare este creat așa cum se arată mai jos.

Caz de testare nou creat în SoapUI arborele navigatorului

Pasul 7: Adăugați un nou pas de testare de tip „Soap Test Request”, așa cum se arată mai jos.

Meniul Adăugare pași cu Solicitare de testare SOAP selectată

Pasul 8: Introduceți numele etapei de testare. Să zicem – Furnizor_după_Oraș, care ar fi mai semnificativ. Faceți clic pe „OK”.

Denumirea noului pas de testare Furnizor_după_Oraș

Pasul 9: Selectați Operațiune pe care am dori să o validăm. În acest caz, este „MedicareSupplierSoap -> GetSupplierByCity”. Faceți clic pe „OK”.

Selectarea operației GetSupplierByCity pentru pasul de testare

Pasul 10: Introduceți numele cazului de testare și faceți clic pe „OK”.

Confirmarea numelui cererii de test SOAP

Pasul 11: Schița XML a cererii va fi afișată așa cum se arată mai jos.

Schiță XML a cererii GetSupplierByCity generată

Pasul 12: Acum să găsim toate informațiile despre furnizori pentru orașul „New York”.

Pentru a face acest lucru, adăugați următoarele rânduri la codul dvs.

<GetSupplierByCity xmlns="http://www.webservicex.net/">

<City>New York</City>

</GetSupplierByCity>

WSDL în cele de mai jos URL – http://www.webservicex.net/medicareSupplier.asmx?op=GetSupplierByCity

Cerere XML editată cu New York ca valoare pentru oraș

Pasul 13: La executarea testului, primim următorul răspuns

Răspuns GetSupplierByCity care conține înregistrări repetate ale furnizorilor

Pasul 14: Să presupunem că trebuie să validăm toate numerele furnizorilor. Nu putem folosi aserțiuni XPath deoarece avem nevoie de sute de aserțiuni XPath. Prin urmare, utilizarea XQuery este inevitabilă în acest caz.

XQuery Assertion ne ajută să validăm un grup de răspunsuri XML care sunt de natură repetitivă.

Noduri SupplierData repetitive peste care XQuery va itera

Pasul 15: Acum faceți clic pe „Adăugați o afirmație”,

  1. Selectați „Categoria afirmației” – Conținutul proprietății în acest caz.
  2. Selectați tipul de afirmație ca „Aserțiune XQuery”
  3. Faceți clic pe „Adăugați”.

Aserțiune XQuery selectată în categoria Conținut proprietate

Pasul 16: Similar cu afirmația XPath, trebuie să declarăm spațiul de nume.

  1. Faceți clic pe butonul „Declarare” pentru a permite automat SoapUI pentru a declara spațiul de nume. La clic pe butonul de declarare, utilizatorului i se va afișa o fereastră „POP-up” cu mesajul „declarați spațiul de nume din schemă”. Faceți clic pe „Da” pentru a continua așa cum se arată mai jos.
  2. Pentru a prelua tot numărul furnizorului, trebuie să scriem o interogare XPath și o vom plasa în < SupplierNumber> și Etichete.
  3. Faceți clic pe „Selectați din curent”, care se va executa din răspunsul curent.
  4. La clic pe „Selectare din curent”, sunt listate toate numerele furnizorilor.
  5. Faceți clic pe „Salvați”.

Declararea spațiului de nume din fereastra pop-up de confirmare a schemei

Notă: După apăsarea butonului „Declarare”, este posibil să obțineți informații diferite URLca declarație de spațiu de nume, însă spațiul de nume al locației serviciului web real este cel care ar fi luat în considerare pentru codare.

Expresia XQuery finalizată, cu declarațiile sale de spațiu de nume, arată astfel.

// Namespace declaration
declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/';
declare namespace ns1='http://www.webservicex.net/';
declare namespace x = '';

// Placing the result in Myresult Tags

{
// Iterating through all the supplier number
for $x in //ns1:GetSupplierByCityResponse/ns1:SupplierDataLists/ns1:SupplierDatas/ns1:SupplierData

//Return all the Supplier number within ‘SupplierNumber’ Tags.
return {data($x/ns1:SupplierNumber)}
}

Fereastra expresiei XQuery listează fiecare număr de furnizor

Pasul 17: Aserțiunea XQuery este executată și afișează rezultatul final în panoul „Aserțiune”, așa cum se arată mai jos. Acum am adăugat cu succes o aserțiune XQuery folosind care am validat toate informațiile despre numărul furnizorului. Aceleași informații vor fi comparate cu datele reale, de fiecare dată când solicitarea este trimisă către serverul web.

Notă: Valorile reale nu vor fi afișate. Dacă toate valorile reale sunt aceleași cu cele așteptate, atunci se afișează VALID, altfel va afișa „Eșuat”.

Panoul de afirmații care afișează rezultatul afirmației XQuery

Când să folosiți afirmația încorporată?

Având în vedere că atât opțiunile point-and-click, cât și cele scriptate sunt acoperite, întrebarea practică este pe care să o alegeți.

  • Când un răspuns este scurt, astfel încât să poată fi validat utilizând una dintre acele aserțiuni încorporate.
  • Putem folosi, de asemenea, Inbuilt Assertion dacă răspunsul trimis de la serverul web este întotdeauna de natură statică. Dacă este dinamic, nu îl vom putea afirma folosind aserțiuni încorporate.
  • Când utilizarea aserțiilor încorporate, cum ar fi aserțiunile Time out și aserțiunile de securitate, devine inevitabilă.
  • Afirmațiile încorporate se țin destul de bine pentru o utilizare unică, unde testele nu trebuie repetate.

Opțiuni pentru afirmații

Afirmațiile create pot fi controlate cel mai bine cu ajutorul panoului de control care este evidențiat mai jos.

Panoul de control al casetei de instrumente Assertions în SoapUI

Aserțiunile create permit testerilor să configureze următoarele lucruri din setul de instrumente pentru aserțiuni.

Opțiune Descriere
Mută ​​pictograma afirmației în sus Afirmația selectată se mută în sus în ordine.
Pictogramă Mutare afirmație în jos Afirmația selectată se deplasează în jos în ordine.
Eliminare pictogramă afirmație Elimină afirmația selectată
Pictogramă de configurare sau editare a aserțiunii Re-configurați/Editați afirmația selectată.

Mai jos sunt funcțiile disponibile exclusiv în versiunea Pro a SoapUI, acum expediat ca ReadyAPIVersiunea Pro ne ajută și să grupăm aserțiunile, astfel încât să putem adăuga încă un nivel de validare aserțiunilor create.

  • ȘI: Toate aserțiunile sunt evaluate ca aserțiuni VALIDE, ceea ce va duce la o condiție de grup PASSED (ADMISĂ).
  • SAU: Cel puțin una dintre aserțiunile din cadrul grupului trebuie să fie VALIDĂ pentru a afirma o condiție PASSED pentru grup.
  • Versiunea Pro permite, de asemenea Clonarea aserțiilorAceastă opțiune permite testerilor să permită copierea unei aserțiuni într-un alt pas de testare în același proiect sau într-unul diferit.
  • Dezactivare/Activare aserțiuni: Această opțiune permite dezactivarea sau activarea oricărei aserțiuni grupate sau negrupate. Dacă o aserțiune este dezactivată, aceasta devine gri și, atunci când se execută un caz de testare, aserțiunile dezactivate nu vor fi executate.
  • Degruparea aserțiunilor: Orice aserțiuni grupate pot fi degrupate dacă testerii decid să facă acest lucru.

Lista completă a metodelor disponibile în diferite tipuri de afirmații

Tabelul de mai jos colectează fiecare aserțiune discutată mai sus, grupată după categoria în care apare în caseta de dialog Adăugare aserțiune.

Mecanismul de afirmare Descriere
CONȚINUT DE PROPRIETATE
conţine Caută existența șirului specificat. De asemenea, susține expresia regulată.
Nu Conține Caută inexistența șirului specificat. De asemenea, susține expresia regulată.
XPath Match Utilizează expresia XPath pentru a selecta nodul țintă și valorile acestuia.
Potrivire XQuery Folosește o expresie XQuery pentru a selecta conținut din proprietatea țintă.
Conformitate, Statut, Standarde
HTTP Descărcați toate resursele Validează documentul HTML după descărcare și este valabil pentru orice proprietate care conține HTML.
Stare HTTP nevalidă Codes Verifică dacă răspunsul HTML conține un cod de stare care nu se află în lista de coduri definite.
Nu este defect SOAP Verifică dacă ultimul mesaj primit nu este o eroare SOAP. Este foarte evident că este aplicabil numai pentru pașii de testare SOAP.
Conformitate cu schema Verifică dacă ultimul mesaj primit este compatibil cu definiția schemei standard WSDL sau WADL. Se ține bine pentru pașii de testare SOAP și REST.
Defect SOAP Verifică dacă ultimul mesaj primit este o eroare SOAP. Este inversul afirmațiilor de eroare „NU SOAP”.
Răspuns SOAP Verifică dacă ultimul răspuns primit este un răspuns SOAP valid și este valabil numai pentru pașii de solicitare a testului SOAP.
Stare HTTP validă Codes Verifică dacă răspunsul HTML conține un cod de stare care se află în lista de coduri definite. Este inversul lui „Stare HTTP invalidă” CodeAfirmația lui s.
WS-Solicitare de adresare Verifică dacă ultima solicitare primită conține anteturi WS-Addressing adecvate.
WS-Răspuns la adresare Verifică dacă ultimul răspuns primit conține anteturi WS-Addressing adecvate.
WS-Stare de securitate Validează dacă ultimul mesaj primit conține anteturi WS-Security valide și este valabil numai pentru solicitările SOAP.
Scenariu
Afirmația scriptului Permite utilizatorilor să execute un script personalizat pentru a efectua validări definite de utilizator.
SLA
SLA de răspuns Validează dacă timpul de răspuns al ultimului răspuns primit a fost în limita definită.
JMS
Stare JMS Verifică dacă cererea JMS a pasului de testare s-a executat cu succes și este valabilă pentru pașii de testare cu un punct final JMS.
JMS Timeout Verifică dacă răspunsul JMS la un pas de testare nu a durat mai mult decât durata specificată.
Securitate
Expunerea la informații sensibile Verifică dacă mesajul de răspuns nu expune informații sensibile despre sistemul țintă. Putem folosi această afirmație pentru pașii de testare REST, SOAP și HTTP.

DESCARCĂ PROIECTUL SOAPUI CARE CONȚINE ASERȚIILE DE MAI SUS

Erori comune și depanare

Majoritatea eșecurilor de afirmație tracNe întoarcem la un mic set de greșeli, așa că verificați-le înainte de a rescrie o expresie.

  • Folosește spațiul de nume corect. Spațiul de nume ar trebui să fie URL unde se află serviciul web.
  • Dacă apare o eroare în timpul dezvoltăriiping o aserțiune de scripting, utilizați „log.info” pentru a afișa conținutul variabilelor.
  • Dacă nu aveți rezultatul dorit, verificați dacă o intrare validă este transmisă în cerere.

De exemplu, în convertorul valutar, dacă introduceți „intA” ca „x”, care nu este un număr întreg, ieșirea generează un cod de eroare de tip „SOAP-Client”, ceea ce înseamnă că problema este legată de parametrul transmis de partea clientului. Cererea care conține valoarea nevalidă este afișată prima.

SoapUI cerere care transmite o valoare nevalidă, non-integer, pentru intA

Răspunsul returnează codul de eroare în loc de un rezultat, așa cum se arată mai jos.

Codul de eroare SOAP-Client returnat în SoapUI editor de răspunsuri

Asigurați-vă că utilizați sintaxa corectă atunci când utilizați aserțiuni XPath și XQuery. NU ar trebui să utilizați punct(.) în loc de două puncte(:) atunci când utilizați aserțiunea de mai sus. Sintaxa este //namespace:Tagname și NOT //namespace.tagname. Procedând astfel, este posibil să primiți un mesaj care spune „NO match in current response” (NU există o potrivire în răspunsul curent), chiar dacă numele etichetei este corect.

Eroare FĂRĂ potrivire în răspunsul curent cauzată de sintaxa XPath incorectă

Întrebări frecvente

Orice număr. SoapUI aplică fiecare aserțiune atașată unui pas de testare al eșantionatorului după executarea acestuia, iar pasul este marcat ca eșuat în vizualizarea cazului de testare dacă chiar și una dintre aceste aserțiuni eșuează.

Compară un mesaj XML cu un document așteptat nod cu nod, astfel încât câmpurile selectate pot fi ignorate sau potrivite în mod vag în loc să trateze întreaga sarcină utilă ca un singur șir simplu.

Open-source SoapUI acoperă conținutul proprietății, conformitatea, scriptul, SLA-ul, JMS și securitatea. ReadyAPI adaugă grupping, clonare, verificări JDBC și activare sau dezactivare a controlului.

Modelele de inteligență artificială citesc un răspuns eșantion și sugerează expresii XPath sau XQuery, propun valori limită și semnalează câmpuri care se schimbă la fiecare rulare — reducând considerabil munca depusă în spațiul de nume și expresii scrise de mână.

Da. Co-pilot completări automate GroovyInstrumente standard Utils și XmlHolder. Executați întotdeauna scriptul mai întâi, deoarece un script valid din punct de vedere sintactic raportează Script Assertion Passed indiferent de comparație.

Da. Câmpurile de conținut ale aserțiunilor acceptă extinderea proprietăților, astfel încât valoarea așteptată poate fi extrasă dintr-o proprietate a unui proiect sau a unui caz de testare, mai degrabă decât dintr-un literal, ceea ce menține o aserțiune reutilizabilă în diferite medii.

O aserțiune eșuată marchează pasul său de testare ca eșuat în vizualizarea cazului de testare și scrie o intrare EȘUATĂ corespunzătoare, cu detaliile eșecului, în Jurnalul de execuție a testului din partea de jos a ferestrei.

Conține, Nu conține, Potrivire XPath, Potrivire XQuery, Acord de nivel de serviciu (SLA) pentru răspuns, Script, coduri de stare HTTP valide și nevalide, Expunerea informațiilor sensibile și Conformitatea schemei cu o schemă WADL sau dedusă.

Rezumați această postare cu: