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

Was ist WebService?

Webdienste sind der Mechanismus oder das Kommunikationsmedium, über das zwei Anwendungen/Maschinen die Daten unabhängig von ihrer Unterstreichung austauschen archiStruktur und Technik.

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, wobei eine Person eine Anfrage an einen Softwaredienst sendet, der wiederum eine Antwort an den Menschen zurückgibt readable Format.

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.

Betrachten Sie als Beispiel Folgendeswing Internetservice

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 unterschiedliche Weise implementiert werden, aber die folgendenwing Zwei sind die beliebtesten Implementierungsansätze.

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

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 bedeutet REpresentational State Transfer; es ist ein architektur, die im Allgemeinen über HTTP läuft. Der REST-Stil betont die Interaktionen zwischen Clients und Diensten, die durch eine begrenzte Anzahl verbessert werden operationen. REST ist eine Alternative zu SOAP (Simple Object Access Protocol) und verwendet in einigen Fällen statt XML für Anfragen eine einfache URL. Im Gegensatz zu SOAP verwenden RESTFUL-Anwendungen integrierte HTTP-Header zur Übertragung von Metainformationen.

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 (Web Services Description Language) ist eine XML-basierte Sprache, die zur Beschreibung der von einem Webdienst angebotenen Dienste verwendet wird.

WSDL beschreibt alles operaInformationen, die der jeweilige Webservice im XML-Format bietet. Es definiert auch, wie die Dienste aufgerufen werden können, dh 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 Web Services-Automatisierung umfasst Folgendeswing Schritte -

  1. Verstehen Sie die WSDL-Datei
  2. Bestimmen Sie die operaFunktionen, 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 bestimmen operationen und XML-Formate

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 Bestimmung operationen und XML-Formate

WSDL und Bestimmung operationen und 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. Verwendung von 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 Javac Implementierungs-API, die zum Erstellen der Webdienste sowohl für die Serverseite (Dienstanbieter) als auch für die Clientseite (Dienstkonsument) verwendet wird.

Axis2 ist in der Lage, SOAP-Nachrichten zu senden und die SOAP-Nachrichten zu empfangen und zu verarbeiten. Wir können mithilfe der API ein kleines Java-Programm schreiben, um den Webdienst zu erstellen. Axis2 generiert die WSDL aus einem Java-Programm, das zur Kommunikation der vom Webdienst angebotenen Dienste verwendet wird. Wir können dasselbe Axis2 verwenden, um die Java-Klasse (Stub) aus einer WSDL-Datei zu generieren, die wir als Client-Programm verwenden können, um die Webdienstanfrage zu generieren, die Anfrage an den Dienstendpunkt zu senden und die Antwort zu verarbeiten.

  1. Im Grunde erstellen wir ein einfaches 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 per Stub in eine Java-Klasse konvertiert und an das eigentliche Programm zurückgegeben.

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, navigieren Sie zu der Ordnerstruktur, in der Sie die Artefakte generieren möchten, und führen Sie Folgendes auswing Befehl, 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 Tutorials zum Testen von Webdiensten müssen wir das Client-Programm erstellen, über das wir die eigentliche Anfrage mithilfe der generierten Stubs senden. Öffne das 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 eine neue Java-Klasse (z. B. Client.Java) und instanziieren Sie das Stub-Objekt. Mit dem Stub-Objekt können wir alle unterstützten Methoden des jeweiligen WebService 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 double Klicken Sie auf „Anfrage1“. 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. Antwort-XML wird angezeigtyed rechter Seitenbereich.

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