Väited SoapUI-s: skriptid, XQuery, XPathi tüüpide õpetus

Mis on väide?

Väitmine tähendab millegi kinnitamist või väljaütlemist. Seda võib tõlgendada ka kontroll- või kinnituspunktina.

Kui päring on veebiserverisse saadetud, saadakse vastus. Peame kinnitama, kas vastus sisaldab andmeid, mida ootame. Vastuse kinnitamiseks peame kasutama väiteid.

Väidete tüübid

Vastuse kinnitamiseks on erinevaid viise; vastuse kinnitamisel keskendume siiski tavaliselt kasutatavatele SoapUI väidete tüüpidele. Allpool on need, mis on saadaval SoapUI avatud lähtekoodiga versioonis.

  1. Omandi sisu
  2. Vastavuse oleku standard
  3. Script
  4. SLA
  5. JMS
  6. TURVALISUS
SoapUI väidete tüübid
SoapUI väidete tüübid

Peale ülalloetletute on PRO versioonil ka sisseehitatud JDBC Assertion, mille abil saame kinnitada, kas veebiteenus on andmebaasi õigesti värskendanud.

SISALDAB VÄIDET

Otsib määratud stringi olemasolu. Samuti toetab see regulaaravaldist.

Jätkame sama näitega eelmisest õpetusest WSDL-i päringuga nagu http://www.dneonline.com/calculator.asmx.

Samm 1: Vaikimisi väiteid pole.

  • Väidete arv kuvatakse vahekaardil Väited.
  • Uue väite lisamiseks klõpsake nuppu "Lisa uus väide".

Sisaldab väidet

Samm 2: Nüüd,

  1. Valige väite kategooria.
  2. Valige väite tüüp.
  3. Klõpsake "Lisa"

Sisaldab väidet

Samm 3: Kontrollime, kas vastuses on string '46'. kliki 'OK'

Märkus. Võime ka eirata suurtähti ja lisada regulaaravaldise.

Sisaldab väidet

Samm 4: Selle lisamisel käivitatakse kohe väide ja näidatakse, kas see on VALID või VALITETU.

Sisaldab väidet

Samm 5: Oletame nüüd, et muudame jaotise „SoapUI-s sisalduv väide” sisuks „47” ja vaatame, mis juhtub.

Sisaldab väidet

Samm 6: Väide täidetakse ja tulemus edastatakse kasutajale. Kuna meil pole vastuses stringi "47", on väide ebaõnnestunud.

Sisaldab väidet

EI SISALD VÄIDET

Otsib määratud stringi puudumist. Samuti toetab see regulaaravaldist.

Samm 1: Pärast nupu „Lisa uued väited” klõpsamist,

  1. Valige väite kategooria.
  2. Valige väite tüüp – sel juhul "EI sisalda"
  3. Klõpsake "Lisa"

Ei Sisaldab väidet

Samm 2: Kontrollime, kas string 'intA' on vastuses olemas. Sisestage string "FromCurrency" ja klõpsake "OK"

Ei Sisaldab väidet

Samm 3: Niipea kui väide on lisatud, käivitatakse see ja kuvatakse tulemus. Siiani oleme lisanud kaks väidet, seega täidetakse mõlemad väited ja kuvatakse tulemus.

Ei Sisaldab väidet

Samm 4: Nüüd muutkem "Ei sisalda väidet" sisu ja vaatame, mis juhtub. Kontrollime stringi "AddResult" puudumist.

Ei Sisaldab väidet

Samm 5: String "AddResult" on vastuses tegelikult olemas, seega väide "EI Sisaldab" ebaõnnestub, nagu allpool näidatud.

Ei Sisaldab väidet

XPATH MATCH KINNITUS

sa kasutad XPath avaldis sihtsõlme ja selle väärtuste valimiseks. XPath on XML-i päringukeel XML-dokumendist sõlmede valimiseks.

Samm 1: Pärast nupu "Lisa uued väited" klõpsamist,

  1. Valige väite kategooria.
  2. Valige väite tüüp – antud juhul XPath Match
  3. Klõpsake "Lisa"

XPath Match Assertion

Samm 2: Avaneb XPathi lisamise aken.

Enne SoapUI XPathi lisamist peame deklareerima nimeruumi. XML-nimeruum on nimede kogum, mis on identifitseeritud ühtse ressursiidentifikaatori (URI) viitega ja mida kasutatakse XML-dokumentides elementide ja atribuutide nimedena. Sama kasutatakse SOAP UI XPath Assertionis.

XML-nimeruumi deklareerimiseks peame lihtsalt klõpsama nuppu "Deklareeri", mis teeb selle töö meie eest ära, muidu saame nimeruumi ka ise käsitsi deklareerida.

Pärast nimeruumi deklareerimist peame viitama XPathile, kasutades loodud nimeruumi.

Kui klõpsate nupul "Deklareeri", avaneb kaks nimeruumi, kuna meil on kaks URI-d. Üks neist on skeemi URL ja teine ​​vastab tegelikule veebiteenuse URL-ile. XPathile viidates peame kasutama tegelikku nimeruumi, kus veebiteenus asub, MITTE skeemi nimeruumi.

XPath Match Assertion

deklareeri nimeruumi soap='http://schemas.xmlsoap.org/soap/envelope/';

deklareeri nimeruum ns1='http://tempuri.org/';

XPath Match Assertion

Samm 3: Nüüd peame sisestama XML-sõlme XPath, mille peame kinnitama.

//ns1:AddResult Annab meile vahele jääva sõlme väärtuse & ja ns1 vastab deklareeritud nimeruumile, mis osutab aadressile 'http://tempuri.org/'

Pärast XML-i sisestamist peame klõpsama valikul „Vali praegusest”, et edaspidi võrreldaks praeguse vastuse väärtust.

XPath Match Assertion

Samm 4: Nii kaugel,

  1. Pärast nimeruumide deklareerimist oleme sisestanud XML-i sõlme XPath, mida peame kinnitama.
  2. Peame klõpsama 'Vali praegusest', et muuta praegune väärtus eeldatavaks väärtuseks.
  3. Praegust väärtust näidatakse kasutajale, mida saame vajadusel muuta.
  4. Klõpsake "Salvesta".

XPath Match Assertion

Samm 5: SoapUI-s lisatud väide kuvatakse allpool näidatud viisil.

XPath Match Assertion

Skriptimise väited

See väidete tehnika on kõige laialdasemalt kasutatav, kuna sadade väidete haldamine ja säilitamine on äärmiselt keeruline.

SOAP UI kasutab kumbagi Groovy Skriptimine või JavaScript skriptiväidete jaoks. Skriptimistehnikat kasutatakse SOAP-i testimise raamistiku väljatöötamiseks. Skriptimise väiteid kasutatakse järgmistel juhtudel.

Skriptimine võimaldab kasutajal teha mõningaid toiminguid enne ja pärast TestCase'i käivitamist, kasutades vastavalt häälestus- ja mahavõtmismeetodeid. Seadistamine on protseduur, mis käivitatakse enne konkreetse meetodi käivitamist (näide – objektide loomine ja initsialiseerimine), samas kui rebimine on protseduur, mis käivitatakse pärast meetodi käivitamist (nt objektide hävitamine ja puhastamine). See funktsioon pole muude kinnitustüüpide puhul saadaval ja seda saab teha ainult kodeerimisega.

See võimaldab kasutajatel projekti avada/sulgeda, projektiga seotud seadeid lähtestada või puhastada ning samuti töötada keskkonnamuutujatega, mis on skriptimise ajal väga abiks.

See aitab meil kinnitada dünaamilise vastuse sisu.

Skriptimisväiteid kasutatakse kasutaja määratud väidete loomiseks, mis EI ole SOAP UI poolt eelmääratletud.

Skripti kinnitamise demonstreerimiseks SoapUI-s kasutame kalkulaatorit WSDL, testjuhtumit "Lisa", mille olime varem loonud.

Samm 1: Keerulise skripti lisamise toimingud on samad, mis teiste väidete puhul, välja arvatud see, et väide ei ole eelnevalt määratletud. Selle asemel on see kasutaja määratletud väide, mis pakub suuremat paindlikkust kui sisseehitatud väited.

Valige testisamm, mille suhtes väide tuleb lisada.

Skriptimise väited

Klõpsake nuppu "Lisa väide", nagu allpool näidatud.

Skriptimise väited

Samm 2: Nüüd valige väide kategooria.

  1. Sel juhul on see skript.
  2. Valige SoapUI Script Assertion ja sellega pole seotud alamtüüpe.
  3. Klõpsake nuppu "Lisa".

Skriptimise väited

Samm 3: Avaneb skriptimise dialoog, kus kasutaja saab vastuse XML-i kinnitamiseks kirjutada kasutaja määratud skripti.

Skriptimise väited

Samm 4: Nüüd kirjutame konversioonimäära kinnitamiseks keeruka skripti. Skript on lisatud allpool koos manustatud kommentaaridega. Soovitav on omada teadmisi Java Skript või Groovy Skript enne oma skripti kirjutamist.

//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. Käitamise käivitamiseks klõpsake nuppu "Käivita".
  2. Skripti väljund kuvatakse paanil Väljund. See on printinud nii konversiooniväärtuse kui ka lõpptulemuse (sobib või ebaõnnestus)
  3. Kuvatakse teave, et "Skripti kinnitus on läbitud". Klõpsake nuppu OK.

Märkus. Kui skript on süntaktiliselt õige, kuvatakse lõpliku teabe hüpikaken alati sõnumiga „Skripti kinnitus läbitud”. Sellel pole korrelatsiooni teie väitega skriptis.

Skriptimise väited

OK

Samm 5: Nüüd kuvatakse kinnituste vahekaardil kõik väited, mille olime selle testikomplekti jaoks lisanud, koos olekuga nende kõigi vastu.

Skriptimise väited

Samm 6: Nüüd

  1. Valige Navigaatori puust Test Suite
  2. Klõpsake nuppu "Käivita".
  3. Tulemused kuvatakse kogu testikomplekti kohta.

Skriptimise väited

Xquery Match Assertion

See kasutab sihtvarast sisu valimiseks Xquery avaldist. Vajame palju suuremat vastuse XML-i, et paremini mõista XQuery väidet SoapUI-s. Impordime veel ühe WSDL-i, nagu allpool näidatud: http://www.webservicex.net/medicareSupplier.asmx?WSDL

Samm 1: Tehke olemasoleval projektil paremklõps ja valige 'Lisa WSDL'.

Xquery Match Assertion

Samm 2: Tehke olemasoleval projektil paremklõps ja valige 'Lisa WSDL'. Jätke muud valikud vaikevalikuks ja klõpsake nuppu OK.

Xquery Match Assertion

Samm 3: Kõik toimingud on loetletud allpool näidatud viisil.

Xquery Match Assertion

Samm 4: Nüüd lisame a Testjuhtum samas testkomplektis, mille jaoks olime loonud Testimine valuuta konverter.

Xquery Match Assertion

Samm 5: Sisestage testjuhtumi nimi ja klõpsake nuppu "OK".

Xquery Match Assertion

Samm 6: Testjuhtum luuakse allpool näidatud viisil.

Xquery Match Assertion

Samm 7: lisama
uus testietapp tüübi 'Seebi testi taotlus', nagu allpool näidatud.

Xquery Match Assertion

Samm 8: Sisestage testietapi nimi. Ütleme – Tarnija_linna järgi, mis oleks mõttekam Klõpsake nuppu „OK”.

Xquery Match Assertion

Samm 9: Valige Operamida me kinnitada tahaksime. Sel juhul on see 'MedicareSupplierSoap -> GetSupplierByCity'. Klõpsake 'OK'.

Xquery Match Assertion

Samm 10: Sisestage testjuhtumi nimi ja klõpsake nuppu "OK".

Xquery Match Assertion

Samm 11: Request XML Outline kuvatakse nagu allpool näidatud.

Xquery Match Assertion

Samm 12: Nüüd leiame kogu teabe New Yorgi tarnijate kohta.

Selleks lisage oma koodile järgmised read.

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

<City>New York</City>

</GetSupplierByCity>

WSDL allolevas URL-is – http://www.webservicex.net/medicareSupplier.asmx?op=GetSupplierByCity

Xquery Match Assertion

Samm 13: Testi sooritamisel saame alloleva vastuse

Xquery Match Assertion

Samm 14: Oletame, et peame kinnitama kogu tarnija numbri. Me ei saa kasutada XPathi väidet, kuna meil on vaja sadu XPathi väiteid. Seega on XQuery kasutamine antud juhul vältimatu.

XQuery Assertion aitab meil kinnitada XML-vastuste rühma, mis on oma olemuselt korduvad.

Xquery Match Assertion

Samm 15: Nüüd klõpsake "Lisa väide",

  1. Valige „Väitekategooria” – antud juhul atribuudi sisu.
  2. Valige väite tüübiks "XQuery Assertion"
  3. Klõpsake nuppu "Lisa".

Xquery Match Assertion

Samm 16: Sarnaselt XPath Assertioniga peame deklareerima nimeruumi.

  1. Klõpsake nuppu „Deklareeri”, et lubada SOAP kasutajaliidesel automaatselt nimeruumi deklareerida. Deklareerimise nupul klõpsamisel kuvatakse kasutajale 'POP up' sõnumiga 'deklareeri nimeruum asemel skeemist'. Klõpsake nuppu "Jah", et jätkata nagu allpool näidatud.

    Märge: Kui vajutate nuppu "Deklareeri", võite saada nimeruumi deklaratsioonina teistsugused URL-id, kuid kodeerimiseks võetakse arvesse tegelikku veebiteenuse asukoha nimeruumi.

    Xquery Match Assertion

  2. Kogu tarnijanumbri hankimiseks peame kirjutama XPath päringu ja asetame selle jaotisesse < TarnijaNumber> ja Sildid.
  3. Klõpsake "Vali praegusest", mis käivitatakse praegusest vastusest.
  4. Kui klõpsate nupul „Vali praegusest”, kuvatakse kõik tarnija numbrid.
  5. Klõpsake "Salvesta".
// 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)}
}

Xquery Match Assertion

Samm 17: XQuery Assertion käivitatakse ja kuvab lõpptulemuse paneelil "Assertion", nagu allpool näidatud. Nüüd oleme edukalt lisanud Xquery väite, mille abil oleme kinnitanud kogu tarnija numbri teabe. Sama võrreldaks tegelike andmetega iga kord, kui päring saadetakse veebiserverisse.

Märkus. Tegelikke väärtusi ei kuvata. Kui kõik tegelikud väärtused on samad, mis eeldatavad väärtused, siis kuvatakse VALID, muidu kuvatakse teade 'Ebaõnnestus'.

Xquery Match Assertion

Millal kasutada sisseehitatud väidet?

  • Kui vastus on nii lühike, et seda saab kinnitada ühe neist sisseehitatud väidetest.
  • Saame kasutada ka sisseehitatud väidet, kui veebiserverist saadetud vastus on oma olemuselt alati staatiline. Kui see on dünaamiline, ei saa me seda sisseehitatud väidete abil kinnitada.
  • Kui sisseehitatud väidete, nagu Time Out väited ja turvaväited, kasutamine muutub vältimatuks.
  • Sisseehitatud väited sobivad üsna hästi ühekordseks kasutamiseks, kus teste pole vaja korrata.

Väidete valikud

Loodud väiteid saab kõige paremini juhtida juhtpaneeli abil, mis on allpool esile tõstetud.

Väidete valikud

Loodud väited võimaldavad testijatel konfigureerida järgmisi asju väidete tööriistakastist.

valik Kirjeldus

Väidete valikud

Valitud väide liigub järjekorras üles.

Väidete valikud

Valitud väide liigub järjestuses allapoole.

Väidete valikud

Eemaldab valitud väite

Väidete valikud

Konfigureerige/redigeerige valitud väide uuesti.
  • Allpool on funktsioonid, mis on saadaval ainult SOAP UI PRO versioonis. PRO versioon aitab meil ka väiteid rühmitada, et saaksime loodud väidetele lisada veel ühe valideerimiskihi.
  • JA: Kõiki väiteid hinnatakse KEHTIVATE väidetena, mille tulemuseks on grupi tingimus LÕIDUD. VÕI: vähemalt üks grupis olev väide peab olema KEHTIV, et kinnitada grupi tingimus LÕIDUD.

  • Pro versioon võimaldab ka Väidete kloonimine: see suvand võimaldab testijatel lubada väite kopeerimist sama või teise projekti teise testietappi.
  • Keela/luba väited: see suvand võimaldab mis tahes rühmitatud või rühmitamata väiteid keelata või lubada. Kui väide on keelatud, kuvatakse see hallina ja testjuhtumi täitmisel keelatud väiteid ei täideta.
  • Väited rühmitamata: kui testijad otsustavad seda teha, saab kõik rühmitatud väited rühmitada.

Erinevat tüüpi väidete jaoks saadaolevate meetodite täielik loetelu

Kehtestamise mehhanism

Kirjeldus

VARA SISU
Sisaldab Otsib määratud stringi olemasolu. Samuti toetab see regulaaravaldist.
Ei Sisalda Otsib määratud stringi puudumist. Samuti toetab see regulaaravaldist.
XPath Match Kasutab XPathi avaldist sihtsõlme ja selle väärtuste valimiseks.
XQuery Match Kasutab sihtatribuudi sisu valimiseks Xquery avaldist.
Vastavus, staatus, standardid
HTTP Laadige alla kogu ressurss Valideerib HTML-dokumendi pärast allalaadimist ja see kehtib kõigi HTML-i sisaldavate atribuutide kohta.
Kehtetud HTTP olekukoodid Kontrollib, kas HTML-vastus sisaldab olekukoodi, mis ei ole määratletud koodide loendis.
Pole SEEBI viga Kontrollib, kas viimane vastuvõetud teade ei ole SOAP-tõrge. On väga ilmne, et see on rakendatav ainult SOAP-testi etappide jaoks.
Skeemi järgimine Kontrollib, kas viimati vastuvõetud sõnum on kooskõlas WSDL-i või WADL-i standardskeemi definitsiooniga. Sobib hästi SOAP- ja REST-testi etappide jaoks.
SEEBI viga Kontrollib, kas viimane vastuvõetud teade on SOAP-tõrge. See on 'NOT SOAP' veaväidete pöördväärtus.
SEEBI vastus Kontrollib, kas viimati saadud vastus on kehtiv SOAP-vastus, ja kehtib ainult SOAP-testipäringu sammude puhul.
Kehtivad HTTP olekukoodid Kontrollib, kas HTML-vastus sisaldab olekukoodi, mis on määratletud koodide loendis. See on valede HTTP olekukoodide väite pöördväärtus.
WS-aadressi taotlus Kontrollib, kas viimane vastuvõetud päring sisaldab sobivaid WS-aadressi päiseid.
WS-aadressi vastus Kontrollib, kas viimane vastus sisaldab sobivaid WS-aadressi päiseid.
WS-turvalisuse olek Kinnitab, kas viimane vastuvõetud sõnum sisaldab kehtivaid WS-Security päiseid ja kehtib ainult SOAP-i taotluste puhul.
Script
Skripti väide Võimaldab kasutajatel käivitada kohandatud skripti, et teostada kasutaja määratud valideerimist.
SLA
Vastus SLA Kinnitab, kui viimase vastuvõetud vastuse reageerimisaeg oli määratletud piirides.
JMS
JMS-i olek Kontrollib, kas testietapi JMS-i päring on edukalt täitnud ja kehtib JMS-i lõpp-punktiga testimisetappide puhul.
JMS ajalõpp Kontrollib, kas testietapi JMS-vastus ei kestnud kauem kui määratud kestus.
TURVALISUS
Tundliku teabe kokkupuude Kontrollib, kas vastusesõnum ei avalda sihtsüsteemi kohta tundlikku teavet. Seda väidet saame kasutada REST-, SOAP- ja HTTP-testi etappide jaoks.

Laadige alla SOAPUI PROJEKT, MIS SISALDAB ülaltoodud väiteid

Levinud vead ja tõrkeotsing

Kasutage õiget nimeruumi. Nimeruum peaks olema URL, kus veebiteenus asub.

Kui skriptimise väite väljatöötamisel ilmneb viga, kasutage muutujate sisu printimiseks 'log.info'

Kui teil pole soovitud väljundit, kontrollige, kas päringus on edastatud kehtiv sisend.

Näiteks kui sisestate valuutamuunduris "intA" kui "x", mis ei ole täisarv, viskab väljund veakoodi "SOAP-klient", mis tähendab, et probleem on parameetris, mida edastatakse kliendi pool.

Levinud vead ja tõrkeotsing

Levinud vead ja tõrkeotsing

Veenduge, et kasutate XPATHi ja XQuery kinnituse kasutamisel õiget süntaksit. Ülaltoodud väite kasutamisel EI TOHI kasutada kooloni (:) asemel punkti(.). Süntaks on //namespace:Tagname ja EI //namespace.tagname. Seda tehes võite saada teate „Praeguses vastuses EI ole vastet”, kuigi sildi nimi on õige.

Levinud vead ja tõrkeotsing