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.

Lasst uns den Aktienkurs fรผr Google (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 und ist eine Architektur, die รผblicherweise รผber HTTP lรคuft. Der REST-Stil betont die Interaktion zwischen Clients und Diensten, die durch eine begrenzte Anzahl von Operationen optimiert wird. REST ist eine Alternative zu SOAP (Simple Object Access Protocol) und verwendet anstelle von XML fรผr Anfragen ein einfaches XML-Protokoll. URL In einigen Fรคllen. Im Gegensatz zu SOAP verwenden RESTful-Anwendungen die in HTTP integrierten 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 STARTE 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 Ihre eigene Automatisierung Code
  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 gibt zahlreiche WebService-Testtools zum Testen von SOAP-Webdiensten. SoapUI ist einer 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 Verwendung von Java
  2. Die Verwendung 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) Wie man testet SoapUI Internetservice

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 mit SoapUI Internetservice

  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 mit SoapUI Internetservice

Wie Sie vielleicht schlieรŸen kรถnnen, ist die Verwendung von WebService-Testtools wie SoapUI SoapUI beschleunigt Ihre automatisierten Webdiensttests. Daher wird SoapUI im Mittelpunkt unserer Lerninhalte in den folgenden Tutorials 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 Austausch von Daten in einfachem Format. 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 wird Ihre Bemรผhungen zur Automatisierung von Webdiensttests beschleunigen und erfordert im Vergleich zur Erstellung eigenen Codes mit der Axis2-API weniger Programmieraufwand.

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

Mehr รผber erfahren Web-API-Tests

Dieses Tutorial zum Testen von Webdiensten wurde durch Beitrรคge von Herrn Narender Reddy Nukala ermรถglicht

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: