Testveiledning for nettjenester: Hvordan teste? Lær med eksempel
Hva er WebService?
Webtjenester er mekanismen eller mediet for kommunikasjon der to applikasjoner/maskiner vil utveksle data uavhengig av deres understrekingsarkitektur og teknologi.
Hva er webtjenestetesting?
Testing av nettjenester er en type programvaretesting som validerer webtjenester. Formålet med testing av webtjenester er å sjekke funksjonaliteten, påliteligheten, ytelsen og sikkerheten til et API (Application Program Interface). Netttjenestetesting ligner i noen tilfeller på enhetstesting. Du kan teste en webtjeneste manuelt eller lage din egen automatiseringskode eller bruke et hyllevareautomatiseringsverktøy som Postman.
Hvorfor er webservice nødvendig?
Generelt er programvareapplikasjoner utviklet for å bli konsumert av mennesker, der en person sender en forespørsel til en programvaretjeneste som i sin tur returnerer et svar i lesbart format.
I den moderne teknologiske æraen, hvis du vil bygge en programvareapplikasjon, trenger du ikke bygge alt fra bunnen av. Det er mange ferdige tjenester tilgjengelig som du kan koble til applikasjonen din, og du kan begynne å tilby disse tjenestene i applikasjonen din.
For eksempel vil du vise værmeldingsinformasjon du ikke trenger å samle inn, behandle og gjengi dataene i applikasjonen din. Du kan kjøpe tjenestene fra folk som allerede er godt etablert i å behandle og publisere slike data.
Webtjenester lar oss gjøre denne typen implementeringer.
Tenk på følgende webtjeneste som et eksempel
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Det gir andelsverdi for et selskap.
La oss finne aksjekursen for Google (Symbol: GOOG )
Svaret XML gir aksjekursen.
Denne webtjenesten kan kalles opp av en programvareapplikasjon som bruker SOAP eller HTTP-protokoll.
Web Service Protocols
Webtjenester kan implementeres på forskjellige måter, men de følgende to er de populære implementeringsmetodene.
- SOAP (Simple Object Access Protocol)
- REST (Representational State Transfer-arkitektur)
SOAP
SOAP er en standardprotokoll definert av W3C-standarden for sending og mottak av nettjenesteforespørsler og svar.
SOAP bruker XML-format for å sende og motta forespørselen og derfor er dataene plattformuavhengige data. SOAP-meldinger utveksles mellom leverandørapplikasjonene og mottakerapplikasjonene innenfor SOAP-konvoluttene.
Siden SOAP bruker den enkle http-transportprotokollen, blir ikke meldingene blokkert av brannmurene.
REST
REST betyr representativ statsoverføring; det er en arkitektur som vanligvis kjører over HTTP. REST-stilen legger vekt på samspillet mellom klienter og tjenester, som forbedres ved å ha et begrenset antall operasjoner. REST er et alternativ til SOAP (Simple Object Access Protocol) og i stedet for å bruke XML for forespørsel bruker REST enkel URL i noen tilfeller. I motsetning til SOAP, bruker RESTFUL-applikasjoner HTTP-innbyggingshoder for å bære metainformasjon.
Det er forskjellige koder som REST bruker for å avgjøre om brukeren har tilgang til API eller ikke, som kode 200 eller 201 indikerer vellykket interaksjon med svarlegemet mens 400 indikerer en dårlig forespørsel eller forespørsels-URI samsvarer ikke med APIene i systemet. Alle API-forespørselsparametere og metodeparametere kan sendes via enten POST or GET variabler.
Rest API støtter både XML- og JSON-format for WebServices API-testing. Det er vanligvis foretrukket for Mobil og nettapper ettersom det får apper til å fungere raskere og jevnere
wsdl
WSDL (webtjenester Description Language) er et XML-basert språk som vil bli brukt til å beskrive tjenestene som tilbys av en nettjeneste.
WSDL beskriver alle operasjonene som tilbys av den aktuelle webtjenesten i XML-format. Den definerer også hvordan tjenestene kan kalles, dvs. hvilken inngangsverdi vi må gi og hva som vil være formatet på responsen den skal generere for hver type tjeneste.
Hvordan teste en webtjeneste?
For å teste webtjenesten kan du
- Test manuelt
- Lag din egen automatiseringskode
- Bruk et hylleautomatiseringsverktøy som SoapUI.
Automatiseringstesting av webtjenester innebærer følgende trinn –
- Forstå WSDL-filen
- Bestem operasjonene den bestemte nettjenesten tilbyr
- Bestem XML-forespørselsformatet som vi må sende
- Bestem XML-formatet for responsen
- Bruke et verktøy eller skrive kode for å sende forespørsel og validere svaret
Anta at vi ønsker å teste en webtjeneste som gir valutakonvertering. Det vil gjelde omregningskursene mellom de forskjellige lands valuta. Denne tjenesten kan vi bruke i våre applikasjoner for å konvertere verdiene fra en valuta til den andre valutaen.
La oss nå se på trinnene ovenfor
Trinn 1 til 4: Forstå WSDL og bestemme operasjoner og XML-formater
valuta Convertor WSDL-fil kan sees @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl
) som vil gi informasjon om valutaen Convertor webtjenestemetoder som den vil støtte, parameteren som vi trenger passere og typen parametere ... etc.
Trinn 5: Bruke et verktøy eller skrive kode for å sende forespørsel og validere svaret
Det er mange WebService-testverktøy tilgjengelig for å teste SOAP-webtjenesten. SoapUI er en av de populære API-verktøy som vil hjelpe oss å teste SOAP webtjenester. Faktisk kan du bruke et hvilket som helst programmeringsspråk som er i stand til å sende XML-forespørselen til webtjenesteleverandørens applikasjon over http og i stand til å analysere og validere respons-XML mot det forventede resultatet. I denne testveiledningen for nettjenester vil vi teste webtjenesten
- Ved hjelp av Java
- Bruker SoapUI
DEL 1) WebService-testing med Apache Axis2 API (Java).
Vanligvis tar webtjenesten forespørselen og sender svaret i XML-format.
Apache Axis2 API-prosjektet er et Java implementerings-API, som skal brukes til å lage webtjenestene for både serversiden (tjenesteleverandør) og klientsiden (tjenesteforbruker).
Axis2 er i stand til å sende SOAP-meldinger og mottar og behandler SOAP-meldinger. Vi kan skrive en liten Java program som bruker API for å lage webtjenesten. Axis2 vil generere WSDL fra Java program som vil bli brukt til å kommunisere tjenestene som tilbys av nettjenesten. Vi kan bruke den samme Axis2 for å generere Java klasse (stub) fra WSDL-filen som vi kan bruke som et klientprogram for å generere webtjenesteforespørselen, sende forespørselen til tjenestesluttpunktet og behandle svaret.
- I utgangspunktet vil vi lage en enkel Java program der vi vil instansiere stubbklassen.
- Ved å bruke stubben vil vi påkalle forespørselsmetoden ved å sende all nødvendig informasjon.
- Stub-programmet vil konvertere den forespørselen til XML-forespørselsformat og sender den tjenestesluttpunktet som leser forespørselen og behandler forespørselen og sender svaret i XML-format.
- XML-svaret vil bli konvertert til Java klasse for stubb og returnert til selve programmet.
La oss se på trinnene ovenfor i detalj
Trinn a) Last ned axis2 API @ https://axis.apache.org/axis2/Java/core/download.cgi & Angi miljøvariabelen 'AXIS2_HOME'
Trinn b) Opprett en mappe for å beholde alle de genererte artefaktene
Eks: C:\Axis\Projects\CurrencyConverter
Trinn c) Åpne ledeteksten og naviger til mappestrukturen der du vil generere artefaktene og kjø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
Trinn d) Når kommandoen er kjørt, vil du se mappen med nødvendige filer.
Trinn e) I det neste trinnet i denne veiledningen for testing av nettjenester, må vi lage klientprogrammet, som vi sender den faktiske forespørselen via de genererte stubbene. Åpne formørkelsen og lag den nye Java prosjekt og velg mappen som vi har opprettet ovenfor.
Trinn f) Legg til alle akse2-relaterte krukker til prosjektbyggebanen, som vil være der i lib-mappen i akse2-programvaremappen
(for eksempel: C:\Axis\axis2-1.6.2\lib)
Trinn g) Opprett en ny Java klasse (eks.: klient.Java) og instansier stubobjekt. Ved å bruke stub-objektet kan vi kalle alle de støttede metodene til 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) Hvordan teste med SoapUI Web Service
I SoapUI
- Gå til Fil > Nytt såpeprosjekt
- Skriv inn prosjektnavnet og WSDL URI-plasseringen
- klikk OK
- Utvid den første forespørselen og dobbeltklikk på 'Request1'. Den vil vise SOAP-forespørselen i XML-format.
- Skriv inn fra valuta og til valuta
- Klikk på send-knappen
- Respons-XML vises på høyre side.
Som du kanskje kan konkludere med, fremskynder bruken av WebService Test-verktøy som SoapUI din Web Services Automation Testing innsats. Derfor vil SoapUi være fokus for vår læring i de påfølgende opplæringene.
Sammendrag
- Programvareapplikasjoner kommuniserer og utveksler data med hverandre ved hjelp av en webtjeneste
- SOAP og REST er 2 populære protokoller for å lage en webtjeneste
- SOAP støtter XML-basert datautveksling
- REST-støtte XML, Json eller utveksling av data i enkel URL for WebServices API-testing.
- WSDL er XML-basert språk som vil bli brukt til å beskrive tjenestene som tilbys av en webtjeneste. SOAP er definert ved hjelp av WSDL.
-
For å teste WebService kan du
- Lag din egen kode. Bruk for eksempel Axis2 API for Java
- Bruk WebService Test Automation-verktøy som SoapUI
- Automatiseringsverktøy som SoapUI vil kickstarte innsatsen din for webtjenester automatiseringstesting, vil kreve mindre kodeinnsats sammenlignet med å lage din egen kode ved å bruke Axis2 API
Vanlige spørsmål
Lær mer om Web API-testing
Denne testveiledningen for nettjenester er gjort mulig med bidrag fra Mr. Narender Reddy Nukala