Behauptungen in SoapUISkripte, XQuery, XPath-Typen
โก Intelligente Zusammenfassung
Behauptungen in SoapUI sind die Kontrollpunkte, die entscheiden, ob eine Webdienstantwort korrekt ist, und verwandeln eine Anfrage, die lediglich ausgefรผhrt wird, in einen Test, der anhand realer, รผberprรผfbarer Inhalte tatsรคchlich bestanden oder fehlgeschlagen ist.
Was ist eine Behauptung?
Unter Behauptung versteht man den Akt der Bestรคtigung oder Aussage. Es kann auch als Kontrollpunkt oder Validierungspunkt interpretiert werden.
Sobald eine Anfrage an einen Webserver gesendet wird, wird eine Antwort empfangen. Wir mรผssen รผberprรผfen, ob die Antwort die erwarteten Daten enthรคlt. Zur รberprรผfung der Antwort benรถtigen wir Assertions. Ohne Assertions beweist ein Testschritt lediglich, dass der Dienst geantwortet hat, nicht aber, dass die Antwort korrekt war. API-Test sollte mindestens einen mitfรผhren.
Arten von Behauptungen
Es gibt verschiedene Mรถglichkeiten, eine Antwort zu formulieren; wir werden uns jedoch auf die gebrรคuchlichste konzentrieren. SoapUI Assertionstypen bei der Validierung einer Antwort. Nachfolgend sind die Kategorien aufgefรผhrt, die in der Open-Source-Version verfรผgbar sind. SoapUI.
- Eigenschaftsinhalt
- Compliance-Statusstandard
- Skript
- SLA
- JMS
- Sicherheit
Der Dialog gruppiert alle Aussagen in diese Kategorien, wie der untenstehende Screenshot zeigt.

Neben den oben aufgefรผhrten Funktionen verfรผgt die Pro-Version auch รผber eine integrierte JDBC-Assertion, mit der wir รผberprรผfen kรถnnen, ob der Webdienst die Datenbank korrekt aktualisiert hat.
Versionshinweis: Strom SoapUI Die Dokumentation listet auch eine auf JDBC Kategorie (JDBC-Status und JDBC-Timeout) neben den oben genannten Kategorien und ein Nachrichteninhalt Assertions innerhalb von Property Content fรผr einen umfassenderen XML-Vergleich. Die hier als โProโ bezeichnete kommerzielle Edition wird nun verkauft als ReadyAPI von SmartBear, daher kรถnnen Menรผbezeichnungen in neueren Versionen anders aussehen, wรคhrend das Verhalten der Assertions gleich bleibt.
Enthรคlt Behauptung
Sucht nach der Existenz der angegebenen Zeichenfolge. Es unterstรผtzt auch regulรคre Ausdrรผcke.
Wir werden mit dem gleichen Beispiel aus dem vorherigen Tutorial mit WSDL-Anfrage fortfahren http://www.dneonline.com/calculator.asmxFalls Sie dieses Projekt noch nicht erstellt haben, arbeiten Sie es durch Erstellung eines Projekts, einer Testsuite und eines Testfalls zuerst.
Schritt 1: Standardmรครig gibt es keine Zusicherungen.
- Die Anzahl der Behauptungen wird auf der Registerkarte โBehauptungenโ angezeigt.
- Um eine neue Behauptung hinzuzufรผgen, klicken Sie auf die Schaltflรคche โNeue Behauptung hinzufรผgenโ.
Schritt 2: Nun
- Wรคhlen Sie die Behauptungskategorie aus.
- Wรคhlen Sie den Behauptungstyp aus.
- Klicken Sie auf "Hinzufรผgen".
Schritt 3: Wir prรผfen nun, ob die Zeichenkette โ46โ in der Antwort enthalten ist. Klicken Sie auf โOKโ.
Hinweis: Wir kรถnnen die Groร-/Kleinschreibung auch ignorieren und einen regulรคren Ausdruck hinzufรผgen.
Schritt 4: Nach dem Hinzufรผgen wird sofort eine Assertion ausgefรผhrt, die anzeigt, ob GรLTIG oder UNGรLTIG ist.
Schritt 5: Nehmen wir nun an, wir รคndern den Inhalt der 'Contains Assertion in' SoapUI' bis '47 und schau, was passiert.
Schritt 6: Die Assertion wird ausgefรผhrt und das Ergebnis an den Benutzer zurรผckgegeben. Da die Zeichenkette โ47โ in der Antwort nicht enthalten ist, ist die Assertion fehlgeschlagen.
Enthรคlt keine Behauptung
Das Gegenstรผck funktioniert umgekehrt. Es sucht nach dem Nichtvorhandensein der angegebenen Zeichenkette. Es unterstรผtzt auch regulรคre Ausdrรผcke.
Schritt 1: Nachdem Sie nun auf die Schaltflรคche โNeue Assertions hinzufรผgenโ geklickt haben,
- Wรคhlen Sie die Behauptungskategorie aus.
- Wรคhlen Sie den Behauptungstyp aus โ in diesem Fall โNICHT enthรคltโ.
- Klicken Sie auf "Hinzufรผgen".
Schritt 2: Wir prรผfen, ob die Zeichenkette โintAโ in der Antwort enthalten ist. Geben Sie die Zeichenkette โFromCurrencyโ ein und klicken Sie auf โOKโ.
Schritt 3: Sobald eine Assertion hinzugefรผgt wird, wird sie ausgefรผhrt und das Ergebnis angezeigt. Bisher haben wir zwei Assertions hinzugefรผgt; daher werden beide ausgefรผhrt und das Ergebnis angezeigt.
Schritt 4: Nun รคndern wir den Inhalt der โNicht enthaltenโ-Assertion und beobachten das Ergebnis. Wir prรผfen, ob die Zeichenkette โAddResultโ nicht vorhanden ist.
Schritt 5: Die Zeichenkette 'AddResult' ist tatsรคchlich in der Antwort vorhanden, daher schlรคgt die 'NOT Contains'-Assertion wie unten gezeigt fehl.
XPath-Match-Assertion
Da der Vergleich von Zeichenketten zu ungenau ist, zielt die nรคchste Assertion stattdessen auf einen einzelnen Knoten ab. Mithilfe eines XPath-Ausdrucks werden der Zielknoten und seine Werte ausgewรคhlt. XPath, ist eine XML-Abfragesprache zum Auswรคhlen von Knoten aus einem XML-Dokument.
Schritt 1: Nachdem Sie nun auf die Schaltflรคche โNeue Assertions hinzufรผgenโ geklickt haben,
- Wรคhlen Sie die Behauptungskategorie aus.
- Wรคhlen Sie den Assertionstyp โ in diesem Fall โXPath Matchโ.
- Klicken Sie auf "Hinzufรผgen".
Schritt 2: XPath hinzufรผgen. Das Fenster wird geรถffnet.
Vor dem Hinzufรผgen eines SoapUI Fรผr XPath mรผssen wir den Namensraum deklarieren. Ein XML-Namensraum ist eine Sammlung von Namen, die durch eine URI-Referenz (Uniform Resource Identifier) โโidentifiziert werden und in XML-Dokumenten als Element- und Attributnamen verwendet werden. Dasselbe gilt fรผr โฆ SoapUI XPath-Assertion.
Zum Deklarieren eines XML-Namensraums mรผssen wir nur auf die Schaltflรคche โDeklarierenโ klicken, was die Arbeit fรผr uns erledigt; alternativ kรถnnen wir den Namensraum auch manuell deklarieren.
Nach der Deklaration des Namespace mรผssen wir den XPath mithilfe des erstellten Namespace referenzieren.
Nach dem Klicken auf die Schaltflรคche โDeklarierenโ werden zwei Namensrรคume angezeigt, da wir zwei URIs haben. Einer davon ist das Schema. URL und die andere entspricht dem eigentlichen Webdienst. URLWir mรผssen beim Verweisen auf XPath den tatsรคchlichen Namespace des Webdienstes und NICHT den Schema-Namespace verwenden. Die deklarierten Zeilen erscheinen wie unten dargestellt oben im XPath-Feld.
Deklarieren Sie den Namensraum Soap='http://schemas.xmlsoap.org/soap/envelope/';
Namensraum deklarieren ns1='http://tempuri.org/';
Schritt 3: Jetzt mรผssen wir den XPath des XML-Knotens eingeben, den wir validieren mรถchten.
//ns1:AddResult Gibt uns den Wert des dazwischen eingeschlossenen Knotens & und ns1 entspricht dem deklarierten Namespace, der auf โhttp://tempuri.org/โ verweist.
Nachdem wir das XML eingegeben haben, mรผssen wir auf โAus aktueller Antwort auswรคhlenโ klicken, damit der Wert aus der aktuellen Antwort zum kรผnftigen Vergleich รผbernommen wird.
Schritt 4: Bis jetzt
- Nachdem wir die Namespaces deklariert haben, haben wir den XPath des XML-Knotens eingegeben, den wir validieren mรผssen.
- Wir mรผssen auf โAus aktuellem Wert auswรคhlenโ klicken, um den aktuellen Wert als erwarteten Wert festzulegen.
- Dem Benutzer wird der aktuelle Wert angezeigt, den wir bei Bedarf รคndern kรถnnen.
- Klicken Sie auf โSpeichernโ.
Schritt 5: Die hinzugefรผgte Assertion in SoapUI wird wie unten dargestellt angezeigt.
Skript-Assertions
Diese Behauptungstechnik ist die am weitesten verbreitete Technik, da es รคuรerst schwierig ist, Hunderte von Behauptungen zu verwalten und aufrechtzuerhalten.
SoapUI verwendet entweder Groovy Scripting oder JavaSkript fรผr Skript-Assertions. Die Skripttechnik wird fรผr die Entwicklung verwendet.ping Ein Framework zum Testen von SOAP. Skriptbasierte Assertions werden unter folgenden Umstรคnden verwendet.
- Mithilfe von Skripten kรถnnen Benutzer vor und nach der Ausfรผhrung eines Testfalls Operationen durchfรผhren, indem sie die Methoden `setup` bzw. `teardown` verwenden. `setup` ist eine Prozedur, die vor der Ausfรผhrung einer bestimmten Methode ausgefรผhrt wird (z. B. Objekterstellung und -initialisierung), wรคhrend `teardown` eine Prozedur ist, die nach der Ausfรผhrung der Methode ausgefรผhrt wird (z. B. Objektlรถschung und Aufrรคumarbeiten). Diese Funktion ist bei anderen Assertionstypen nicht verfรผgbar und kann nur durch Programmierung realisiert werden.
- Es ermรถglicht Benutzern, ein Projekt zu รถffnen/schlieรen, um projektbezogene Einstellungen zu initialisieren oder zu bereinigen, und auch, um mit Umgebungsvariablen zu arbeiten, was beim Skripten sehr hilfreich ist.
- Es hilft uns bei der Durchsetzung eines dynamischen Antwortinhalts.
- Skriptbasierte Assertions werden verwendet, um benutzerdefinierte Assertions zu erstellen, die NICHT vordefiniert sind von SoapUI.
Zum Demonstrieren einer Skript-Assertion in SoapUIWir werden die Taschenrechner-WSDL und den Testfall โAddโ, den wir zuvor erstellt hatten, verwenden.
Schritt 1: Die Schritte zum Hinzufรผgen eines Groovy-Skripts sind dieselben wie bei anderen Assertions, mit dem Unterschied, dass es sich nicht um eine vordefinierte, sondern um eine benutzerdefinierte Assertion handelt, die mehr Flexibilitรคt als die integrierten Assertions bietet.
Wรคhlen Sie den Testschritt aus, zu dem die Behauptung hinzugefรผgt werden soll.
Klicken Sie wie unten gezeigt auf die Schaltflรคche โBehauptung hinzufรผgenโ.
Schritt 2: Wรคhlen Sie nun die Kategorie โAssertionโ aus.
- In diesem Fall handelt es sich um Script.
- Auswรคhlen SoapUI Script Assertion und es gibt keine zugehรถrigen Untertypen.
- Klicken Sie auf โHinzufรผgenโ.
Schritt 3: Es รถffnet sich der Skriptdialog, in dem der Benutzer ein benutzerdefiniertes Skript schreiben kann, um die Antwort-XML zu validieren.
Schritt 4: Nun schreiben wir ein Groovy-Skript zur Validierung der Konversionsrate. Das Skript mit den eingebetteten Kommentaren ist unten angehรคngt. Kenntnisse in diesem Bereich werden empfohlen. Java Skript oder Groovy Skript, bevor Sie versuchen, Ihr eigenes Skript zu schreiben.
//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"}
- Klicken Sie auf die Schaltflรคche โAusfรผhrenโ, um die Ausfรผhrung auszulรถsen.
- Die Ausgabe des Skripts wird im Ausgabebereich angezeigt. Es wurden sowohl der Conversion-Wert als auch das Endergebnis (Bestanden oder Nicht bestanden) gedruckt.
- Es wird die Information angezeigt, dass die Skript-Assertion erfolgreich war. Klicken Sie auf โOKโ.
Hinweis: Das endgรผltige Informations-Popup wird immer mit der Meldung โSkript-Assertion bestandenโ angezeigt, solange das Skript syntaktisch korrekt ist. Es hat keinen Zusammenhang mit Ihrer Aussage im Skript.
klicken Sie auf OK
Schritt 5: Auf der Registerkarte โAssertionsโ werden nun alle Assertions angezeigt, die wir fรผr diese Testsuite hinzugefรผgt haben, zusammen mit dem Status jeder einzelnen Assertion.
Schritt 6: Jetzt
- Wรคhlen Sie die Testsuite aus der Navigatorstruktur aus
- Klicken Sie auf die Schaltflรคche โAusfรผhrenโ.
- Die Ergebnisse werden fรผr die gesamte Testsuite angezeigt.
XQuery-รbereinstimmungs-Assertion
Es verwendet einen XQuery-Ausdruck, um Inhalte aus der Zieleigenschaft auszuwรคhlen. Wir benรถtigen eine deutlich grรถรere Antwort-XML, um die XQuery-Assertion besser zu verstehen. SoapUIImportieren wir nun eine weitere WSDL-Datei, wie unten gezeigt: http://www.webservicex.net/medicareSupplier.asmx?WSDL
Hinweis: Die in dieser Anleitung verwendeten รถffentlichen Demo-Endpunkte von webservicex.net sind nicht mehr zuverlรคssig erreichbar. Daher dienen die untenstehenden Screenshots von Anfrage und Antwort weiterhin als Referenzbeispiel. Jede WSDL-Datei, die eine Menge sich wiederholender Knoten zurรผckgibt, fรผhrt die XQuery-Assertion auf genau dieselbe Weise aus.
Schritt 1: Klicken Sie mit der rechten Maustaste auf das bestehende Projekt und wรคhlen Sie โWSDL hinzufรผgenโ.
Schritt 2: Der Dialog โWSDL hinzufรผgenโ wird geรถffnet. Belassen Sie die anderen Optionen auf den Standardeinstellungen und klicken Sie auf โOKโ.
Schritt 3: Alle Arbeitsschritte sind wie folgt aufgelistet.
Schritt 4: Nun fรผgen wir ein Testfall innerhalb derselben Testsuite, fรผr die wir erstellt hatten Tests der Wรคhrungsumrechner.
Schritt 5: Geben Sie den Namen des Testfalls ein und klicken Sie auf die Schaltflรคche โOKโ.
Schritt 6: Der Testfall wird wie unten dargestellt erstellt.
Schritt 7: Fรผgen Sie einen neuen Testschritt vom Typ โSOAP-Testanforderungโ hinzu, wie unten dargestellt.
Schritt 8: Geben Sie den Namen des Testschritts ein. Nehmen wir an, es handelt sich um โLieferant_nach_Stadtโ, was aussagekrรคftiger wรคre. Klicken Sie auf โOKโ.
Schritt 9: Wรคhlen Sie die Operation, die wir validieren mรถchten. In diesem Fall ist es โMedicareSupplierSoap -> GetSupplierByCityโ. Klicken Sie auf โOKโ.
Schritt 10: Geben Sie den Namen des Testfalls ein und klicken Sie auf โOKโ.
Schritt 11: Die XML-Anforderungsstruktur wรผrde wie unten dargestellt angezeigt werden.
Schritt 12: Nun suchen wir alle Lieferanteninformationen fรผr die Stadt โNew Yorkโ.
Fรผgen Sie dazu Ihrem Code die folgenden Zeilen hinzu.
<GetSupplierByCity xmlns="http://www.webservicex.net/"> <City>New York</City> </GetSupplierByCity>
WSDL im folgenden URL โ http://www.webservicex.net/medicareSupplier.asmx?op=GetSupplierByCity
Schritt 13: Nach Ausfรผhrung des Tests erhalten wir die folgende Antwort
Schritt 14: Angenommen, wir mรผssen alle Lieferantennummern validieren. Da wir Hunderte von XPath-Assertions benรถtigen, kรถnnen wir diese nicht verwenden. Daher ist die Verwendung von XQuery in diesem Fall unumgรคnglich.
XQuery Assertion hilft uns, eine Gruppe von XML-Antworten zu validieren, die sich wiederholender Natur sind.
Schritt 15: Klicken Sie nun auf โAssertion hinzufรผgenโ.
- Wรคhlen Sie in diesem Fall die โAssertionskategorieโ โ Eigenschaftsinhalt.
- Wรคhlen Sie den Assertionstyp als โXQuery Assertionโ aus.
- Klicken Sie auf โHinzufรผgenโ.
Schritt 16: รhnlich wie bei der XPath-Assertion mรผssen wir den Namespace deklarieren.
- Klicken Sie auf die Schaltflรคche โDeklarierenโ, um dies automatisch zu erlauben. SoapUI Um den Namespace zu deklarieren, wird nach dem Klicken auf die Schaltflรคche โDeklarierenโ ein Popup mit der Meldung โNamespace stattdessen aus dem Schema deklarierenโ angezeigt. Klicken Sie auf โJaโ, um fortzufahren (siehe unten).
- Um die gesamte Lieferantennummer abzurufen, mรผssen wir eine XPath-Abfrage schreiben und diese innerhalb von <SupplierNumber> und platzieren Stichworte.
- Klicken Sie auf โAus aktueller Antwort auswรคhlenโ, um die Ausfรผhrung anhand der aktuellen Antwort durchzufรผhren.
- Nach dem Klicken auf โAus den aktuellen auswรคhlenโ werden alle Lieferantennummern aufgelistet.
- Klicken Sie auf โSpeichernโ.
Hinweis: Nach dem Klicken auf die Schaltflรคche โDeklarierenโ kรถnnen unterschiedliche Ergebnisse auftreten. URLBei der Deklaration eines Namespace ist jedoch der Namespace des tatsรคchlichen Webdienstes fรผr die Codierung maรgeblich.
Der fertige XQuery-Ausdruck mit seinen Namespace-Deklarationen sieht folgendermaรen aus.
// 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)} }
Schritt 17: Die XQuery-Assertion wird ausgefรผhrt und das Endergebnis im โAssertionโ-Panel angezeigt (siehe unten). Wir haben nun erfolgreich eine XQuery-Assertion hinzugefรผgt, mit der wir alle Lieferantennummerninformationen validiert haben. Diese werden bei jeder Anfrage an den Webserver mit den tatsรคchlichen Werten verglichen.
Hinweis: Die tatsรคchlichen Werte werden nicht angezeigt. Wenn alle tatsรคchlichen Werte mit den erwarteten Werten รผbereinstimmen, wird โVALIDโ angezeigt, andernfalls โFailedโ.
Wann sollte die integrierte Behauptung verwendet werden?
Nachdem sowohl die Point-and-Click- als auch die skriptgesteuerten Optionen behandelt wurden, stellt sich in der Praxis die Frage, welche man wรคhlen sollte.
- Wenn eine Antwort so kurz ist, dass sie mithilfe einer dieser integrierten Behauptungen validiert werden kann.
- Wir kรถnnen Inbuilt Assertion auch verwenden, wenn die vom Webserver gesendete Antwort immer statischer Natur ist. Wenn es dynamisch ist, kรถnnen wir es nicht mithilfe integrierter Behauptungen behaupten.
- Wenn die Verwendung integrierter Zusicherungen wie Timeout-Zusicherungen und Sicherheitszusicherungen unumgรคnglich wird.
- Eingebaute Behauptungen eignen sich ziemlich gut fรผr den einmaligen Gebrauch, bei dem Tests nicht wiederholt werden mรผssen.
Behauptungsoptionen
Die erstellten Behauptungen kรถnnen am besten mit Hilfe des unten hervorgehobenen Kontrollfelds gesteuert werden.
Die erstellten Behauptungen ermรถglichen es Testern, folgende Dinge aus der Behauptungs-Toolbox zu konfigurieren.
| Option | Beschreibung |
| Die ausgewรคhlte Behauptung rรผckt in der Reihenfolge nach oben. | |
| Die ausgewรคhlte Behauptung wird in der Reihenfolge nach unten verschoben. | |
| Entfernt die ausgewรคhlte Behauptung | |
| Konfigurieren/bearbeiten Sie die ausgewรคhlte Behauptung neu. |
Nachfolgend sind die Funktionen aufgefรผhrt, die exklusiv in der Pro-Version verfรผgbar sind. SoapUI, wird jetzt versendet als ReadyAPIDie Pro-Version hilft uns auรerdem dabei, Assertions zu gruppieren, sodass wir den erstellten Assertions eine weitere Validierungsebene hinzufรผgen kรถnnen.
- UND: Alle Assertions werden als gรผltige Assertions ausgewertet, was zur Bedingung โBestandenโ der Gruppe fรผhrt.
- ODER: Mindestens eine der Aussagen innerhalb der Gruppe muss gรผltig sein, damit die Gruppe als bestanden gilt.
- Pro-Version erlaubt auch Klonen von BehauptungenDiese Option ermรถglicht es Testern, das Kopieren einer Assertion in einen anderen Testschritt im selben oder in einem anderen Projekt zu erlauben.
- Assertions deaktivieren/aktivieren: Mit dieser Option kรถnnen gruppierte und ungruppierte Assertions deaktiviert oder aktiviert werden. Deaktivierte Assertions werden ausgegraut dargestellt und bei der Ausfรผhrung eines Testfalls nicht berรผcksichtigt.
- Assertions gruppieren: Gruppierte Assertions kรถnnen aufgehoben werden, wenn die Tester dies wรผnschen.
Vollstรคndige Liste der Methoden, die in verschiedenen Behauptungstypen verfรผgbar sind
Die folgende Tabelle enthรคlt alle oben besprochenen Aussagen, gruppiert nach der Kategorie, unter der sie im Dialogfeld โAussage hinzufรผgenโ erscheinen.
| Durchsetzungsmechanismus | Beschreibung |
| EIGENTUMSINHALT | |
| Enthรคlt | Sucht nach der Existenz der angegebenen Zeichenfolge. Es unterstรผtzt auch regulรคre Ausdrรผcke. |
| Nicht enthรคlt | Sucht nach der Nichtexistenz der angegebenen Zeichenfolge. Es unterstรผtzt auch regulรคre Ausdrรผcke. |
| XPath-Match | Verwendet den XPath-Ausdruck, um den Zielknoten und seine Werte auszuwรคhlen. |
| XQuery-Match | Verwendet einen XQuery-Ausdruck, um Inhalte aus der Zieleigenschaft auszuwรคhlen. |
| Konformitรคt, Status, Standards | |
| HTTP Alle Ressourcen herunterladen | Validiert das HTML-Dokument nach dem Herunterladen und behรคlt alle Eigenschaften bei, die HTML enthalten. |
| Ungรผltiger HTTP-Status Codes | รberprรผft, ob die HTML-Antwort einen Statuscode enthรคlt, der nicht in der Liste der definierten Codes enthalten ist. |
| Kein SOAP-Fehler | รberprรผft, ob die zuletzt empfangene Nachricht kein SOAP-Fehler ist. Es ist sehr offensichtlich, dass es nur fรผr SOAP-Testschritte anwendbar ist. |
| Schemakonformitรคt | รberprรผft, ob die zuletzt empfangene Nachricht mit der WSDL- oder WADL-Standardschemadefinition kompatibel ist. Gilt fรผr SOAP- und REST-Testschritte. |
| SOAP-Fehler | รberprรผft, ob die zuletzt empfangene Nachricht ein SOAP-Fehler ist. Es ist das Gegenteil von โNOT SOAPโ-Fehlerbehauptungen. |
| SOAP-Antwort | รberprรผft, ob die zuletzt empfangene Antwort eine gรผltige SOAP-Antwort ist und gilt nur fรผr SOAP-Testanforderungsschritte. |
| Gรผltiger HTTP-Status Codes | Prรผft, ob die HTML-Antwort einen Statuscode enthรคlt, der in der Liste der definierten Codes enthalten ist. Es ist das Gegenteil von โUngรผltiger HTTP-Statusโ. Codes' Behauptung. |
| WS-Adressierungsanfrage | รberprรผft, ob die zuletzt empfangene Anfrage geeignete WS-Addressing-Header enthรคlt. |
| WS-Adressierungsantwort | รberprรผft, ob die zuletzt empfangene Antwort geeignete WS-Addressing-Header enthรคlt. |
| WS-Sicherheitsstatus | รberprรผft, ob die zuletzt empfangene Nachricht gรผltige WS-Security-Header enthรคlt und gilt nur fรผr SOAP-Anfragen. |
| Skript | |
| Skript-Behauptung | Ermรถglicht Benutzern die Ausfรผhrung eines benutzerdefinierten Skripts zur Durchfรผhrung benutzerdefinierter Validierungen. |
| SLA | |
| Reaktions-SLA | รberprรผft, ob die Antwortzeit der zuletzt empfangenen Antwort innerhalb des definierten Grenzwerts lag. |
| JMS | |
| JMS-Status | รberprรผft, ob die JMS-Anfrage des Testschritts erfolgreich ausgefรผhrt wurde und gilt fรผr Testschritte mit einem JMS-Endpunkt. |
| JMS-Zeitรผberschreitung | รberprรผft, ob die JMS-Antwort eines Testschritts nicht lรคnger als die angegebene Dauer gedauert hat. |
| Sicherheit | |
| Offenlegung sensibler Informationen | รberprรผft, ob die Antwortnachricht keine vertraulichen Informationen รผber das Zielsystem offenlegt. Wir kรถnnen diese Behauptung fรผr REST-, SOAP- und HTTP-Testschritte verwenden. |
Laden Sie das SOAPUI-Projekt herunter, das die oben genannten Behauptungen enthรคlt
Hรคufige Fehler und Fehlerbehebung
Die meisten Assertionsfehler tracEs handelt sich um eine kleine Reihe von Fehlern; รผberprรผfen Sie diese daher, bevor Sie einen Ausdruck neu schreiben.
- Verwenden Sie den korrekten Namespace. Der Namespace sollte lauten: URL wo sich der Webdienst befindet.
- Wenn wรคhrend der Entwicklung ein Fehler auftrittping Bei einer Skript-Assertion verwenden Sie 'log.info', um den Inhalt der Variablen auszugeben.
- Wenn Sie nicht die gewรผnschte Ausgabe erhalten, รผberprรผfen Sie, ob in der Anforderung eine gรผltige Eingabe รผbergeben wird.
Wenn Sie beispielsweise im Wรคhrungsrechner den Wert 'intA' als 'x' eingeben, was keine ganze Zahl ist, wird der Fehlercode 'SOAP-Client' ausgegeben. Dies bedeutet, dass das Problem mit dem vom Client รผbergebenen Parameter zusammenhรคngt. Die Anfrage mit dem ungรผltigen Wert wird zuerst angezeigt.
Die Antwort liefert den Fehlercode anstelle eines Ergebnisses, wie unten dargestellt.
Achten Sie darauf, die korrekte Syntax fรผr XPath- und XQuery-Assertions zu verwenden. Verwenden Sie NICHT den Punkt (.) anstelle des Doppelpunkts (:). Die Syntax lautet //namespace:Tagname und NICHT //namespace.tagname. Andernfalls erhalten Sie mรถglicherweise die Meldung โKeine รbereinstimmung in der aktuellen Antwortโ, obwohl der Tag-Name korrekt ist.














































