Wat is webservice?
Webservices is het mechanisme of het communicatiemiddel waarmee twee applicaties / machines de gegevens zullen uitwisselen, ongeacht hun onderstreepte architectuur en de technologie.
Wat is het testen van webservices?
Webservices testen is een soort softwaretest waarmee webservices worden gevalideerd. Het doel van Web Services Testing is om de functionaliteit, betrouwbaarheid, prestaties en beveiliging van een API (Application Program Interface) te controleren. Webservicetesten is in sommige gevallen vergelijkbaar met het testen van eenheden. U kunt een webservice handmatig testen of uw eigen automatiseringscode maken of een standaard automatiseringstool zoals Postman gebruiken.
Waarom is webservice nodig?
In het algemeen worden softwaretoepassingen ontwikkeld om door de mens te worden gebruikt, waarbij een persoon een verzoek stuurt naar een softwaredienst die op zijn beurt een antwoord retourneert in een door mensen leesbaar formaat.
Als u in het moderne tijdperk van technologie een softwareapplicatie wilt bouwen, hoeft u niet alles vanaf nul te bouwen. Er zijn veel kant-en-klare services beschikbaar die u op uw applicatie kunt aansluiten en u kunt deze services in uw applicatie gaan aanbieden.
U wilt bijvoorbeeld weersvoorspellingsinformatie weergeven die u niet hoeft te verzamelen, verwerken en weergeven in uw applicatie. U kunt de diensten kopen van de mensen die al goed ingeburgerd zijn in het verwerken en publiceren van dergelijke gegevens.
Webservices stellen ons in staat om 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 voor Google zoeken (symbool: GOOG)
De antwoord-XML geeft de aandelenkoers weer.
Deze webservice kan worden aangeroepen door een softwaretoepassing met behulp van het SOAP- of HTTP-protocol.
Webserviceprotocollen
Webservices kunnen op verschillende manieren worden geïmplementeerd, maar de volgende twee zijn de populaire implementatiemethoden.
- SOAP (Simple Object Access Protocol)
- REST (architectuur voor representatieve staatsoverdracht)
ZEEP
SOAP is een standaardprotocol dat is gedefinieerd door de W3C-standaard voor het verzenden en ontvangen van webserviceverzoeken en -antwoorden.
SOAP gebruikt het XML-formaat om het verzoek te verzenden en te ontvangen en daarom zijn de gegevens platformonafhankelijke gegevens. SOAP-berichten worden uitgewisseld tussen de providertoepassingen en de ontvangende toepassing binnen de SOAP-enveloppen.
Omdat SOAP het eenvoudige http-transportprotocol gebruikt, worden de berichten ervan niet geblokkeerd door de firewalls.
RUST UIT
REST betekent representatieve staatsoverdracht; het is een architectuur die over het algemeen over HTTP draait. De REST-stijl benadrukt de interacties tussen klanten en services, 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 HTTP ingebouwde headers om meta-informatie over te dragen.
Er zijn verschillende codes die REST gebruikt om te bepalen of de gebruiker al dan niet toegang heeft tot de API, zoals code 200 of 201 geeft een succesvolle interactie met de responsbody aan, 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 worden verzonden via POST- of GET- variabelen.
Rest API ondersteunt zowel XML- als JSON-indeling voor WebServices API-tests. Het heeft meestal de voorkeur voor mobiele en web-apps, omdat de app hierdoor sneller en soepeler werkt
WSDL
WSDL (Web Services Description Language) is een op XML gebaseerde taal die zal worden gebruikt om de services te beschrijven die worden aangeboden door een webservice.
WSDL beschrijft alle bewerkingen die door de betreffende webservice worden aangeboden in de XML-indeling. Het definieert ook hoe de services kunnen worden aangeroepen, dwz welke invoerwaarde we moeten leveren en wat het formaat zal zijn van het antwoord dat het voor elke soort service gaat genereren.
Hoe een webservice testen?
Om de webservice te testen, kunt u
- Test handmatig
- Maak uw eigen automatiseringscode
- Gebruik een standaard automatiseringstool zoals SoapUI.
Webservices-automatiseringstests omvatten de volgende stappen:
- Begrijp het WSDL-bestand
- Bepaal de bewerkingen die een bepaalde webservice biedt
- Bepaal het XML-verzoekformaat dat we moeten verzenden
- Bepaal het XML-formaat van het antwoord
- Gebruik een tool of schrijf code om een verzoek te verzenden en het antwoord te valideren
Stel dat we een webservice willen testen die 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 eens kijken naar bovenstaande stappen
Stap 1 t / m 4: WSDL begrijpen en bewerkingen en XML-indelingen bepalen
Valutaconvertor WSDL-bestand is te zien op @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) dat de informatie geeft over de valuta-omzetter webservicemethoden die het zal ondersteunen, de parameter die we moeten doorgeven en de type parameters
… enzStap 5: Gebruik een tool of schrijf code om een verzoek te verzenden en het antwoord te valideren
Er zijn veel WebService Test-tools beschikbaar om SOAP-webservices te testen. SoapUI is een van de populaire API-tools waarmee we SOAP-webservices kunnen testen. In feite kunt u elke programmeertaal gebruiken die in staat is om het XML-verzoek naar de webserviceprovider-applicatie te verzenden via de http en in staat is om de antwoord-XML te parseren en te valideren tegen het verwachte resultaat. In deze zelfstudie over het testen van webservices zullen we de webservice testen
- Java gebruiken
- SoapUI gebruiken
DEEL 1) Webservicetests met Apache Axis2 API (Java).
Over het algemeen neemt de webservice het verzoek over en verzendt het antwoord in de XML-indeling.
Apache Axis2 API-project is een Java-implementatie-API, die zal worden gebruikt om de webservices te creëren voor zowel serverzijde (serviceprovider) als clientzijde (serviceconsument).
Axis2 kan SOAP-berichten verzenden en ontvangt en verwerkt de SOAP-berichten. We kunnen een klein Java-programma schrijven met behulp van de API om de webservice te maken. Axis2 genereert het WSDL-programma vanuit het Java-programma dat zal worden gebruikt om de services die door de webservice worden aangeboden, te communiceren. We kunnen dezelfde Axis2 gebruiken om de Java-klasse (stub) te genereren uit het WSDL-bestand dat we kunnen gebruiken als een clientprogramma om het webserviceverzoek te genereren, het verzoek naar het service-eindpunt te sturen en het antwoord te verwerken.
- In principe zullen we een eenvoudig Java-programma maken waarin we de stub-klasse 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 XML-verzoekformaat en stuurt het naar het service-eindpunt dat het verzoek leest en het verzoek verwerkt en het antwoord in XML-formaat verzendt.
- Het XML-antwoord wordt per stub geconverteerd naar Java-klasse en teruggestuurd naar het daadwerkelijke programma.
Laten we 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
Bijv: 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 om de stubs te 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 met succes is uitgevoerd, ziet u de map met de vereiste bestanden.
Stap e) In de volgende stap van deze zelfstudie over 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.
Stap f) Voeg alle axis2-gerelateerde potten toe aan het project build-pad, dat daar in de lib-map van de axis2-softwaremap staat
(bijvoorbeeld: C: \ Axis \ axis2-1.6.2 \ lib)
Stap g) Maak een nieuwe Java-klasse (bijvoorbeeld: Client.Java) en instantieer het stub-object. Met behulp van het stub-object kunnen we alle ondersteunde methoden van de specifieke webservice aanroepen.
Client.Java-programmapakket org.apache.axis2.currencyconvertor;importeer org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate;importeer org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse;importeer org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency;openbare klasse Client {public static void main (Java.lang.String args []) {proberen {// Maak het stub-object door de URL van het service-eindpunt door te gevenCurrencyConvertorStub stub = nieuwe CurrencyConvertorStub ("http://www.webservicex.net/CurrencyConvertor.asmx");// ConversionRate is de klasse die we moeten gebruiken om de van en naar valuta te vermelden// ConversionRate-object zal de parameter zijn voor de conversieRate-bewerkingConversionRate conversionRate = nieuwe ConversionRate ();conversionRate.setFromCurrency (Currency.USD);conversionRate.setToCurrency (Currency.INR);// Maak het ConversionRateResponse-object, dat zal worden gebruikt om het antwoord op te vangen// roep de conversionRate-service aan met behulp van het stub-objectConversionRateResponse conversionRateResponse = stub.conversionRate (conversionRate);// We kunnen het conversionRateResponse-object gebruiken om de respons van de ConversionRate-service op te halenSystem.out.println ("Conversiepercentage van INR naar USD: + conversionRateResponse.getConversionRateResult ());} catch (uitzondering e) {e.printStackTrace ();
DEEL 2) Hoe te testen met behulp van SoapUI Web Service
In SoapUI
- Ga naar Bestand> Nieuw zeepproject
- Voer de projectnaam en de WSDL URI-locatie in
- Klik OK
- Vouw het eerste verzoek uit en dubbelklik op 'Request1'. Het zal het SOAP-verzoek weergeven in de XML-indeling.
- Voer de Van valuta en Naar valuta in
- Klik op de verzendknop
- De antwoord-XML wordt aan de rechterkant weergegeven.
Zoals u wellicht kunt concluderen, versnelt het gebruik van WebService Test-tools zoals SoapUI uw Web Services Automation Testing-inspanning. Daarom zal SoapUi de focus van ons leren zijn in de volgende tutorials.
Overzicht
- Softwaretoepassingen communiceren en wisselen gegevens met elkaar uit via een webservice
- SOAP en REST zijn 2 populaire protocollen om een webservice te maken
- SOAP ondersteunt op XML gebaseerde gegevensuitwisseling
- REST ondersteunt XML, Json of uitwisseling van gegevens in een eenvoudige URL voor WebServices API-tests.
- WSDL is een op XML gebaseerde taal die zal worden gebruikt om de services te beschrijven die worden aangeboden door een webservice. SOAP wordt gedefinieerd met WSDL.
- Om WebService te testen kan dat
- Maak je eigen code. Gebruik bijvoorbeeld Axis2 API voor Java
- Gebruik WebService Test Automation-tools zoals SoapUI
- Automatiseringstools zoals SoapUI zullen uw Web Services Automation Testing-inspanningen een vliegende start geven en zullen minder codeerinspanning vergen in vergelijking met het maken van uw eigen code met behulp van Axis2 API
FAQ
Wat is het verschil tussen WebService en WebAPI?
Webservice |
Web-API |
|
|
|
|
|
|
|
|
Meer informatie over Web API-tests
Deze tutorial over het testen van webservices is mogelijk gemaakt met bijdragen van de heer Narender Reddy Nukala