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.

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)
De antwoord-XML geeft de aandelenkoers weer.
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.
- SOAP (Simple Object Access Protocol)
- 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
- Handmatig testen
- Creëer je eigen automatisering Code
- Gebruik een standaard automatiseringstool zoals SoapUI.
Web Services Automation Testing omvat de volgende stappen:
- Begrijp het WSDL-bestand
- Bepaal welke bewerkingen een bepaalde webservice biedt
- Bepaal het XML-verzoekformaat dat we moeten verzenden
- Bepaal het XML-antwoordformaat
- 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.
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
- gebruik Java
- 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.
- In principe zullen we een eenvoudig maken Java programma waarin we de stub-klasse zullen instantiëren.
- Met behulp van de stub zullen we de verzoekmethode aanroepen door alle vereiste informatie door te geven.
- 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.
- 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
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
Stap d) Zodra de opdracht succesvol is uitgevoerd, ziet u de map met de vereiste bestanden.
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.
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)
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.
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
- Ga naar Bestand > Nieuw zeepproject
- Voer de projectnaam en de WSDL-URI-locatie in
- klik op OK
- Vouw het eerste verzoek uit en dubbelklik op 'Request1'. Het zal het SOAP-verzoek in XML-formaat weergeven.
- Voer de Van-valuta en Naar-valuta in
- Klik op de verzendknop
- Het XML-antwoord wordt in het rechterdeelvenster weergegeven.
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.












