Handleiding voor het testen van webservices met een voorbeeld

⚡ Slimme samenvatting

Webservicetesten valideren de functionaliteit, betrouwbaarheid, prestaties en beveiliging van een API waarmee applicaties gegevens kunnen uitwisselen met behulp van SOAP- of REST-protocollen, een WSDL-beschrijving en tools zoals SoapUI of op maat Java code.

  • 🌐 Webservice: Een webservice stelt twee applicaties in staat om gegevens via een netwerk uit te wisselen.
  • 🧪 Wat het controleert: Door middel van testen worden de functionaliteit, betrouwbaarheid, prestaties en beveiliging geverifieerd.
  • 📨 ZEEP en RUST: SOAP gebruikt XML-enveloppen; REST gebruikt eenvoudige HTTP en URLs.
  • 📄 WSDL: Een WSDL is een XML-bestand dat de bewerkingen beschrijft die een SOAP-service aanbiedt.
  • Tools en Code: Tests maken gebruik van tools zoals SoapUI of op maat Java met Apache Axis2.
  • 🤖 AI-assistentie: AI genereert automatisch API-testcases en valideert de reacties.

Handleiding voor het testen van webservices

Wat is WebService?

Webservices zijn het mechanisme of het communicatiemedium waarmee twee applicaties/machines gegevens uitwisselen, ongeacht hun onderliggende architectuur en 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 gebruiken, zoals Postman.

Waarom is WebService nodig?

Over het algemeen worden softwaretoepassingen ontwikkeld voor menselijke consumptie. Een persoon stuurt een verzoek naar een softwaredienst, die vervolgens een antwoord terugstuurt 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 de volgende WebService

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

Het geeft aandelenwaarde voor een bedrijf.

Laten we de aandelenkoers opzoeken voor Google (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

Webservices kunnen op verschillende manieren worden geïmplementeerd, maar de volgende twee zijn de populairste 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 staat voor Representational State Transfer; het is een architectuur die over het algemeen via HTTP werkt. De REST-stijl legt de nadruk op de interactie tussen clients en services, die wordt versterkt door een beperkt aantal bewerkingen. REST is een alternatief voor SOAP (Simple Object Access Protocol) en gebruikt in plaats van XML voor verzoeken eenvoudige gegevenstypen. URL In sommige gevallen wel. In tegenstelling tot SOAP gebruiken RESTful-applicaties ingebouwde HTTP-headers om meta-informatie over te brengen.

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 Begin 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 (webservices 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 specifieke webservice worden aangeboden in het XML-formaat. Het definieert ook hoe de services kunnen worden aangeroepen, d.w.z. welke invoerwaarde we moeten leveren en wat het formaat zal zijn van de respons die het voor elk type service gaat genereren.

Hoe een webservice testen?

Om de webservice te testen, kunt u dat doen

  1. Handmatig testen
  2. Creëer je eigen automatisering Code
  3. Gebruik een standaard automatiseringstool zoals SoapUI.

Web Services Automation Testing omvat de volgende stappen:

  1. Begrijp het WSDL-bestand
  2. Bepaal welke bewerkingen 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-indelingen 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 het bepalen van bewerkingen en XML-formaten

WSDL en het bepalen van bewerkingen en XML-formaten

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

Er zijn tal van tools beschikbaar om SOAP-webservices 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. gebruik Java
  2. gebruik SoapUI

DEEL 1) Testen van webservices met 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 schrijven Java programma met behulp van de API om de webservice te maken. Axis2 zal de WSDL genereren Java programma dat zal worden gebruikt om de diensten te communiceren die door de webservice worden aangeboden. We kunnen dezelfde Axis2 gebruiken om de Java class (stub) uit een WSDL-bestand dat 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 maken Java programma 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 omgezet in Java klasse per stomp en keerde terug naar het eigenlijke 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 waar u de artefacten wilt genereren en voer de volgende opdracht uit die de stubs zal genereren

%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb –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 Web Services Testing tutorial moeten we het clientprogramma maken, waarmee we de daadwerkelijke aanvraag zullen versturen met behulp van de gegenereerde stubs. Open de eclipse en maak de 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: klant.Java) en een stub-object instantiëren. 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) Hoe te testen met SoapUI Webservice

In SoapUI

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

Testen met SoapUI Webservice

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

Testen met SoapUI Webservice

Zoals u wellicht al concludeert, is het gebruik van WebService Test-tools zoals SoapUI Het versnelt uw inspanningen op het gebied van geautomatiseerd testen van webservices. Daarom zal SoapUI centraal staan ​​in de volgende tutorials.

Veelgestelde vragen

Een webservice is gedefinieerd door het W3C en wisselt gegevens uit met behulp van XML volgens een WSDL-standaard, bijvoorbeeld SOAP. Een web-API is breder: deze kan XML, JSON of platte tekst uitwisselen zonder vaste standaard, bijvoorbeeld REST, en kan gegevens comprimeren.

Veelgebruikte tools voor het testen van webservices en API's zijn onder andere: SoapUI en ReadyAPI voor SOAP en REST, Postman voor REST, Apache JMeter voor belastingstests en REST Assured voor codegebaseerde tests. Java testen. SoapUI wordt veel gebruikt voor SOAP-services.

Unit testen controleren een enkele functie geïsoleerd, meestal door de ontwikkelaar. API-testen controleren het gedrag van een service via de interface, inclusief verzoek, antwoord, statuscodes en data, over verschillende componenten heen en vaak zonder broncode.

AI leest een WSDL- of OpenAPI-specificatie om verzoeken en beweringen te genereren, creëert realistische testgegevens en signaleert afwijkende reacties. Dankzij zelfherstellende machine learning blijven tests slagen, zelfs wanneer de payloads veranderen, waardoor handmatig onderhoud van webservicetests wordt verminderd.

Ja. AI kan een servicedefinitie analyseren, geldige en ongeldige aanvraagpayloads genereren, randvoorwaarden voorspellen en beweringen formuleren. Deze geautomatiseerde generatie verbetert de testdekking en vermindert de handmatige inspanning die nodig is voor het schrijven van SOAP- of REST-testcases.

Vat dit bericht samen met: