Tutorial zum Testen von Webdiensten: Wie teste ich? Lernen Sie mit Beispielen

Was ist WebService?

Web Services sind der Mechanismus oder das Kommunikationsmedium, über das zwei Anwendungen/Maschinen Daten austauschen, unabhängig von ihrer zugrunde liegenden Architektur und Technologie.

Was ist Webservice-Testen?

Testen von Webdiensten ist eine Art Softwaretest, der Webdienste validiert. Der Zweck des Testens von Webdiensten besteht darin, die Funktionalität, Zuverlässigkeit, Leistung und Sicherheit einer API (Application Program Interface) zu überprüfen. Das Testen von Webdiensten ähnelt in einigen Fällen dem Testen von Einheiten. Sie können einen Webservice manuell testen, Ihren eigenen Automatisierungscode erstellen oder ein handelsübliches Automatisierungstool wie verwenden Postman.

Warum wird WebService benötigt?

Im Allgemeinen werden Softwareanwendungen für die Nutzung durch Menschen entwickelt. Dabei sendet eine Person eine Anfrage an einen Softwaredienst, der wiederum eine Antwort in einem für Menschen lesbaren Format zurückgibt.

Wenn Sie im modernen Zeitalter der Technologie eine Softwareanwendung erstellen möchten, müssen Sie nicht alles von Grund auf neu erstellen. Es stehen zahlreiche vorgefertigte Dienste zur Verfügung, die Sie in Ihre Anwendung integrieren und mit der Bereitstellung dieser Dienste in Ihrer Anwendung beginnen können.

Sie möchten beispielsweise Wettervorhersageinformationen anzeigen, die Sie nicht in Ihrer Anwendung sammeln, verarbeiten und rendern müssen. Sie können die Dienste von Personen erwerben, die sich bereits mit der Verarbeitung und Veröffentlichung solcher Daten auskennen.

Webservices ermöglichen uns diese Art von Implementierungen.

Als Beispiel betrachten wir den folgenden WebService

http://www.webservicex.net/stockquote.asmx?op=GetQuote

Es verleiht einem Unternehmen einen Aktienwert.

Lassen Sie uns den Aktienkurs für Google ermitteln (Symbol: GOOG)

Testen von Webdiensten

Das Antwort-XML gibt den Aktienkurs an.

Testen von Webdiensten

Dieser WebService kann von einer Softwareanwendung über das SOAP- oder HTTP-Protokoll aufgerufen werden.

Webdienstprotokolle

Webdienste können auf verschiedene Arten implementiert werden, aber die folgenden zwei sind die beliebtesten Implementierungsansätze.

  1. SOAP (Simple Object Access Protocol)
  2. REST (Representational State Transfer-Architektur)

SOAP

SOAP ist ein vom W3C-Standard definiertes Standardprotokoll zum Senden und Empfangen von Webdienstanfragen und -antworten.

SOAP verwendet die XML-Format zum Senden und Empfangen der Anfrage und daher handelt es sich bei den Daten um plattformunabhängige Daten. SOAP-Nachrichten werden zwischen den Anbieteranwendungen und der empfangenden Anwendung innerhalb der SOAP-Umschläge ausgetauscht.

Da SOAP das einfache HTTP-Transportprotokoll verwendet, werden seine Nachrichten nicht von den Firewalls blockiert.

REST

REST steht für REpresentational State Transfer; es handelt sich dabei um eine Architektur, die im Allgemeinen über HTTP ausgeführt wird. Der REST-Stil betont die Interaktionen zwischen Clients und Diensten, die durch eine begrenzte Anzahl von Vorgängen verbessert werden. REST ist eine Alternative zu SOAP (Simple Object Access Protocol) und verwendet in einigen Fällen anstelle von XML für Anfragen einfache URLs. Im Gegensatz zu SOAP verwenden RESTFUL-Anwendungen integrierte HTTP-Header, um Metainformationen zu übertragen.

Es gibt verschiedene Codes, die REST verwendet, um zu bestimmen, ob der Benutzer Zugriff auf die API hat oder nicht, z. B. Code 200 oder 201 zeigt eine erfolgreiche Interaktion mit dem Antworttext an, während 400 eine fehlerhafte Anfrage anzeigt oder der Anfrage-URI nicht mit den APIs im System übereinstimmt. Alle API-Anfrageparameter und Methodenparameter können über beide gesendet werden jetzt lesen or BESTELLE Variablen.

Die Rest-API unterstützt sowohl das XML- als auch das JSON-Format für WebServices-API-Tests. Es wird normalerweise bevorzugt für Mobil und Web-Apps, da die App dadurch schneller und reibungsloser funktioniert

wsdl

WSDL (Webdienste Description Language) ist eine XML-basierte Sprache, die zur Beschreibung der von einem Webdienst angebotenen Dienste verwendet wird.

WSDL beschreibt alle vom jeweiligen Webdienst angebotenen Vorgänge im XML-Format. Es definiert auch, wie die Dienste aufgerufen werden können, d. h. welchen Eingabewert wir bereitstellen müssen und welches Format die Antwort haben wird, die für jede Art von Dienst generiert wird.

Wie teste ich einen Webdienst?

Sie können den Webdienst testen

  1. Manuell testen
  2. Erstellen Sie Ihren eigenen Automatisierungscode
  3. Verwenden Sie ein handelsübliches Automatisierungstool wie SoapUI.

Das Testen der Automatisierung von Webdiensten umfasst die folgenden Schritte:

  1. Verstehen Sie die WSDL-Datei
  2. Bestimmen Sie die Vorgänge, die ein bestimmter Webdienst bereitstellt
  3. Bestimmen Sie das XML-Anfrageformat, das wir senden müssen
  4. Bestimmen Sie das XML-Antwortformat
  5. Verwenden eines Tools oder Schreiben von Code zum Senden der Anfrage und Validieren der Antwort

Angenommen, wir möchten einen Webdienst testen, der die Möglichkeit zur Währungsumrechnung bietet. Es werden die aktuellen Umrechnungskurse zwischen den Währungen der verschiedenen Länder angezeigt. Diesen Dienst können wir in unseren Anwendungen nutzen, um die Werte von einer Währung in die andere Währung umzurechnen.

Schauen wir uns nun die obigen Schritte an

Schritt 1 bis 4: WSDL verstehen und Operationen und XML-Formate bestimmen

Währung Convertor WSDL-Datei kann gesehen werden @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl), das Informationen über die Währung liefert Convertor Webservice-Methoden, die es unterstützen wird, die Parameter, die wir übergeben müssen, und die Art der Parameter usw.

WSDL und Bestimmungsoperationen & XML-Formate

WSDL und Bestimmungsoperationen & XML-Formate

Schritt 5: Verwenden Sie ein Tool oder schreiben Sie Code, um die Anfrage zu senden und die Antwort zu validieren

Es stehen zahlreiche WebService-Testtools zum Testen von SOAP-Webdiensten zur Verfügung. SoapUI ist eines der beliebtesten API-Tool Dies wird uns helfen, SOAP-Webdienste zu testen. Tatsächlich können Sie jede Programmiersprache verwenden, die in der Lage ist, die XML-Anfrage über http an die Webdienstanbieteranwendung zu senden und die Antwort-XML anhand des erwarteten Ergebnisses zu analysieren und zu validieren. In diesem Tutorial zum Testen von Webdiensten testen wir den WebService

  1. Die richtigen Java
  2. Verwenden von SoapUI

TEIL 1) WebService-Tests mit der Apache Axis2 API (Java).

Im Allgemeinen nimmt ein Webdienst die Anfrage entgegen und sendet die Antwort im XML-Format.

Das Apache Axis2 API-Projekt ist ein Java Implementierungs-API, die zum Erstellen der Webdienste sowohl für die Serverseite (Dienstanbieter) als auch für die Clientseite (Dienstkonsument) verwendet wird.

Axis2 kann SOAP-Nachrichten senden und empfängt und verarbeitet die SOAP-Nachrichten. Wir können eine kleine Java Programm, das die API verwendet, um den Webdienst zu erstellen. Axis2 generiert die WSDL aus Java Programm, das zur Kommunikation der vom Webdienst angebotenen Dienste verwendet wird. Wir können dieselbe Axis2 verwenden, um die Java Klasse (Stub) aus einer WSDL-Datei, die wir als Client-Programm verwenden können, um die Webdienstanforderung zu generieren, die Anforderung an den Service-Endpunkt zu senden und die Antwort zu verarbeiten.

  1. Im Grunde erstellen wir eine einfache Java Programm, in dem wir die Stub-Klasse instanziieren.
  2. Mithilfe des Stubs rufen wir die Anforderungsmethode auf, indem wir alle erforderlichen Informationen übergeben.
  3. Das Stub-Programm konvertiert diese Anfrage in das XML-Anfrageformat und sendet sie an den Dienstendpunkt, der die Anfrage liest, die Anfrage verarbeitet und die Antwort im XML-Format sendet.
  4. Die XML-Antwort wird umgewandelt in Java Klasse für Stub und zurück zum eigentlichen Programm.

Schauen wir uns die obigen Schritte im Detail an

Schritt a) Laden Sie die axis2-API @ herunter https://axis.apache.org/axis2/Java/core/download.cgi & Setzen Sie die Umgebungsvariable „AXIS2_HOME“

WebService-Tests mit der Apache Axis2 API (Java)

Schritt b) Erstellen Sie einen Ordner, um alle generierten Artefakte aufzubewahren

Beispiel: C:\Axis\Projects\CurrencyConverter

Schritt c) Öffnen Sie die Eingabeaufforderung und navigieren Sie zu der Ordnerstruktur, in der Sie die Artefakte generieren möchten, und führen Sie den folgenden Befehl aus, der die Stubs generiert

%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb –s

WebService-Tests mit der Apache Axis2 API (Java)

Schritt d) Sobald der Befehl erfolgreich ausgeführt wurde, wird der Ordner mit den erforderlichen Dateien angezeigt.

WebService-Tests mit der Apache Axis2 API (Java)

Schritt e)Im nächsten Schritt dieses Web Services Testing-Tutorials müssen wir das Client-Programm erstellen, über das wir die eigentliche Anfrage mit den generierten Stubs senden. Öffnen Sie Eclipse und erstellen Sie das neue Java Projekt und wählen Sie den Ordner aus, den wir oben erstellt haben.

WebService-Tests mit der Apache Axis2 API (Java)

Schritt f) Fügen Sie alle mit Axis2 verbundenen JAR-Dateien zum Projekterstellungspfad hinzu, der sich dort im lib-Ordner des Axis2-Softwareordners befindet

(zum Beispiel: C:\Axis\axis2-1.6.2\lib)

WebService-Tests mit der Apache Axis2 API (Java)

Schritt g) Erstellen Sie ein neues Java Klasse (Beispiel: Client).Java) und instanziieren Sie das Stub-Objekt. Mit dem Stub-Objekt können wir alle unterstützten Methoden des jeweiligen Webdienstes aufrufen.

WebService-Tests mit der Apache Axis2 API (Java)

Client.Java Program
package org.apache.axis2.currencyconvertor;
import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate;
import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse;
import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency;

public class Client {
 public static void main(Java.lang.String args[]) {

  try {

       //Create the stub object by passing the service end point url
       CurrencyConvertorStub stub = new CurrencyConvertorStub("http://www.webservicex.net/CurrencyConvertor.asmx");
       //ConversionRate is the class which we have to use mention the from and to currency
       //ConversionRate object will be the parameter for the conversionRate operation
       ConversionRate conversionRate = new ConversionRate();
       conversionRate.setFromCurrency(Currency.USD);
       conversionRate.setToCurrency(Currency.INR);

       //Create the ConversionRateResponse object, which is going to be used to catch the response
       //call the conversionRate service using the stub object
       ConversionRateResponse conversionRateResponse = stub.conversionRate(conversionRate);

       //We can use the conversionRateResponse object to retrieve the response of the ConversionRate Service
       System.out.println("Conversion Rate from INR to USD : " + conversionRateResponse.getConversionRateResult());

       } catch (Exception e) {
       e.printStackTrace();
      }
    }
}

TEIL 2) So testen Sie den SoapUI-Webdienst

In SoapUI

  1. Gehen Sie zu Datei > Neues Soap-Projekt
  2. Geben Sie den Projektnamen und den WSDL-URI-Speicherort ein
  3. klicken Sie auf OK

Testen Sie den SoapUI-Webdienst

  1. Erweitern Sie die erste Anfrage und doppelklicken Sie auf „Request1“. Die SOAP-Anfrage wird im XML-Format angezeigt.
  2. Geben Sie die Von- und Bis-Währung ein
  3. Klicken Sie auf die Schaltfläche Senden
  4. Die Antwort-XML wird im rechten Bereich angezeigt.

Testen Sie den SoapUI-Webdienst

Sie können daraus schließen, dass die Verwendung von WebService-Testtools wie SoapUI Ihren Testaufwand für die Automatisierung von Webdiensten beschleunigt. Daher wird SoapUi in den folgenden Tutorials im Mittelpunkt unseres Lernens stehen.

Zusammenfassung

  • Softwareanwendungen kommunizieren und tauschen Daten untereinander über einen WebService aus
  • SOAP und REST sind zwei beliebte Protokolle zum Erstellen eines WebService
  • SOAP unterstützt den XML-basierten Datenaustausch
  • REST unterstützt XML, JSON oder den Datenaustausch in einer einfachen URL für WebServices-API-Tests.
  • WSDL ist eine XML-basierte Sprache, die zur Beschreibung der von einem Webdienst angebotenen Dienste verwendet wird. SOAP wird mithilfe von WSDL definiert.
  • Sie können WebService testen
    • Erstellen Sie Ihren eigenen Code. Verwenden Sie beispielsweise die Axis2-API für Java
    • Verwenden Sie WebService-Testautomatisierungstools wie SoapUI
  • Automatisierungstools wie SoapUI beschleunigen Ihre Bemühungen beim Testen der Webservices-Automatisierung und erfordern weniger Codierungsaufwand im Vergleich zum Erstellen Ihres eigenen Codes mit der Axis2-API

FAQ

Internetservice Web API
Nach Definition des W3C basiert die gesamte Kommunikation und der Datenaustausch auf XML Die Web-API-Kommunikation und der Datenaustausch können XML, JSON oder einfache Daten sein
Es hat Standards definiert – WSDL Kein definierter Standard
Sie können die Daten nicht komprimieren, aber Sie können die HTML-Anfrage komprimieren Sie können die Daten komprimieren
Beispiel: Seife Beispiel: REST

Erfahren Sie mehr darüber Web-API-Tests

Dieses Tutorial zum Testen von Webdiensten wurde durch Beiträge von Herrn Narender Reddy Nukala ermöglicht