PÄstande i SoapUIScripts, XQuery, XPath-typer

⚡ Smart opsummering

PÄstande i SoapUI er de kontrolpunkter, der afgÞr, om et webtjenestesvar er korrekt, og som forvandler en anmodning, der blot udfÞres, til en test, der rent faktisk bestÄr eller fejler pÄ reelt, verificerbart indhold.

  • 🔘 Kategorier: Ejendomsindhold, overholdelse/status/standarder, script, SLA, JMS og sikkerhed.
  • ☑ Indeholder: BekrĂŠfter, at der findes en streng i svaret, med understĂžttelse af regulĂŠre udtryk.
  • ✅ Indeholder ikke: BekrĂŠfter, at en streng mangler, hvilket er nyttigt til fejltokens og lĂŠkkede felter.
  • đŸ§Ș XPath-match: Deklarer navnerummet fĂžrst, mĂ„lret derefter Ă©n node og sammenlign dens vĂŠrdi.
  • đŸ› ïž XQuery-match: Validerer gentagne nodesĂŠt, der ellers ville krĂŠve hundredvis af XPath-kontroller.
  • 📊 script: Groovy Assertions hĂ„ndterer dynamiske svar og opsĂŠtnings- eller nedtagningslogik.
  • 🔍 Fejlfinding: Forkert navnerum og syntaks med punktum i stedet for kolon forĂ„rsager de fleste fejl.

PÄstande i SoapUI

Hvad er en pÄstand?

PÄstand betyder handling at bekrÊfte eller sige noget. Det kan ogsÄ tolkes som et kontrolpunkt eller et valideringspunkt.

NÄr en anmodning er sendt til en webserver, modtages der et svar. Vi skal validere, om svaret indeholder de data, vi forventer. For at validere svaret skal vi bruge assertions (pÄstande). Uden en assertion beviser et testtrin kun, at tjenesten svarede, ikke at den svarede korrekt, hvilket er grunden til, at alle API-test skal bÊre mindst én.

Typer af pÄstande

Der er forskellige mÄder at give et svar pÄ; vi vil dog fokusere pÄ de almindeligt anvendte SoapUI pÄstandstyper under validering af et svar. Nedenfor er de kategorier, der er tilgÊngelige i Open Source-versionen af SoapUI.

  1. Ejendomsindhold
  2. Overholdelsesstatusstandard
  3. Script
  4. SLA
  5. etc
  6. Sikkerhed

Dialogboksen grupperer alle pÄstande under disse kategorier, som skÊrmbilledet nedenfor viser.

PÄstandskategorier anfÞrt i SoapUI TilfÞj pÄstandsdialog
Typer af pÄstande i SoapUI

Udover dem, der er anfÞrt ovenfor, har Pro-versionen ogsÄ en indbygget JDBC-pÄstand, som vi bruger til at bekrÊfte, om webtjenesten har opdateret databasen korrekt.

Versionsnotat: strÞm SoapUI dokumentationen nÊvner ogsÄ en JDBC kategori (JDBC-status og JDBC-timeout) sammen med ovenstÄende kategorier, og en Meddelelsens indhold pÄstand i egenskabsindhold for mere omfattende XML-sammenligning. Den kommercielle udgave, der her omtales som "Pro", sÊlges nu som ReadyAPI af SmartBear, sÄ menunavne i nyere builds kan lÊses anderledes, mens assertion-adfÊrden forbliver den samme.

Indeholder pÄstand

SĂžger efter eksistensen af ​​den angivne streng. Det understĂžtter ogsĂ„ regulĂŠrt udtryk.

Vi vil fortsÊtte med det samme eksempel fra den forrige tutorial med WSDL-anmodning som http://www.dneonline.com/calculator.asmxHvis du ikke har bygget det projekt endnu, sÄ arbejd dig igennem oprettelse af et projekt, en testsuite og en testcase fÞrst.

Trin 1: Som standard er der ingen pÄstande.

  1. Antallet af pÄstande er vist pÄ fanen pÄstande.
  2. For at tilfÞje en ny pÄstand skal du klikke pÄ knappen 'TilfÞj ny pÄstand'.

SoapUI Fanen PÄstande viser ingen pÄstande og knappen TilfÞj ny pÄstand

Trin 2: Nu,

  1. VÊlg pÄstandskategorien.
  2. VÊlg pÄstandstype.
  3. Klik pÄ 'TilfÞj'

TilfÞj dialogboksen for pÄstand med den valgte pÄstandskategori og -type

Trin 3: Lad os validere om strengen '46' findes i svaret. Klik pÄ 'OK'

BemÊrk: Vi kan ogsÄ ignorere store og smÄ bogstaver og tilfÞje regulÊre udtryk.

Indeholder dialogboksen for pÄstandskonfiguration med den indtastede vÊrdi 46

Trin 4: NÄr den tilfÞjes, udfÞres assertionen straks, og det vises, om den er GYLDIG eller UGYLDIG.

Fanen "PÄstande" rapporterer "Indeholder"-pÄstanden som GYLDIG

Trin 5: Lad os nu sige, at vi Êndrer indholdet af 'Indeholder pÄstand i SoapUI' til '47' og se hvad der sker.

Redigering af indholdet af "Indeholder pÄstand" fra 46 til 47

Trin 6: PÄstanden udfÞres, og resultatet sendes til brugeren. Da vi ikke har strengen '47' i svaret, er pÄstanden mislykket.

Fanen "Assertions" rapporterer "Contains"-pÄstanden som mislykket

Indeholder ikke pÄstand

Dens modstykke fungerer omvendt. SÞger efter den angivne strengs ikke-eksistens. Den understÞtter ogsÄ regulÊrt udtryk.

Trin 1: Efter at have klikket pÄ knappen 'TilfÞj nye pÄstande',

  1. VÊlg pÄstandskategorien.
  2. VĂŠlg pĂ„standstype – I dette tilfĂŠlde 'Ikke indeholder'
  3. Klik pÄ 'TilfÞj'

TilfÞj pÄstandsdialog med IKKE indeholder det valgte

Trin 2: Lad os validere om strengen 'intA' findes i svaret. Indtast strengen 'FromCurrency' og klik pÄ 'OK'

Indeholder ikke pÄstandsdialogboksen med strengen FromCurrency indtastet

Trin 3: SÄ snart en assertion er tilfÞjet, udfÞres den og viser resultatet. Indtil videre har vi tilfÞjet to assertions, sÄ begge assertions udfÞres og viser resultatet.

Fanen "PÄstande" viser resultaterne for bÄde "Indeholder" og "Indeholder ikke".

Trin 4: Lad os nu ĂŠndre indholdet af 'Not Contains Assertion' og se, hvad der sker. Vi vil kontrollere, om strengen "AddResult" ikke eksisterer.

Indeholder ikke pÄstandsdialog, der kontrollerer for tokenet AddResult

Trin 5: Strengen 'AddResult' findes faktisk i svaret, derfor vil 'NOT Contains'-pÄstanden mislykkes som vist nedenfor.

PÄstanden "Indeholder ikke" fejler, fordi AddResult er til stede.

XPath Match Assertion

Stringmatchning er slÞv, sÄ den nÊste assertion er i stedet rettet mod en enkelt node. Bruger XPath-udtryk til at vÊlge mÄlnoden og dens vÊrdier. XPath, er et XML-forespÞrgselssprog til at vÊlge noder fra et XML-dokument.

Trin 1: Efter at have klikket pÄ knappen 'TilfÞj nye pÄstande',

  1. VÊlg pÄstandskategorien.
  2. VĂŠlg pĂ„standstype – i dette tilfĂŠlde 'XPath Match'
  3. Klik pÄ 'TilfÞj'

TilfÞj pÄstandsdialog med XPath-match valgt

Trin 2: Vinduet TilfÞj XPath Äbnes.

FÞr du tilfÞjer en SoapUI I XPath skal vi deklarere navnerummet. Et XML-navnerum er en samling af navne, identificeret af en URI-reference (Uniform Resource Identifier), som bruges i XML-dokumenter som element- og attributnavne. Det samme bruges i SoapUI XPath-pÄstand.

For at deklarere et XML-navneomrÄde skal vi blot klikke pÄ knappen 'Deklarer', som ville gÞre arbejdet for os, ellers kan vi ogsÄ manuelt deklarere et navneomrÄde selv.

Efter at have deklareret navnerummet, skal vi referere til XPath ved hjĂŠlp af det oprettede navnerum.

NÄr du klikker pÄ knappen 'Deklarér', dukker der to navnerum op, da vi har to URI'er. En af dem er skemaet. URL og den anden svarer til den faktiske webtjeneste URLVi skal bruge det faktiske navneomrÄde, hvor webtjenesten er placeret, og IKKE skemanavneomrÄdet, nÄr vi refererer til XPath. De deklarerede linjer vises Þverst i XPath-boksen som vist nedenfor.

Deklarerede soap- og ns1-navnerum i XPath-deklarationsvinduet

erklĂŠr namespace soap='http://schemas.xmlsoap.org/soap/envelope/';

erklÊr navneomrÄde ns1='http://tempuri.org/';

XPath-deklarationsvindue umiddelbart efter klik pÄ ErklÊr

Trin 3: Nu skal vi indtaste XPath'en for den XML-node, som vi skal validere.

//ns1:AddResult Giver os vĂŠrdien af ​​den node, der er indesluttet mellem & og ns1 svarer til det erklĂŠrede navneomrĂ„de, som peger pĂ„ 'http://tempuri.org/'

Efter at have indtastet XML, skal vi klikke pÄ 'VÊlg fra aktuel', sÄ vÊrdien fra det aktuelle svar vil blive samlet op til sammenligning fremover.

XPath-udtryk indtastet med VĂŠlg fra aktuelt fremhĂŠvet

Trin 4: Indtil videre,

  1. Efter at have erklÊret navneomrÄderne, har vi indtastet den XPath of XML-knude, som vi skal validere.
  2. Vi er nÞdt til at klikke pÄ 'VÊlg fra nuvÊrende' for at gÞre den aktuelle vÊrdi som den forventede vÊrdi.
  3. Den aktuelle vĂŠrdi vises for brugeren, som vi kan ĂŠndre efter behov.
  4. Klik pÄ 'Gem'.

XPath Match-konfigurationen, der viser den forventede vĂŠrdi og knappen Gem

Trin 5: Den tilfÞjede pÄstand i SoapUI vil blive vist som vist nedenfor.

Fanen PÄstande viser den tilfÞjede XPath Match-pÄstand

Scripting pÄstande

Denne pÄstandsteknik er den mest udbredte, da det er ekstremt vanskeligt at administrere og vedligeholde hundredvis af pÄstande.

SoapUI bruger enten Groovy Scripting eller JavaScript til scripting af assertions. Scriptingteknikken er anvendt til udviklingping et framework til test af SOAP. Scripting-assertions bruges under fĂžlgende omstĂŠndigheder.

  • Scripting giver brugeren mulighed for at udfĂžre visse handlinger fĂžr og efter udfĂžrelse af en testcase ved hjĂŠlp af henholdsvis opsĂŠtnings- og nedtagningsmetoder. OpsĂŠtning er en procedure, der udfĂžres fĂžr en bestemt metode udfĂžres (f.eks. objektoprettelse og initialisering), mens nedtagning er en procedure, der udfĂžres efter metoden er udfĂžrt (f.eks. ĂždelĂŠggelse af objekter og oprydning). Denne funktion er ikke tilgĂŠngelig i andre assertiontyper og kan kun udfĂžres via kodning.
  • Det giver brugerne mulighed for at Ă„bne/lukke et projekt for at initialisere eller rydde op i projektrelaterede indstillinger og ogsĂ„ for at arbejde med miljĂžvariabler, hvilket er meget nyttigt under scripting.
  • Det hjĂŠlper os med at hĂŠvde et dynamisk responsindhold.
  • Scripting-pĂ„stande bruges til at oprette brugerdefinerede pĂ„stande, der IKKE er foruddefinerede af SoapUI.

For at demonstrere en script-pÄstand i SoapUI, vil vi bruge lommeregneren WSDL, testcasen 'Add', som vi oprettede tidligere.

Trin 1: Trinene til at tilfĂžje groovy script er de samme som for andre assertions, bortset fra at assertionen ikke er foruddefineret. I stedet er det en brugerdefineret assertion, der tilbyder stĂžrre fleksibilitet end de indbyggede.

VÊlg det testtrin, som pÄstanden skal tilfÞjes mod.

Testtrin valgt i SoapUI navigator fÞr tilfÞjelse af en pÄstand

Klik pÄ knappen 'TilfÞj pÄstand' som vist nedenfor.

TilfÞj knappen "Assertion" pÄ vÊrktÞjslinjen for testtrin-assertioner

Trin 2: VÊlg nu kategorien PÄstand.

  1. I dette tilfĂŠlde er det Script.
  2. Type SoapUI ScriptpÄstand, og der er ingen undertyper tilknyttet den.
  3. Klik pÄ 'TilfÞj'.

TilfÞj dialogboksen for pÄstand med den valgte scriptkategori

Trin 3: Dialogboksen Scripting Äbnes, hvor brugeren kan skrive et brugerdefineret script for at validere svar-XML'en.

Tom SoapUI dialogboksen editor for scriptpÄstande

Trin 4: Lad os nu skrive et smart script til at validere konverteringsraten. Scriptet er vedhĂŠftet nedenfor med indlejrede kommentarer. Det anbefales at have kendskab til Java Script eller Groovy Script fĂžr du forsĂžger at skrive dit eget 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. Klik pÄ knappen 'UdfÞr' for at udlÞse udfÞrelsen.
  2. Outputtet af Scriptet vises i Output-ruden. Den har udskrevet bÄde konverteringsvÊrdi og slutresultatet (BestÄet eller Ikke bestÄet)
  3. Informationen vises, at 'Script Assertion Passed'. Klik pÄ OK.

BemÊrk: Den endelige informations-pop op vises altid med meddelelsen 'Script Assertion Passed', sÄ lÊnge scriptet er syntaktisk korrekt. Det har ingen sammenhÊng med din pÄstand i scriptet.

Script-deklarationsoutputruden udskriver resultatvÊrdien og bestÄet

klik pÄ OK

Trin 5: Nu viser fanen "Assertions" alle de assertioner, vi har tilfĂžjet til denne testsuite, med status for hver enkelt af dem.

Fanen "PÄstande" viser alle pÄstande, der er tilfÞjet til testpakken.

Trin 6: Nu

  1. VĂŠlg Test Suite fra Navigator-trĂŠet
  2. Klik pÄ knappen 'KÞr'
  3. Resultaterne vil blive vist for hele testpakken.

Resultater af kĂžrsel af testsuite efter udfĂžrelse af alle assertions

XQuery Match-pÄstand

Den bruger et XQuery-udtryk til at vÊlge indhold fra mÄlegenskaben. Vi har brug for en meget stÞrre respons-XML for bedre at forstÄ XQuery-pÄstanden i SoapUILad os importere endnu en WSDL som vist nedenfor: http://www.webservicex.net/medicareSupplier.asmx?WSDL

BemÊrk: De offentlige webservicex.net-demoslutpunkter, der bruges i denne gennemgang, kan ikke lÊngere nÄs pÄlideligt, sÄ skÊrmbillederne af anmodninger og svar nedenfor bevares som referenceeksempel. Enhver WSDL, der returnerer et gentagende nodesÊt, vil udfÞre XQuery-pÄstanden pÄ nÞjagtig samme mÄde.

Trin 1: HÞjreklik pÄ det eksisterende projekt, og vÊlg 'TilfÞj WSDL'.

HÞjreklikmenuen pÄ SoapUI projekt der viser TilfÞj WSDL

Trin 2: Dialogboksen TilfÞj WSDL Äbnes. Lad andre indstillinger vÊre som standard, og klik pÄ knappen 'OK'.

TilfĂžj WSDL-dialogboks med standard importindstillinger

Trin 3: Alle operationerne er angivet som vist nedenfor.

Medicare-leverandĂžrens WSDL-operationer angivet i navigatortrĂŠet

Trin 4: Lad os nu tilfĂžje en Test sag inden for samme testsuite, som vi havde lavet til Test valutaomregneren.

Ny TestCase-mulighed pÄ den eksisterende testsuite

Trin 5: Indtast navnet pÄ testcasen, og klik pÄ knappen 'OK'

Indtastning af testcasenavnet i dialogboksen Ny testcase

Trin 6: Testcasen oprettes som vist nedenfor.

Nyoprettet testcase i SoapUI navigator trĂŠ

Trin 7: TilfĂžj et nyt testtrin af typen 'SOAP Test Request' som vist nedenfor.

TilfĂžj trin-menu med SOAP-testanmodning valgt

Trin 8: Indtast navnet pĂ„ testtrinnet. Lad os sige – LeverandĂžr_efter_By, hvilket ville vĂŠre mere meningsfuldt. Klik pĂ„ 'OK'.

Navngivning af det nye testtrin LeverandĂžr_efter_By

Trin 9: VÊlg den Operation, som vi gerne vil validere. I dette tilfÊlde er det 'MedicareSupplierSoap -> GetSupplierByCity'. Klik pÄ 'OK'.

Valg af GetSupplierByCity-operationen til testtrinnet

Trin 10: Indtast navnet pÄ testcasen, og klik pÄ 'OK'.

BekrÊftelse af navnet pÄ SOAP-testanmodningen

Trin 11: XML-oversigten over anmodningen vises som vist nedenfor.

Genereret GetSupplierByCity-anmodnings-XML-disposition

Trin 12: Lad os nu finde alle leverandĂžroplysninger for 'New York' City.

For at gĂžre det skal du tilfĂžje fĂžlgende linjer til din kode.

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

<City>New York</City>

</GetSupplierByCity>

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

Anmodning om XML redigeret med New York som byvĂŠrdi

Trin 13: NÄr testen er udfÞrt, modtager vi nedenstÄende svar

GetSupplierByCity-svar, der indeholder gentagne leverandĂžrposter

Trin 14: Lad os sige, at vi skal validere alle leverandĂžrnumre. Vi kan ikke bruge XPath-assertioner, da vi skal have hundredvis af XPath-assertioner. Derfor er brugen af ​​XQuery uundgĂ„elig i dette tilfĂŠlde.

XQuery Assertion hjĂŠlper os med at validere en gruppe XML-svar, som er gentagne.

Gentagne SupplierData-noder, som XQuery itererer over

Trin 15: Klik nu pÄ 'TilfÞj en pÄstand',

  1. Vélg 'Assertion Category' – Ejendomsindhold i dette tilfélde.
  2. VÊlg pÄstandstypen som 'XQuery Assertion'
  3. Klik pÄ 'TilfÞj'.

XQuery-pÄstand valgt i kategorien Egenskabsindhold

Trin 16: Ligesom med XPath-assertion skal vi deklarere navnerummet.

  1. Klik pÄ knappen 'ErklÊr' for automatisk at tillade SoapUI at deklarere navnerummet. NÄr du klikker pÄ deklareringsknappen, vises en 'POP-op' med beskeden 'deklarer navnerummet fra skemaet i stedet' for brugeren. Klik pÄ 'Ja' for at fortsÊtte som vist nedenfor.
  2. For at hente hele leverandĂžrnummeret skal vi skrive en XPath-forespĂžrgsel, og vi placerer den inden for < SupplierNumber> og Tags.
  3. Klik pÄ 'VÊlg fra den aktuelle', som udfÞres fra det aktuelle svar.
  4. NÄr du klikker pÄ 'VÊlg fra den nuvÊrende', vises alle leverandÞrnumre.
  5. Klik pÄ 'Gem'.

Deklarer navneomrÄde fra pop op-vinduet til skemabekrÊftelse

BemÊrk: NÄr du trykker pÄ 'Anmeld'-knappen, kan du ende med forskellige URL's som navneomrÄdedeklaration, er det dog den faktiske navneplads for webtjenestens placering, der vil blive betragtet som kodning.

Det fÊrdige XQuery-udtryk, med dets navneomrÄdedeklarationer, ser sÄdan ud.

// 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-udtryksvindue, der viser alle leverandĂžrnumre

Trin 17: XQuery-pÄstanden udfÞres og viser det endelige resultat i panelet 'PÄstand' som vist nedenfor. Nu har vi tilfÞjet en XQuery-pÄstand, som vi bruger til at validere alle leverandÞrnummeroplysninger. Disse vil blive sammenlignet med de faktiske tal, hver gang anmodningen sendes til webserveren.

BemÊrk: De faktiske vÊrdier vil ikke blive vist. Hvis alle faktiske vÊrdier er de samme som de forventede vÊrdier, sÄ viser den GYLDIG, ellers vil den vise 'Failed'.

PÄstandspanel, der viser XQuery-pÄstandsresultatet

HvornÄr skal man bruge indbygget pÄstand?

Med bÄde peg-og-klik- og de scriptede muligheder dÊkket, er det praktiske spÞrgsmÄl, hvilken man skal rÊkke ud efter.

  • NĂ„r et svar er kort, sĂ„ det kan valideres ved hjĂŠlp af en af ​​disse indbyggede pĂ„stande.
  • Vi kan ogsĂ„ bruge Inbuilt Assertion, hvis svaret sendt fra webserveren altid er statisk. Hvis det er dynamisk, vil vi ikke vĂŠre i stand til at hĂŠvde det ved hjĂŠlp af indbyggede pĂ„stande.
  • NĂ„r brugen af ​​indbyggede pĂ„stande sĂ„som Time-out-pĂ„stande og sikkerhedspĂ„stande bliver uundgĂ„elig.
  • Indbyggede pĂ„stande holder ret godt til engangsbrug, hvor test ikke behĂžver at blive gentaget.

PÄstandsmuligheder

De oprettede pÄstande kan bedst kontrolleres ved hjÊlp af kontrolpanelet, der er fremhÊvet nedenfor.

Kontrolpanel til vÊrktÞjskasse for pÄstande i SoapUI

De oprettede pÄstande giver testere mulighed for at konfigurere fÞlgende ting fra pÄstandsvÊrktÞjskassen.

Option Beskrivelse
Flyt pÄstand op-ikon Den valgte pÄstand flytter rÊkkefÞlgen op.
Flyt pÄstand ned-ikon Den valgte pÄstand flytter ned i rÊkkefÞlgen.
Fjern pÄstandsikon Fjerner den valgte pÄstand
Ikon for konfiguration eller redigering af pÄstand Genkonfigurer/rediger den valgte pÄstand.

Nedenfor er de funktioner, der udelukkende er tilgÊngelige i Pro-versionen af SoapUI, nu sendt som ReadyAPIPro-versionen hjÊlper os ogsÄ med at gruppere pÄstande, sÄ vi kan tilfÞje endnu et lag af validering til de oprettede pÄstande.

  • OG: Alle pĂ„stande evalueres som GYLDIGE pĂ„stande, hvilket vil resultere i gruppebetingelsen BESTÅET.
  • ELLER: Mindst Ă©n af pĂ„standene i gruppen skal vĂŠre GYLDIG for at en gruppebetingelse BESTÅET kan hĂŠvdes.
  • Pro-versionen tillader ogsĂ„ Kloning af pĂ„standeDenne indstilling giver testere mulighed for at kopiere en assertion til et andet testtrin i det samme eller et andet projekt.
  • Deaktiver/aktiver pĂ„stande: Denne indstilling gĂžr det muligt at deaktivere eller aktivere enhver grupperet eller ugrupperet pĂ„stand. Hvis en pĂ„stand er deaktiveret, er den nedtonet, og nĂ„r en testcase udfĂžres, udfĂžres deaktiverede pĂ„stande ikke.
  • Opdel grupper af pĂ„stande: Alle grupperede pĂ„stande kan opdeles, hvis testerne beslutter sig for det.

Komplet liste over metoder tilgÊngelige i forskellige pÄstandstyper

Tabellen nedenfor samler alle de ovenfor omtalte pÄstande, grupperet efter den kategori, de vises under i dialogboksen TilfÞj pÄstand.

PÄstandsmekanisme Beskrivelse
EJENDOMSINDHOLD
Indeholder SĂžger efter eksistensen af ​​den angivne streng. Det understĂžtter ogsĂ„ regulĂŠrt udtryk.
Indeholder ikke SÞger efter ikke-eksistens af den angivne streng. Det understÞtter ogsÄ regulÊrt udtryk.
XPath Match Bruger XPath-udtryk til at vÊlge mÄlknuden og dens vÊrdier.
XQuery Match Bruger et XQuery-udtryk til at vÊlge indhold fra mÄlegenskaben.
Overholdelse, status, standarder
HTTP Download alle ressourcer Validerer HTML-dokumentet efter download, og det gĂŠlder for enhver ejendom, der indeholder HTML.
Ugyldig HTTP-status Codes BekrÊfter, om HTML-svaret indeholder en statuskode, der ikke er pÄ listen over definerede koder.
Ikke SOAP Fejl BekrĂŠfter, om den sidst modtagne besked ikke er en SOAP-fejl. Det er meget indlysende, at det kun gĂŠlder for SOAP-testtrin.
Overholdelse af skema Bekréfter, om den sidst modtagne meddelelse er kompatibel med WSDL- eller WADL-standardskemadefinitionen. Holder godt til SÆBE- og HVILE-testtrin.
SÆBE fejl BekrĂŠfter, om den sidst modtagne besked er en SOAP-fejl. Det er det omvendte af 'IKKE SOAP' fejlpĂ„stande.
SOAP Response Verificerer, om det sidst modtagne svar er et gyldigt SOAP-svar og kun gĂŠlder for SOAP-testanmodningstrin.
Gyldig HTTP-status Codes BekrÊfter, om HTML-svaret indeholder en statuskode, der er pÄ listen over definerede koder. Det er det modsatte af 'Ugyldig HTTP-status'. Codes' pÄstand.
WS-adresseringsanmodning BekrĂŠfter, om den sidst modtagne anmodning indeholder passende WS-adresseringsoverskrifter.
WS-adresseringssvar BekrĂŠfter, om det sidst modtagne svar indeholder passende WS-adresseringsoverskrifter.
WS-Sikkerhedsstatus Validerer, hvis den sidst modtagne besked indeholder gyldige WS-Security-headers og kun gĂŠlder for SOAP-anmodninger.
Script
SkriftpÄstand Tillader brugere at udfÞre et brugerdefineret script for at udfÞre brugerdefinerede valideringer.
SLA
Svar SLA Validerer, om responstiden for det sidst modtagne svar var inden for den definerede grĂŠnse.
etc
JMS status Verificerer, om JMS-anmodningen for testtrinnet er udfĂžrt med succes og gĂŠlder for testtrin med et JMS-slutpunkt.
JMS timeout Verificerer, om JMS-svaret for et testtrin ikke tog lĂŠngere tid end den angivne varighed.
Sikkerhed
Eksponering for fÞlsom information BekrÊfter, om svarmeddelelsen ikke afslÞrer fÞlsomme oplysninger om mÄlsystemet. Vi kan bruge denne pÄstand til REST-, SOAP- og HTTP-testtrin.

DOWNLOAD SOAPUI-PROJEKTET, DER INDEHOLDER OVENSTÅENDE PÅSTAND

Almindelige fejl og fejlfinding

De fleste pÄstandsfejl trace tilbage til et lille sÊt fejl, sÄ tjek disse, fÞr du omskriver et udtryk.

  • Brug det korrekte navnerum. Navnerummet skal vĂŠre URL hvor webtjenesten er placeret.
  • Hvis der opstĂ„r en fejl under udviklingping en scripting-assertion, brug 'log.info' til at udskrive indholdet af variablerne.
  • Hvis du ikke har fĂ„et det Ăžnskede output, skal du kontrollere, om et gyldigt input er bestĂ„et i anmodningen.

Hvis du for eksempel i valutaomregneren indtaster 'intA' som 'x', hvilket ikke er et heltal, udlĂžser outputtet en fejlkode som 'SOAP-Client', hvilket betyder, at problemet er med den parameter, der sendes fra klientsiden. Anmodningen med den ugyldige vĂŠrdi vises fĂžrst.

SoapUI anmodning om at sende en ugyldig ikke-heltalvĂŠrdi for intA

Svaret returnerer fejlkoden i stedet for et resultat, som vist nedenfor.

SOAP-klientfejlkode returneret i SoapUI svarredigeringsprogram

SÞrg for at bruge den korrekte syntaks, nÄr du bruger XPath- og XQuery-assertioner. Du bÞr IKKE bruge punktum(.) i stedet for kolon(:), nÄr du bruger ovenstÄende assertion. Syntaksen er //namespace:Tagname og IKKE //namespace.tagname. Hvis du gÞr det, kan du ende med at fÄ en besked om, at 'INGEN match i nuvÊrende svar', selvom tagnavnet er korrekt.

INGEN match i det aktuelle svar, fejl forÄrsaget af forkert XPath-syntaks

Ofte Stillede SpÞrgsmÄl

Ethvert tal. SoapUI anvender alle pÄstande, der er knyttet til et sampler-testtrin, efter det er udfÞrt, og trinnet markeres som mislykket i testcase-visningen, hvis bare én af disse pÄstande mislykkes.

Den sammenligner en XML-meddelelse med et forventet dokument node for node, sÄ udvalgte felter kan ignoreres eller matches lÞst i stedet for at behandle hele nyttelasten som én almindelig streng.

Open source SoapUI dĂŠkker ejendomsindhold, compliance, script, SLA, JMS og sikkerhed. ReadyAPI tilfĂžjer groupping, kloning, JDBC-tjek og aktivering eller deaktivering af kontrol.

AI-modeller lĂŠser et eksempelsvar og foreslĂ„r XPath- eller XQuery-udtryk, foreslĂ„r grĂŠnsevĂŠrdier og markerer felter, der ĂŠndres ved hver kĂžrsel – hvilket reducerer det hĂ„ndskrevne navneomrĂ„de- og udtryksarbejde betydeligt.

Ja. CoPilot autofuldfĂžrelser GroovyStandardversioner af Utils og XmlHolder. KĂžr altid scriptet fĂžrst, da et syntaktisk gyldigt script rapporterer Script Assertion Passed uanset din sammenligning.

Ja. Felter til pÄstandsindhold understÞtter egenskabsudvidelse, sÄ den forventede vÊrdi kan hentes fra en projekt- eller testcaseegenskab i stedet for en literal, hvilket holder én pÄstand genbrugelig pÄ tvÊrs af miljÞer.

En mislykket assertion markerer sit testtrin som mislykket i testcase-visningen og skriver en matchende FAILED-post med fejldetaljerne i testudfĂžrelsesloggen nederst i vinduet.

Indeholder, Indeholder ikke, XPath-match, XQuery-match, svar-SLA, script, gyldige og ugyldige HTTP-statuskoder, eksponering af fĂžlsomme oplysninger og skemaoverholdelse mod et WADL eller et udledt skema.

Opsummer dette indlĂŠg med: