Web Services Test Tutorial: Hvordan tester man? Lær med eksempel
Hvad er WebService?
Webtjenester er mekanismen eller kommunikationsmediet, hvorigennem to applikationer/maskiner vil udveksle data uanset deres understregningsarkitektur og teknologien.
Hvad er webservicetest?
Test af webtjenester er en type softwaretest, der validerer webtjenester. Formålet med Web Services Testing er at kontrollere funktionaliteten, pålideligheden, ydeevnen og sikkerheden af en API (Application Program Interface). Webservicetest ligner i nogle tilfælde enhedstest. Du kan teste en webservice manuelt eller oprette din egen automatiseringskode eller bruge et hyldeautomatiseringsværktøj som f.eks Postman.
Hvorfor er webservice nødvendig?
Generelt er softwareapplikationer udviklet til at blive forbrugt af mennesker, hvor en person sender en anmodning til en softwaretjeneste, som igen returnerer et svar i et menneskeligt læsbart format.
I den moderne teknologiske æra, hvis du vil bygge en softwareapplikation, behøver du ikke bygge alt fra bunden. Der er masser af færdiglavede tjenester tilgængelige, som du kan tilslutte til din applikation, og du kan begynde at levere disse tjenester i din applikation.
For eksempel vil du vise vejrudsigtsoplysninger, som du ikke behøver for at indsamle, behandle og gengive dataene i din applikation. Du kan købe tjenesterne fra de mennesker, der allerede er veletablerede i behandling og publicering af sådanne data.
Webtjenester giver os mulighed for at udføre denne form for implementeringer.
Som et eksempel kan du overveje følgende WebService
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Det giver aktieværdi for en virksomhed.
Lad os finde aktiekursen for Google (Symbol: GOOG)
Svaret XML giver aktiekursen.
Denne webservice kan kaldes af en softwareapplikation ved hjælp af SOAP- eller HTTP-protokol.
Webserviceprotokoller
Webtjenester kan implementeres på forskellige måder, men de følgende to er de populære implementeringsmetoder.
- SOAP (Simple Object Access Protocol)
- REST (Representational State Transfer-arkitektur)
SOAP
SOAP er en standardprotokol defineret af W3C-standarden til afsendelse og modtagelse af webserviceanmodninger og -svar.
SOAP bruger XML-format til at sende og modtage anmodningen og derfor er dataene platformsuafhængige data. SOAP-meddelelser udveksles mellem udbyderens applikationer og den modtagende applikation inden for SOAP-konvolutterne.
Da SOAP bruger den simple http-transportprotokol, bliver dens beskeder ikke blokeret af firewalls.
REST
REST betyder repræsentativ statsoverførsel; det er en arkitektur, der generelt kører over HTTP. REST-stilen understreger interaktionen mellem klienter og tjenester, som forbedres ved at have et begrænset antal operationer. REST er et alternativ til SOAP (Simple Object Access Protocol) og i stedet for at bruge XML til anmodning bruger REST i nogle tilfælde simpel URL. I modsætning til SOAP bruger RESTFUL-applikationer HTTP build-in-headere til at bære metainformation.
Der er forskellige koder, som REST bruger til at bestemme, om brugeren har adgang til API eller ej, ligesom kode 200 eller 201 indikerer vellykket interaktion med svarlegemet, mens 400 indikerer en dårlig anmodning, eller anmodnings-URI'en matcher ikke API'erne i systemet. Alle API-anmodningsparametre og metodeparametre kan sendes via enten POST or GET variabler.
Rest API understøtter både XML- og JSON-format til WebServices API-testning. Det foretrækkes normalt til Mobil og webapps, da det får app til at arbejde hurtigere og mere smidigt
wsdl
WSDL (Web Services Description Language) er et XML-baseret sprog, som vil blive brugt til at beskrive de tjenester, der tilbydes af en webtjeneste.
WSDL beskriver alle de operationer, der tilbydes af den pågældende webtjeneste i XML-formatet. Det definerer også, hvordan tjenesterne kan kaldes, dvs. hvilken inputværdi vi skal levere, og hvad vil være formatet på den respons, den vil generere for hver type tjeneste.
Hvordan tester man en webservice?
For at teste webservice kan du
- Test manuelt
- Opret din egen automatiseringskode
- Brug et hyldeautomatiseringsværktøj som SoapUI.
Web Services Automation Testing involverer følgende trin –
- Forstå WSDL-filen
- Bestem de operationer, som den bestemte webtjeneste leverer
- Bestem XML-anmodningsformatet, som vi skal sende
- Bestem responsets XML-format
- Brug af et værktøj eller skrivning af kode til at sende anmodning og validere svaret
Antag, at vi ønsker at teste webservice, som giver valutaomregningsfacilitet. Det vil de aktuelle omregningskurser mellem de forskellige landes valuta. Denne service kan vi bruge i vores applikationer til at konvertere værdierne fra den ene valuta til den anden valuta.
Lad os nu se på ovenstående trin
Trin 1 til 4: Forståelse af WSDL og bestemmelse af operationer og XML-formater
Valuta Convertor WSDL fil kan ses @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl
), som vil give oplysninger om valutaen Convertor webservicemetoder, som den vil understøtte, den parameter, som vi skal bestå, og typen af parametre... osv.
Trin 5: Brug af et værktøj eller skrivning af kode til at sende anmodning og validere svaret
Der er masser af WebService Test-værktøjer tilgængelige til at teste SOAP-webservice. SoapUI er en af de populære API værktøj som vil hjælpe os med at teste SOAP webtjenester. Faktisk kan du bruge et hvilket som helst programmeringssprog, som er i stand til at sende XML-anmodningen til webtjenesteudbyderens applikation over http og i stand til at parse og validere svar-XML'en mod det forventede resultat. I denne test af webtjenester vil vi teste webtjenesten
- Ved brug af Java
- Bruger SoapUI
DEL 1) WebService-test ved hjælp af Apache Axis2 API (Java).
Generelt tager webservice anmodningen og sender svaret i XML-format.
Apache Axis2 API-projekt er et Java implementerings-API, som vil blive brugt til at skabe webtjenesterne for både serversiden (tjenesteudbyder) og klientsiden (serviceforbruger).
Axis2 er i stand til at sende SOAP-meddelelser og modtager og behandler SOAP-meddelelserne. Vi kan skrive en lille Java program ved hjælp af API'et til at oprette webtjenesten. Axis2 vil generere WSDL fra Java program, som vil blive brugt til at kommunikere de tjenester, der tilbydes af webtjenesten. Vi kan bruge den samme Axis2 til at generere Java klasse (stub) fra WSDL-fil, som vi kan bruge som et klientprogram til at generere webserviceanmodningen, sende anmodningen til serviceslutpunktet og behandle svaret.
- Grundlæggende vil vi skabe en enkel Java program, hvor vi vil instansiere stub-klassen.
- Ved at bruge stubben vil vi påberåbe os anmodningsmetoden ved at videregive alle de nødvendige oplysninger.
- Stub-programmet vil konvertere denne anmodning til XML-anmodningsformat og sender den serviceslutpunktet, som læser anmodningen og behandler anmodningen og sender svaret i XML-format.
- XML-svaret vil blive konverteret til Java klasse for stub og vendt tilbage til det egentlige program.
Lad os se på ovenstående trin i detaljer
Trin a) Download axis2 API @ https://axis.apache.org/axis2/Java/core/download.cgi & Indstil miljøvariablen 'AXIS2_HOME'
Trin b) Opret en mappe for at beholde alle de genererede artefakter
Eks: C:\Axis\Projects\CurrencyConverter
Trin c) Åbn kommandoprompten og naviger til mappestrukturen, hvor du vil generere artefakterne, og kør følgende kommando, som vil generere stubbene
%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb –s
Trin d) Når kommandoen er kørt, vil du se mappen med de nødvendige filer.
Trin e) I det næste trin i denne webservicetest-vejledning skal vi oprette klientprogrammet, hvorigennem vi sender den faktiske anmodning ved hjælp af de genererede stubs. Åbn formørkelsen og opret den nye Java projekt og vælg mappen, som vi har oprettet ovenfor.
Trin f) Tilføj alle de akse2-relaterede krukker til projektets byggesti, som vil være der i lib-mappen i axis2-softwaremappen
(f.eks.: C:\Axis\axis2-1.6.2\lib)
Trin g) Opret en ny Java klasse (eks.: klient.Java) og instantiér stubobjekt. Ved at bruge stub-objektet kan vi kalde alle de understøttede metoder for den bestemte WebService.
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(); } } }
DEL 2) Sådan testes ved hjælp af SoapUI Web Service
I SoapUI
- Gå til Filer > Nyt sæbeprojekt
- Indtast projektets navn og WSDL URI-placeringen
- klik på OK
- Udvid den første anmodning og dobbeltklik på 'Request1'. Det vil vise SOAP-anmodningen i XML-format.
- Indtast Fra Valuta og Til Valuta
- Klik på knappen Send
- Svar XML vil blive vist i højre side rude.
Som du måske kan konkludere, fremskynder brugen af WebService Test-værktøjer som SoapUI din Web Services Automation Testing-indsats. Derfor vil SoapUi være fokus for vores læring i de efterfølgende tutorials.
Resumé
- Softwareapplikationer kommunikerer og udveksler data med hinanden ved hjælp af en webservice
- SOAP og REST er 2 populære protokoller til at skabe en webservice
- SOAP understøtter XML-baseret dataudveksling
- REST understøtter XML, Json eller udveksling af data i simpel URL til WebServices API-testning.
- WSDL er XML-baseret sprog, som vil blive brugt til at beskrive de tjenester, der tilbydes af en webtjeneste. SOAP defineres ved hjælp af WSDL.
-
For at teste WebService kan du
- Opret din egen kode. Brug for eksempel Axis2 API til Java
- Brug WebService Test Automation-værktøjer som SoapUI
- Automatiseringsværktøjer som SoapUI vil sætte gang i din Web Services Automation Testing indsats, vil kræve mindre kodningsindsats sammenlignet med at oprette din egen kode ved hjælp af Axis2 API
FAQ
Lær mere om Web API-testning
Denne Web Services Test tutorial er gjort mulig med bidrag fra Mr. Narender Reddy Nukala