Was ist WebService?
Webdienste sind der Mechanismus oder das Kommunikationsmedium, über das zwei Anwendungen / Maschinen die Daten unabhängig von ihrer Unterstreichungsarchitektur und der Technologie austauschen.
Was ist das Testen von Webdiensten?
Das Testen von Webdiensten ist eine Art von Softwaretests, mit denen Webdienste validiert werden. Der Zweck von Web Services Testing 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 oder Ihren eigenen Automatisierungscode erstellen oder ein Standardautomatisierungstool wie Postman verwenden.
Warum wird WebService benötigt?
Im Allgemeinen werden Softwareanwendungen entwickelt, um von Menschen konsumiert zu werden, wobei eine Person eine Anfrage an einen Softwaredienst sendet, der wiederum eine Antwort in einem für Menschen lesbaren Format zurückgibt.
In der modernen Ära der Technologie müssen Sie nicht alles von Grund auf neu erstellen, wenn Sie eine Softwareanwendung erstellen möchten. Es stehen viele vorgefertigte Dienste zur Verfügung, die Sie in Ihre Anwendung einbinden können, und Sie können diese Dienste in Ihrer Anwendung bereitstellen.
Sie möchten beispielsweise Wettervorhersageinformationen anzeigen, die Sie nicht zum Sammeln, Verarbeiten und Rendern der Daten in Ihrer Anwendung benötigen. Sie können die Dienste von Personen kaufen, die sich bereits in der Verarbeitung und Veröffentlichung solcher Daten gut etabliert haben.
Mit Webdiensten können wir diese Art von Implementierungen durchführen.
Betrachten Sie als Beispiel den folgenden WebService
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Es gibt den Aktienwert für ein Unternehmen.
Lassen Sie uns den Aktienkurs für Google finden (Symbol: toget)
Das Antwort-XML gibt den Aktienkurs an.
Dieser WebService kann von einer Softwareanwendung mithilfe des SOAP- oder HTTP-Protokolls aufgerufen werden.
Webdienstprotokolle
Webdienste können auf verschiedene Arten implementiert werden. Die folgenden beiden sind jedoch die gängigen Implementierungsansätze.
- SOAP (Simple Object Access Protocol)
- REST (Representational State Transfer-Architektur)
SEIFE
SOAP ist ein vom W3C-Standard definiertes Standardprotokoll zum Senden und Empfangen von Webdienstanforderungen und -antworten.
SOAP verwendet das XML-Format zum Senden und Empfangen der Anforderung. Daher sind die Daten 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.
SICH AUSRUHEN
REST bedeutet REpresentational State Transfer; Es ist eine Architektur, die im Allgemeinen über HTTP ausgeführt wird. Der REST-Stil betont die Interaktionen zwischen Clients und Services, die durch eine begrenzte Anzahl von Vorgängen verbessert werden. REST ist eine Alternative zu SOAP (Simple Object Access Protocol). Statt XML für Anforderungen zu verwenden, verwendet REST in einigen Fällen eine einfache URL. 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, wie Code 200 oder 201, der eine erfolgreiche Interaktion mit dem Antworttext anzeigt, während 400 eine fehlerhafte Anforderung anzeigt oder der Anforderungs-URI nicht mit den APIs im System übereinstimmt. Alle API-Anforderungsparameter und Methodenparameter können entweder über POST- oder GET- Variablen gesendet werden .
Die Rest-API unterstützt sowohl das XML- als auch das JSON-Format für WebServices-API-Tests. Es wird normalerweise für mobile und Web-Apps bevorzugt, da dadurch die App schneller und reibungsloser funktioniert
WSDL
WSDL (Web Services Description Language) ist eine XML-basierte Sprache, mit der die von einem Webdienst angebotenen Dienste beschrieben werden.
WSDL beschreibt alle vom jeweiligen Webdienst angebotenen Vorgänge im XML-Format. Es definiert auch, wie die Dienste aufgerufen werden können, dh welchen Eingabewert wir bereitstellen müssen und welches Format die Antwort hat, die für jede Art von Dienst generiert wird.
Wie teste ich einen Webdienst?
Um den Webdienst zu testen, können Sie
- Manuell testen
- Erstellen Sie Ihren eigenen Automatisierungscode
- Verwenden Sie ein Standardautomatisierungstool wie SoapUI.
Das Testen der Web Services-Automatisierung umfasst die folgenden Schritte:
- Verstehen Sie die WSDL-Datei
- Bestimmen Sie die Vorgänge, die ein bestimmter Webdienst bereitstellt
- Bestimmen Sie das XML-Anforderungsformat, das wir senden müssen
- Bestimmen Sie das XML-Antwortformat
- Verwenden eines Tools oder Schreiben von Code zum Senden einer Anfrage und Validieren der Antwort
Angenommen, wir möchten den Webdienst testen, der die Währungsumrechnungsfunktion bietet. Es werden die aktuellen Umrechnungskurse zwischen den verschiedenen Landeswährungen angezeigt. Diesen Service können wir in unseren Anwendungen verwenden, 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: Grundlegendes zu WSDL und Bestimmen von Operationen und XML-Formaten
Die WSDL-Datei für den Währungsumrechner ist unter @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) zu sehen. Dort finden Sie Informationen zu den unterstützten Währungsumrechnungs-Webdienstmethoden, den Parametern, die übergeben werden müssen, und den Art der Parameter
… uswSchritt 5: Verwenden eines Tools oder Schreiben von Code zum Senden einer Anfrage und Validieren der Antwort
Zum Testen des SOAP-Webdienstes stehen zahlreiche WebService-Testtools zur Verfügung. SoapUI ist eines der beliebtesten API-Tools, mit denen wir SOAP-Webdienste testen können. Tatsächlich können Sie jede Programmiersprache verwenden, die in der Lage ist, die XML-Anforderung über http an die Webdienstanbieteranwendung zu senden und das Antwort-XML anhand des erwarteten Ergebnisses zu analysieren und zu validieren. In diesem Tutorial zum Testen von Webdiensten testen wir den WebService
- Verwenden von Java
- SoapUI verwenden
TEIL 1) WebService-Tests mit der Apache Axis2-API (Java).
Im Allgemeinen nimmt der Webdienst die Anforderung entgegen und sendet die Antwort im XML-Format.
Das Apache Axis2-API-Projekt ist eine Java-Implementierungs-API, mit der die Webdienste sowohl für die Serverseite (Dienstanbieter) als auch für die Clientseite (Dienstkonsumenten) erstellt werden.
Axis2 kann SOAP-Nachrichten senden und die SOAP-Nachrichten empfangen und verarbeiten. Wir können ein kleines Java-Programm schreiben, indem wir die API verwenden, um den Webdienst zu erstellen. Axis2 generiert die WSDL aus einem Java-Programm, mit dem die vom Webdienst angebotenen Dienste kommuniziert werden. Wir können dieselbe Achse2 verwenden, um die Java-Klasse (Stub) aus der WSDL-Datei zu generieren, die wir als Client-Programm verwenden können, um die Webdienstanforderung zu generieren, die Anforderung an den Dienstendpunkt zu senden und die Antwort zu verarbeiten.
- Grundsätzlich werden wir ein einfaches Java-Programm erstellen, in dem wir die Stub-Klasse instanziieren.
- Mit dem Stub rufen wir die Anforderungsmethode auf, indem wir alle erforderlichen Informationen übergeben.
- Das Stub-Programm konvertiert diese Anforderung in das XML-Anforderungsformat und sendet sie an den Dienstendpunkt, der die Anforderung liest, die Anforderung verarbeitet und die Antwort im XML-Format sendet.
- 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 unter https://axis.apache.org/axis2/Java/core/download.cgi herunter und legen Sie die Umgebungsvariable 'AXIS2_HOME' fest.
Schritt b) Erstellen Sie einen Ordner, in dem alle generierten Artefakte gespeichert werden
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
Schritt d) Sobald der Befehl erfolgreich ausgeführt wurde, wird der Ordner mit den erforderlichen Dateien angezeigt.
Schritt e) Im nächsten Schritt dieses Lernprogramms zum Testen von Webdiensten müssen wir das Client-Programm erstellen, über das wir die eigentliche Anforderung mithilfe der generierten Stubs senden. Öffnen Sie die Eclipse, erstellen Sie das neue Java-Projekt und wählen Sie den oben erstellten Ordner aus.
Schritt f) Fügen Sie alle Achsen2-bezogenen Jars zum Projekterstellungspfad hinzu, der sich im lib-Ordner des Achse2-Softwareordners befindet
(zum Beispiel: C: \ Axis \ axis2-1.6.2 \ lib)
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.
Client.Java-ProgrammPaket 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 []) {Versuchen {// Erstellen Sie das Stub-Objekt, indem Sie die URL des Service-Endpunkts übergebenCurrencyConvertorStub stub = neuer CurrencyConvertorStub ("http://www.webservicex.net/CurrencyConvertor.asmx");// ConversionRate ist die Klasse, die wir verwenden müssen, um die von und zur Währung zu erwähnen// Das ConversionRate-Objekt ist der Parameter für die ConversionRate-OperationConversionRate convertRate = new ConversionRate ();convertRate.setFromCurrency (Currency.USD);convertRate.setToCurrency (Currency.INR);// Erstellen Sie das ConversionRateResponse-Objekt, mit dem die Antwort abgefangen wird// Rufe den ConversionRate-Dienst mit dem Stub-Objekt aufConversionRateResponse convertRateResponse = stub.conversionRate (convertRate);// Wir können das ConversionRateResponse-Objekt verwenden, um die Antwort des ConversionRate-Dienstes abzurufenSystem.out.println ("Umrechnungskurs von INR zu USD: + convertRateResponse.getConversionRateResult ());} catch (Ausnahme e) {e.printStackTrace ();}}}}}}
TEIL 2) Testen mit SoapUI Web Service
In SoapUI
- Gehen Sie zu Datei> Neues Seifenprojekt
- Geben Sie den Projektnamen und den WSDL-URI-Speicherort ein
- OK klicken
- Erweitern Sie die erste Anfrage und doppelklicken Sie auf 'Request1'. Die SOAP-Anforderung wird im XML-Format angezeigt.
- Geben Sie die Von-Währung und In-Währung ein
- Klicken Sie auf die Schaltfläche Senden
- Antwort-XML wird im rechten Bereich angezeigt.
Wie Sie vielleicht schließen, beschleunigt die Verwendung von WebService-Testtools wie SoapUI Ihren Testaufwand für die Automatisierung von Webdiensten. Daher wird SoapUi in den folgenden Tutorials im Mittelpunkt unseres Lernens stehen.
Zusammenfassung
- Softwareanwendungen kommunizieren und tauschen Daten über einen WebService miteinander 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, mit der die von einem Webdienst angebotenen Dienste beschrieben werden. SOAP wird mit WSDL definiert.
- Um WebService zu testen, können Sie
- Erstellen Sie Ihren eigenen Code. Verwenden Sie beispielsweise die Axis2-API für Java
- Verwenden Sie WebService Test Automation-Tools wie SoapUI
- Automatisierungstools wie SoapUI beschleunigen Ihre Web Services-Automatisierungstests und erfordern weniger Codierungsaufwand als das Erstellen Ihres eigenen Codes mit der Axis2-API
FAQ
Was ist der Unterschied zwischen WebService und WebAPI?
Internetservice |
Web-API |
|
|
|
|
|
|
|
|
Weitere Informationen zum Testen von Web-APIs
Dieses Tutorial zum Testen von Webdiensten wird mit Beiträgen von Herrn Narender Reddy Nukala ermöglicht