Tutorial voor het testen van webservices: hoe testen? Leer met voorbeeld

Wat is WebService?

Webservices is het mechanisme of het communicatiemedium waarmee twee applicaties / machines de gegevens zullen uitwisselen, ongeacht hun onderliggende architectuur en de technologie.

Wat is webservicetesten?

Webservices testen is een type softwaretest dat webservices valideert. Het doel van Web Services Testing is het controleren van de functionaliteit, betrouwbaarheid, prestaties en veiligheid van een API (Application Program Interface). Webservicetests lijken in sommige gevallen op unit-tests. U kunt een webservice handmatig testen of uw eigen automatiseringscode maken of een kant-en-klare automatiseringstool zoals Postman gebruiken.

Waarom is WebService nodig?

Over het algemeen worden softwareapplicaties ontwikkeld om door mensen te worden geconsumeerd, waarbij een persoon een verzoek naar een softwareservice stuurt, die op zijn beurt een antwoord retourneert in een voor mensen leesbaar formaat.

Als u in het moderne technologietijdperk een softwaretoepassing wilt bouwen, hoeft u niet alles helemaal opnieuw te bouwen. Er zijn veel kant-en-klare services beschikbaar die u in uw applicatie kunt aansluiten en u kunt deze services in uw applicatie gaan aanbieden.

U wilt bijvoorbeeld weersvoorspellingsinformatie weergeven die u niet nodig heeft om de gegevens in uw toepassing te verzamelen, verwerken en weer te geven. U kunt de diensten kopen van mensen die al een goede ervaring hebben met het verwerken en publiceren van dit soort gegevens.

Webservices stellen ons in staat dit soort implementaties uit te voeren.

Beschouw als voorbeeld het volgendewing Webservice

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

Het geeft aandelenwaarde voor een bedrijf.

Laten we de aandelenkoers voor Google vinden (Symbool: GOOG )

Testen van webservices

De antwoord-XML geeft de aandelenkoers weer.

Testen van webservices

Deze WebService kan worden aangeroepen door een softwareapplicatie die gebruik maakt van het SOAP- of HTTP-protocol.

Webserviceprotocollen

Web Services kunnen op verschillende manieren worden geïmplementeerd, maar het volgendewing twee zijn de populaire implementatiebenaderingen.

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

SOAP

SOAP is een standaardprotocol gedefinieerd door de W3C-standaard voor het verzenden en ontvangen van webserviceverzoeken en -antwoorden.

SOAP maakt gebruik van de XML-formaat om het verzoek te verzenden en te ontvangen en daarom zijn de gegevens platformonafhankelijke gegevens. SOAP-berichten worden uitgewisseld tussen de providerapplicaties en de ontvangende applicatie binnen de SOAP-enveloppen.

Omdat SOAP het eenvoudige http-transportprotocol gebruikt, worden de berichten niet geblokkeerd door de firewalls.

REST

REST betekent REpresentationele Staatsoverdracht; het is een architectuur die doorgaans via HTTP draait. De REST-stijl benadrukt de interacties tussen klanten en diensten, die worden versterkt door een beperkt aantal bewerkingen. REST is een alternatief voor SOAP (Simple Object Access Protocol) en in plaats van XML te gebruiken voor verzoeken, gebruikt REST in sommige gevallen een eenvoudige URL. In tegenstelling tot SOAP gebruiken RESTFUL-applicaties ingebouwde HTTP-headers om meta-informatie over te dragen.

Er zijn verschillende codes die REST gebruikt om te bepalen of de gebruiker toegang heeft tot de API of niet, zoals code 200 of 201 duidt op een succesvolle interactie met de antwoordtekst, terwijl 400 een ongeldig verzoek aangeeft of de verzoek-URI niet overeenkomt met de API's in het systeem. Alle API-verzoekparameters en methodeparameters kunnen via beide worden verzonden POST or GET variabelen.

Rest API ondersteunt zowel XML- als JSON-indeling voor WebServices API Testing. Het heeft meestal de voorkeur Mobile en web-apps omdat de app sneller en soepeler werkt

wsdl

WSDL (Web Services Description Language) is een op XML gebaseerde taal die zal worden gebruikt om de diensten te beschrijven die door een webservice worden aangeboden.

WSDL beschrijft alle bewerkingen die door de betreffende webservice worden aangeboden in het XML-formaat. Het definieert ook hoe de diensten kunnen worden genoemd, dat wil zeggen welke inputwaarde we moeten leveren en wat de vorm zal zijn van de respons die het voor elk soort dienst zal genereren.

Hoe een webservice testen?

Om de webservice te testen, kunt u dat doen

  1. Handmatig testen
  2. Creëer uw eigen Automatiseringscode
  3. Gebruik een standaard automatiseringstool zoals SoapUI.

Web Services Automation Testing omvat following stappen -

  1. Begrijp het WSDL-bestand
  2. Bepaal de bewerkingen die een bepaalde webservice biedt
  3. Bepaal het XML-verzoekformaat dat we moeten verzenden
  4. Bepaal het XML-antwoordformaat
  5. Een tool gebruiken of code schrijven om een ​​verzoek te verzenden en het antwoord te valideren

Stel dat we een webservice willen testen die een valutaconversiefaciliteit biedt. Het zijn de huidige wisselkoersen tussen de valuta van de verschillende landen. Deze service kunnen we in onze applicaties gebruiken om de waarden van de ene valuta naar de andere valuta om te rekenen.

Laten we nu naar de bovenstaande stappen kijken

Stap 1 tot en met 4: WSDL begrijpen en bewerkingen en XML-formaten bepalen

Valuta Convertor WSDL-bestand kan worden bekeken @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) die informatie over de valuta geeft Convertor webservicemethoden die het zal ondersteunen, de parameter die we moeten doorgeven en het type parameters... enz.

WSDL en bepalen van bewerkingen & XML-formaten

WSDL en bepalen van bewerkingen & XML-formaten

Stap 5: Een tool gebruiken of code schrijven om een ​​verzoek te verzenden en het antwoord te valideren

Er zijn veel WebService Test-tools beschikbaar om de SOAP-webservice te testen. SoapUI is een van de populaire API-tool waarmee we SOAP-webservices kunnen testen. In feite kunt u elke programmeertaal gebruiken die in staat is om het XML-verzoek via http naar de webserviceprovider-applicatie te sturen en in staat is om de antwoord-XML te parseren en te valideren tegen het verwachte resultaat. In deze tutorial over het testen van webservices gaan we de webservice testen

  1. Java gebruiken
  2. Met behulp van SoapUI

DEEL 1) Testen van webservices met behulp van de Apache Axis2 API (Java).

Over het algemeen neemt de webservice het verzoek en verzendt het antwoord in XML-formaat.

Apache Axis2 API-project is een Java implementatie-API, die zal worden gebruikt om de webservices te creëren voor zowel de serverzijde (serviceprovider) als de clientzijde (serviceconsument).

Axis2 is in staat SOAP-berichten te verzenden en ontvangt en verwerkt de SOAP-berichten. We kunnen een klein Java-programma schrijven met behulp van de API om de webservice te creëren. Axis2 genereert het WSDL-programma uit Java dat zal worden gebruikt om de diensten te communiceren die door de webservice worden aangeboden. We kunnen dezelfde Axis2 gebruiken om de Java-klasse (stub) uit het WSDL-bestand te genereren, die we als clientprogramma kunnen gebruiken om het webserviceverzoek te genereren, het verzoek naar het service-eindpunt te sturen en het antwoord te verwerken.

  1. In principe zullen we een eenvoudig Java-programma maken waarin we de stub-klasse zullen instantiëren.
  2. Met behulp van de stub zullen we de verzoekmethode aanroepen door alle vereiste informatie door te geven.
  3. Het Stub-programma converteert dat verzoek naar het XML-verzoekformaat en stuurt het naar het service-eindpunt dat het verzoek leest, het verzoek verwerkt en het antwoord in XML-formaat verzendt.
  4. Het XML-antwoord wordt per stub omgezet in een Java-klasse en teruggestuurd naar het daadwerkelijke programma.

Laten we de bovenstaande stappen in detail bekijken

Stap a) Download de axis2 API @ https://axis.apache.org/axis2/Java/core/download.cgi & Stel de omgevingsvariabele 'AXIS2_HOME' in

Webservicetesten met Apache Axis2 API (Java)

Stap b) Maak een map om alle gegenereerde artefacten te bewaren

Bijvoorbeeld: C:\Axis\Projects\CurrencyConverter

Stap c) Open de opdrachtprompt en navigeer naar de mapstructuur waarin u de artefacten wilt genereren en voer het volgende uitwing commando dat de stubs genereert

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

Webservicetesten met Apache Axis2 API (Java)

Stap d) Zodra de opdracht succesvol is uitgevoerd, ziet u de map met de vereiste bestanden.

Webservicetesten met Apache Axis2 API (Java)

Stap e)In de volgende stap van deze handleiding voor het testen van webservices moeten we het clientprogramma maken, waarmee we het daadwerkelijke verzoek zullen verzenden met behulp van de gegenereerde stubs. Open de eclipse en maak het nieuwe Java-project en selecteer de map die we hierboven hebben gemaakt.

Webservicetesten met Apache Axis2 API (Java)

Stap f) Voeg alle axis2-gerelateerde potten toe aan het projectbuildpad, dat zich in de lib-map van de axis2-softwaremap bevindt

(bijvoorbeeld: C:\Axis\axis2-1.6.2\lib)

Webservicetesten met Apache Axis2 API (Java)

Stap g) Maak een nieuwe Java-klasse (bijvoorbeeld: Client.Java) en instantiëer het stub-object. Met behulp van het stub-object kunnen we alle ondersteunde methoden van de betreffende WebService aanroepen.

Webservicetesten met 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();
      }
    }
}

DEEL 2) Testen met de SoapUI-webservice

In SoapUI

  1. Ga naar Bestand > Nieuw zeepproject
  2. Voer de projectnaam en de WSDL-URI-locatie in
  3. klik op OK

Test met behulp van de SoapUI-webservice

  1. Vouw het eerste verzoek uit en dubbelklik op 'Verzoek1'. Het toont het SOAP-verzoek in XML-formaat.
  2. Voer de Van-valuta en Naar-valuta in
  3. Klik op de verzendknop
  4. Antwoord-XML wordt in het rechterdeelvenster weergegeven.

Test met behulp van de SoapUI-webservice

Zoals u wellicht kunt concluderen, versnelt het gebruik van WebService Testtools zoals SoapUI uw testinspanningen voor het automatiseren van webservices. Daarom zal SoapUi de focus zijn van ons leerproces in de volgende tutorials.

Samengevat

  • Softwareapplicaties communiceren en wisselen gegevens met elkaar uit via een WebService
  • SOAP en REST zijn 2 populaire protocollen om een ​​WebService te creëren
  • SOAP ondersteunt op XML gebaseerde gegevensuitwisseling
  • REST ondersteunt XML, Json of uitwisseling van gegevens in een eenvoudige URL voor WebServices API Testing.
  • WSDL is een op XML gebaseerde taal die zal worden gebruikt om de diensten te beschrijven die door een webservice worden aangeboden. SOAP wordt gedefinieerd met behulp van WSDL.
  • Om WebService te testen kunt u dat doen
    • Creëer uw eigen code. Gebruik bijvoorbeeld Axis2 API voor Java
    • Gebruik WebService Test Automation-tools zoals SoapUI
  • Automatiseringstools zoals SoapUI zullen uw inspanningen op het gebied van Web Services Automation Testing een vliegende start geven en vereisen minder codeerinspanningen vergeleken met het maken van uw eigen code met behulp van de Axis2 API

FAQ

Webservice Web-API
Gedefinieerd door W3C is alle communicatie en gegevensuitwisseling gebaseerd op XML Web-API-communicatie en gegevensuitwisseling kunnen XML, JSON of gewone gegevens zijn
Het heeft standaarden gedefinieerd: WSDL Geen gedefinieerde standaard
U kunt de gegevens niet comprimeren, maar u kunt het HTML-verzoek wel comprimeren U kunt de gegevens comprimeren
Voorbeeld: zeep Voorbeeld: RUST

Lees verder over Web-API-testen

Deze handleiding voor het testen van webservices wordt mogelijk gemaakt met bijdragen van de heer Narender Reddy Nukala