understanding assertions soapui soapui tutorial 5
Wir haben an Grundlagen von SoapUI wie gearbeitet Projekte erstellen, WSDL hinzufügen, eine Anfrage senden und Antworten empfangen und Generieren von Test-Assets, um diese bisher zu begleiten.
In diesem 5. SoapUI-Tutorial erfahren Sie alles über Behauptungen in SoapUI. Wir empfehlen Ihnen dringend Folgen Sie der vollständigen SoapUI-Schulungsreihe auf dieser Seite um all diese Kernfunktionen zu lernen.
Was du lernen wirst:
- Einführung in Behauptungen
- Arbeiten mit verschiedenen Arten von Behauptungen in SoapUI
- Fazit
- Literatur-Empfehlungen
Einführung in Behauptungen
Wie bei jedem Test müssen wir vergleichen, was das System tun soll und was es tatsächlich tut, um zu einer bestimmten Validierung oder Behauptung zu gelangen, wie es im Kontext von Webdiensten genannt wird. Als Tester spielt es keine Rolle, ob wir 1000 oder sogar Millionen Testschritte ausgeführt haben, aber für uns bestimmt der Ergebnisvergleich das Ergebnis eines Tests.
Daher werden wir diesen gesamten Artikel damit verbringen, zu verstehen, wie wir dies mit SoapUI tun können, obwohl Webdienste manuell aktiviert werden können. Eine manuelle Bestätigung ist auch zeitaufwändig, wenn mehrere Antworten und Antworten mit großen Datenmengen vorliegen. SoapUI-Behauptungen sind hervorragend darin, diese Defizite zu überwinden.
SOAPUI-Behauptungen Vergleichen Sie die Teile / die gesamte Antwortnachricht mit dem erwarteten Ergebnis. Wir können jedem Testschritt eine Vielzahl von Aussagen hinzufügen, die von SoapUI bereitgestellt werden. Jede Art von Zusicherung zielt auf bestimmte Validierungen der Antwort ab, z. B. übereinstimmenden Text, Vergleichen von XPATH oder das Schreiben von Abfragen basierend auf unseren Anforderungen.
Wenn die Testschritte ausgeführt werden, erhalten die zugehörigen Zusicherungen die Antwort für die jeweiligen Testschritte. Wenn eine Antwort fehlschlägt, wird die entsprechende Zusicherung verarbeitet und der entsprechende Testschritt als fehlgeschlagen markiert. Diese Benachrichtigung kann in der Testfallansicht angezeigt werden. Außerdem finden wir fehlgeschlagene Testschritte im Testausführungsprotokoll. Der Bildschirm zur Bestätigung des Beispieltestschritts sieht wie folgt aus:
In der obigen Abbildung sind einige der Testschritte fehlgeschlagen und einige sind PASSIERT. Der Grund ist die Behauptung.
Wie bereits erwähnt, ist das Ergebnis FEHLGESCHLAGEN, wenn die Assert-Bedingung nicht mit den erwarteten Ergebnissen erfüllt ist.
Arbeiten mit verschiedenen Arten von Behauptungen in SoapUI
Lassen Sie uns nun sehen, wie man mit verschiedenen Arten von Behauptungen arbeitet, wie zum Beispiel:
- Enthält und nicht enthält Aussagen
- XPath Match und
- XQuery-Übereinstimmungszusicherungen.
Erstens benötigen wir einen gültigen WSDL-Schema-Speicherort.
Befolgen Sie die folgenden Schritte:
Schritt 1. Erstellen Sie ein neues SOAP-Projekt Drücken Sie STRG + N und befolgen Sie die Schritte. Nach dem Erstellen des Projekts generiert SOAPUI die Liste der Schnittstellen und die entsprechenden Anforderungen.
Schritt 2. Gehen Sie folgendermaßen vor, um die Testsuite zu diesem Projekt hinzuzufügen:
- Klicken Sie mit der rechten Maustaste auf den Schnittstellennamen MedicareSupplierSoap
- Klicken Testsuite generieren Option aus dem Kontextmenü
- Klicken Sie im folgenden Fenster auf OK:
- Geben Sie im nächsten Popup den gewünschten Namen der Testsuite ein und klicken Sie auf OK
- SOAPUI PRO generiert die Testsuite zusammen mit den Anforderungen im Navigatorfenster.
- Unter der Testsuite sehen Sie einige der Testschritte mit dem SOAP-Anforderungsschritt.
Schritt 3. Um diese Testsuite auszuführen, doppelklicken Sie auf den Anforderungsschritt und geben Sie den Eingabewert an der entsprechenden Stelle an. Zum Beispiel öffnen GetSupplierByCity anfordern und eingeben New York zwischen den Stadt-Tags.
- Starten Sie diese Anforderung, indem Sie auf das RUN-Symbol klicken. Daraufhin wird die Antwort angezeigt.
- Fügen wir nun Aussagen hinzu. Klicken Sie dazu auf die Behauptungen Registerkarte oben in den Protokollregistern.
- Wenn Sie mit der rechten Maustaste klicken, wird ein Popup-Menü mit einigen grundlegenden Optionen für Zusicherungen angezeigt:
# 1) Enthält Behauptung
Klicken Sie auf die Option Assertion hinzufügen oder klicken Sie in der Symbolleiste darauf. Behauptung hinzufügen Auf dem Bildschirm wird ein Fenster mit verschiedenen Arten von Zusicherungen angezeigt.
1. Klicken Sie auf Eigenschaftsinhalt Kategorie aus der Liste - Zugeordnete Assertionstypen und deren Beschreibung werden angezeigt
2. Klicken Sie auf Enthält Assertion und klicken Sie auf die Schaltfläche Hinzufügen
3. Dies ist das Assertion-Konfigurationsfenster. Hier selbst müssen wir die erwartete Bedingung basierend auf der Antwort angeben.
Zum Beispiel ist, lass mich eintreten New York Text in diesem Textfeld. Fall im Vergleich ignorieren Das Kontrollkästchen wird ignoriert, auch wenn der erwartete Wert in Groß- oder Kleinbuchstaben angegeben ist.
4. Führen Sie nun die Testsuite aus und überprüfen Sie die Ergebnisse. Wie Sie im Fenster der Testsuite gesehen haben, zeigt Grün die erfolgreiche Ausführung und Rot den Fehler an.
# 2) Enthält keine Behauptung
Wir können die Zusicherung 'nicht enthält' verwenden, um Anforderungen in negativen Szenarien zu validieren. Wir können benutzen GetSupplierByZipCode Bitte, das zu lernen.
Öffnen Sie die Registerkarte 'Anfrage', indem Sie darauf doppelklicken. Geben Sie in der Eingabeanforderung die ungültige Postleitzahl an der entsprechenden Stelle ein, z 10029 . Führen Sie diese Anforderung jetzt aus. Überprüfen Sie die Antwortdaten mit den Lieferantendetails für die angegebene Postleitzahl - sehen Sie sich das Bild unten an:
(Klicken Sie auf das Bild für eine vergrößerte Ansicht)
Die Behauptung 'enthält nicht' wird bei erfolgreicher Ausführung grün hervorgehoben.
Im Konfigurationsfenster haben wir mit positivem Erwartungswert wie folgt konfiguriert:
Es gibt true zurück, wenn der erwartete bedingte Wert nicht gefunden wird, und false, wenn der erwartete Wert in der Antwortnachricht gefunden wird.
Ebenso können wir die Bedingung ändern und die Anforderung erneut ausführen. Es generiert die Ergebnisse entsprechend.
# 3) XPath Match Assertion
Die Zusicherung von XPath-Übereinstimmungen unterscheidet sich ein wenig darin, dass die Antwort unter Verwendung der tatsächlichen Antwortdaten bestätigt wird.
Zum Beispiel , wenn wir einen Webdienst für die Anmeldungsauthentifizierung haben, der die Benutzeranmeldeinformationen authentifiziert und die Bestätigung mit einem booleschen Datentyp an den Client sendet, der in Form von XML WAHR oder FALSCH sein kann.
Wie Sie wissen, werden XML-Dokumente aus Tags erstellt. Wenn Sie also den erwarteten Wert in der Konfiguration angeben, sollte dieser in Form von XML vorliegen.
Wie erstelle ich eine doppelt verknüpfte Liste in Java?
Versuchen wir das:
Fügen Sie eine weitere Behauptung für die hinzu GetSupplierByCity Anfrage. Klicken Sie im Fenster Assertion hinzufügen auf Eigenschaftsinhalt Kategorie und dann klicken XPath-Match Behauptung.
Das folgende Fenster wird angezeigt:
Der obere Abschnitt ist der Deklarationsteil und der untere Abschnitt ist der erwartete Ergebnisteil.
Wenn wir auf klicken Erklären Option erhalten wir einige automatisch generierte Deklarationsskripte wie unten:
Deklarieren Sie den Namespace soap = 'http: //schemas.xmlsoap.org/soap/envelope/'.
Deklarieren Sie den Namespace ns1 = 'http: //www.webservicex.net/'.
In den obigen Skripten gibt die erste Zeile die Antwort an, bei der es sich um XML-Daten und eingeschlossene SOAP-Tags handeln sollte. In der nächsten Zeile wird die gesamte Antwort zugewiesen oder in die kopiert ns1 Namespace-Variable während der Ausführung. Wenn wir bestimmte Daten aus der gesamten Antwort herausfiltern möchten, müssen wir das folgende Skript hinzufügen.
// ns1: SupplierData (1)
Wie Sie wissen, wenn Sie die ausführen GetSupplierByCity Auf Anfrage wird die Antwort erstellt, die die Liste der personenbezogenen Daten des Lieferanten enthält, zu denen er gehört New York City .
Hier haben wir verwendet XPath Match Ausdruck, um die persönlichen Daten des jeweiligen Lieferanten aus der Massenantwort zu extrahieren. Zu diesem Zweck haben wir eine verwendet ns1 Variable. Klicken Sie nun auf die Wählen Sie aus einem Strom Taste.
Dann generiert SOAPUI das folgende Ergebnis:
0127051883 KMART CORP 250 W 34TH ST NEW YORK NY 10119 0002 (212)760-1242 04
Bitte beziehen Sie sich auf diesen Screenshot:
Hier in den Antwortdaten sehen Sie nur die persönlichen Daten eines Lieferanten. Basierend auf der Anzahl, die in den spitzen Klammern vorhanden ist, wird die Ausgabe generiert.
Bisher geht es darum, den Teil der Antwort auszuwählen, der erforderlich ist, wie können / verwenden wir XPath Match Behauptung?
Kommen wir dazu: Klicken Sie auf die Schaltfläche Speichern, sobald Sie mit der Antwort einverstanden sind.
Wenn Sie diesen Dienst nach dem Konfigurieren der XPath-Übereinstimmungszusicherung ohne Änderungen ausgeführt hätten, ist das Ergebnis zunächst eine erfolgreiche Antwort, deren Status grün hervorgehoben ist.
Ändern wir jedoch den Eingabeparameter in der Eingabeanforderung in eine ungültige Stadt - 'XYZ oder ABC'. Führen Sie die Anforderung aus und überprüfen Sie die Ergebnisse sowie den Assertionsstatus. Wir erhalten eine Fehlerantwort und eine rote Statusanzeige für die Bestätigung. Da wir bereits festgelegt hatten, dass die jeweiligen Lieferantendaten in der Serviceantwort in der erwarteten Ergebniskonfiguration vorhanden sein sollen und der Name der Stadt ungültig ist, ist dieser Lieferant eindeutig nicht vorhanden.
Auf diese Weise können wir die XML-Antwort mithilfe der XPath Match-Ausdruckszusicherung bestätigen. Einverstanden, dass dies zunächst recht einfach ist, aber wenn Sie es mit unterschiedlichen Serviceantworten versuchen, erhalten Sie eine viel bessere Vorstellung.
Wir können auch Aggregatfunktionen im XPath Match-Ausdruck verwenden. Sie sind Summe, Min, Max, Anzahl und Durchschn.
Zum Beispiel Wenn Sie wissen möchten, wie viele Lieferanten in den erwarteten Ergebnissen gezählt werden, schreiben Sie das folgende Skript.
count (// ns1: SupplierData) und es kehrt zurück 536 infolge. Denken Sie daran, dass alle Aggregatfunktionen in Kleinbuchstaben geschrieben werden sollten.
# 4) XQuery Match Assertion
Dies ist der Behauptung von XPath Match etwas ähnlich. Wie wir in der Konfiguration der XPath Match-Zusicherung gesehen haben, gibt es zwei Abschnitte - Deklaration und erwartetes Ergebnis.
- Fügen Sie die XQuery Match-Zusicherung für die Anforderung hinzu
- Klicken Sie im Konfigurationsfenster auf erklären Schaltfläche und schreiben Sie das folgende Skript
- Klicken Sie nun auf Wählen Sie aus Aktuell Taste
- SOAPUI generiert die Antwort für das Skript
Der XQuery-Ausdruck unterstützt auch den XPath-Übereinstimmungsausdruck, verfügt jedoch über eine eigene Skriptsyntax, die bei der Zusicherung von XPath-Übereinstimmungen nicht verwendet werden kann.
Zum Beispiel ::
Wir werden ein Beispiel sehen, um die gesamte Lieferantendatenantwort mit dem XQuery-Ausdruck abzurufen. Schauen Sie sich diesen Beispiel-Screenshot an, um ihn besser zu verstehen.
Aktuelles Skript:
declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/'; declare namespace ns1='http://www.webservicex.net/'; { for $x in //ns1:SupplierData return $x }
In XQuery-Ausdrücken stehen weitere integrierte Funktionen zur Verfügung. Sie sind wo, bestellen von, für, zurück und so weiter.
Fazit
Nun, das sind die am häufigsten verwendeten Behauptungen für Sie.
Der Schwerpunkt liegt hier auf Folgendem: Aussagen sind am wichtigsten, um das erwartete Ergebnis der Webdienste genau vorherzusagen. Das ist der Grund, warum es einer der Schlüssel ist Funktionen in SOAPUI PRO .
Nächstes Tutorial : Im nächsten Tutorial werden wir uns mit den Grundlagen der Skripterstellung und vielem mehr beschäftigen…
Bitte bleiben Sie in Verbindung. Wie immer sind Ihre Kommentare, Fragen und Vorschläge herzlich willkommen.
Literatur-Empfehlungen
- So führen Sie datengesteuerte Tests in SoapUI Pro durch - SoapUI Tutorial Nr. 14
- 15+ SoapUI-Tutorials: Das beste API-Testtool für Webdienste
- Ausführliche Eclipse-Tutorials für Anfänger
- Verwendung von Eigenschaften in SoapUI Groovy Script - SoapUI Tutorial # 7
- 7 Wichtige Funktionen von SoapUI und SoapUI Pro - Tutorial 2
- Arbeiten mit SoapUI-Eigenschaften - SoapUI Tutorial # 8
- 4 Wichtige Funktionen von SoapUI Pro für Pro Audience - SoapUI Tutorial # 12
- Schritt für Schritt SoapUI Download- und Installationsprozess - SoapUI Tutorial # 3