Veiledning for testing av webtjenester: Hvordan teste? Lær med eksempel

Innholdsfortegnelse:

Anonim

Hva er WebService?

Webtjenester er mekanismen eller kommunikasjonsmediet der to applikasjoner / maskiner vil utveksle data uavhengig av deres understrekede arkitektur og teknologi.

Hva er Web Service Testing?

Web Services Testing er en type programvaretesting som validerer webtjenester. Formålet med Web Services Testing er å kontrollere funksjonaliteten, påliteligheten, ytelsen og sikkerheten til et API (Application Program Interface). Web Service Testing ligner enhetstesting i noen tilfeller. Du kan teste en webservice manuelt eller opprette din egen automatiseringskode eller bruke et automatiseringsverktøy som Postman.

Hvorfor trengs WebService?

Generelt er programvareapplikasjoner utviklet for å bli konsumert av menneskene, der en person sender en forespørsel til en programvaretjeneste som igjen returnerer et svar i lesbart format.

I den moderne teknologitiden, hvis du vil bygge et program, 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 veletablerte i behandlingen og publisering av slike data.

Webtjenester tillater oss å gjøre denne typen implementeringer.

Tenk på følgende WebService som et eksempel

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

Det gir aksjeverdi for et selskap.

La oss finne aksjekursen for Google (symbol: GOOG)

Svaret XML gir aksjekursen.

Denne webservicen kan ringes opp av et programvareapplikasjon ved hjelp av SOAP- eller HTTP-protokoll.

Webtjenesteprotokoller

Webtjenester kan implementeres på forskjellige måter, men følgende to er de populære tilnærmingsmåtene.

  1. SOAP (Simple Object Access Protocol)
  2. REST (representativ statsoverføringsarkitektur)

SÅPE

SOAP er en standardprotokoll definert av W3C-standarden for sending og mottak av forespørsler og svar fra webtjenester.

SOAP bruker XML-format for å sende og motta forespørselen, og dataene er derfor plattformuavhengige data. SOAP-meldinger utveksles mellom leverandørapplikasjonene og mottaksprogrammet i SOAP-konvoluttene.

Siden SOAP bruker den enkle http-transportprotokollen, blir ikke meldingene blokkert av brannmurer.

HVILE

REST betyr representativ statsoverføring; det er en arkitektur som vanligvis kjører over HTTP. REST-stilen understreker 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 i noen tilfeller enkel URL. I motsetning til SOAP bruker RESTFUL applikasjoner HTTP-innebygde overskrifter for å fø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 respons kroppen mens 400 indikerer en dårlig forespørsel eller forespørsel URI samsvarer ikke med APIene i systemet. Alle API-forespørselsparametre og metodeparametere kan sendes via enten POST- eller GET- variabler.

Rest API støtter både XML- og JSON-format for WebServices API-testing. Det er vanligvis foretrukket for mobil- og nettapper da det får appen til å fungere raskere og jevnere

WSDL

WSDL (Web Services Description Language) er et XML-basert språk som skal brukes til å beskrive tjenestene som tilbys av en nettjeneste.

WSDL beskriver alle operasjonene som tilbys av den aktuelle nettjenesten i XML-format. Den definerer også hvordan tjenestene kan kalles, dvs. hvilken inngangsverdi vi har å gi og hva som vil være formatet på svaret det skal generere for hver type tjeneste.

Hvordan teste en nettjeneste?

For å teste nettjeneste, kan du

  1. Test manuelt
  2. Lag din egen automatiseringskode
  3. Bruk et hylle-automatiseringsverktøy som SoapUI.

Web Services Automation Test innebærer følgende trinn -

  1. Forstå WSDL-filen
  2. Bestem operasjonene som en bestemt nettjeneste gir
  3. Bestem formatet for XML-forespørsel som vi trenger å sende
  4. Bestem svaret på XML-format
  5. Ved å bruke et verktøy eller skrive kode for å sende forespørsel og validere svaret

Anta at vi vil teste nettjeneste som tilbyr valutaomregningsanlegg. Det vil gjeldende konverteringsfrekvenser mellom de forskjellige landens valuta. Denne tjenesten kan vi bruke i våre applikasjoner for å konvertere verdiene fra en valuta til en annen valuta.

La oss nå se på trinnene ovenfor

Trinn 1 til 4: Forstå WSDL og bestemme operasjoner og XML-formater

Valutakonverterer WSDL-fil kan sees @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) som vil gi informasjon om valutakonverteringstjenestemetodene som den vil støtte, parameteren som vi trenger passere og type parametere

… etc

Trinn 5: Bruk et verktøy eller skriv kode for å sende forespørsel og validere svaret

Det er mange WebService-testverktøy tilgjengelig for å teste SOAP-nettjeneste. SoapUI er et av det populære API-verktøyet som vil hjelpe oss å teste SOAP-nettjenester. Faktisk kan du bruke hvilket som helst programmeringsspråk som er i stand til å sende XML-forespørselen til webtjenesteleverandørprogrammet via http og i stand til å analysere og validere XML-svaret mot forventet resultat. I denne veiledningen for testing av webtjenester vil vi teste WebService

  1. Bruke Java
  2. Bruke SoapUI

DEL 1) Testing av WebService ved bruk av Apache Axis2 API (Java).

Vanligvis tar webtjenesten forespørselen og sender svaret i XML-format.

Apache Axis2 API-prosjekt er et Java-implementerings-API, som skal brukes til å lage webtjenester for både serversiden (tjenesteleverandør) og klientsiden (tjenesteforbruker).

Axis2 er i stand til å sende SOAP-meldinger og mottar og behandler SOAP-meldingene. Vi kan skrive et lite Java-program ved hjelp av API for å opprette webtjenesten. Axis2 vil generere WSDL fra Java-programmet som vil bli brukt til å kommunisere tjenestene som tilbys av nettjenesten. Vi kan bruke den samme Axis2 til å generere Java-klassen (stub) fra WSDL-filen som vi kan bruke som et klientprogram for å generere webserviceforespørselen, for å sende forespørselen til tjenestens sluttpunkt og for å behandle svaret.

  1. I utgangspunktet vil vi lage et enkelt Java-program der vi vil instantiere stubklassen.
  2. Ved å bruke stubben vil vi påkalle forespørselsmetoden ved å sende all nødvendig informasjon.
  3. Stub-programmet konverterer forespørselen til XML-forespørselsformat og sender tjenestens sluttpunkt som vil lese forespørselen og behandle forespørselen og sender svaret i XML-format.
  4. XML-svaret blir konvertert til Java-klasse med stub og returnert til selve programmet.

La oss se på trinnene ovenfor i detalj

Trinn a) Last ned akse2 API @ https://axis.apache.org/axis2/Java/core/download.cgi & Sett miljøvariabelen 'AXIS2_HOME'

Trinn b) Opprett en mappe for å beholde alle genererte gjenstander

Eks: C: \ Axis \ Projects \ CurrencyConverter

Trinn c) Åpne ledeteksten og naviger til mappestrukturen der du vil generere gjenstandene, 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 webtjenester, må vi lage klientprogrammet, der vi vil sende den faktiske forespørselen gjennom de genererte stubber. Åpne formørkelsen, og opprett det nye Java-prosjektet, og velg mappen vi har opprettet ovenfor.

Trinn f) Legg til alle akse2-relaterte krukker til prosjektbyggingsbanen, som vil være der i lib-mappen til akse2-programvaremappen

(for eksempel: C: \ Axis \ axis2-1.6.2 \ lib)

Trinn g) Opprett en ny Java-klasse (f.eks. Client.Java) og instantier stub-objektet. Ved å bruke stubobjektet kan vi ringe alle støttede metoder for den spesielle WebService.

Client.Java-programpakke org.apache.axis2.currencyconvertor;importer org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate;importer org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse;importer org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency;offentlig klasse klient {public static void main (Java.lang.String args []) {prøv {// Opprett stubobjektet ved å sende URL-en til tjenestens sluttpunktCurrencyConvertorStub stub = new CurrencyConvertorStub ("http://www.webservicex.net/CurrencyConvertor.asmx");// ConversionRate er klassen som vi må bruke for å nevne fra og til valuta// ConversionRate-objektet vil være parameteren for conversionRate-operasjonenConversionRate conversionRate = ny ConversionRate ();conversionRate.setFromCurrency (Currency.USD);conversionRate.setToCurrency (Currency.INR);// Opprett ConversionRateResponse-objektet, som skal brukes til å fange svaret// ring tjenesten conversionRate ved hjelp av stub-objektetConversionRateResponse conversionRateResponse = stub.conversionRate (conversionRate);// Vi kan bruke conversionRateResponse-objektet for å hente svaret fra ConversionRate-tjenestenSystem.out.println ("Konverteringsfrekvens fra INR til USD: + conversionRateResponse.getConversionRateResult ());} fangst (unntak e) {e.printStackTrace ();}}}

DEL 2) Hvordan teste med SoapUI Web Service

I SoapUI

  1. Gå til Fil> Nytt såpeprosjekt
  2. Skriv inn prosjektnavnet og WSDL URI-plasseringen
  3. Klikk OK
  1. Utvid den første forespørselen og dobbeltklikk på 'Request1'. Den vil vise SOAP-forespørselen i XML-format.
  2. Angi Fra valuta og Til valuta
  3. Klikk på send-knappen
  4. Svar XML vises til høyre.

Som du kan konkludere, fremskynder bruken av WebService Test-verktøy som SoapUI Web Services Automation Testing Effort. Derfor vil SoapUi være fokus for læringen vår i de påfølgende opplæringene.

Sammendrag

  • Programvareprogrammer kommuniserer og utveksler data med hverandre ved hjelp av en WebService
  • SOAP og REST er to populære protokoller for å lage en WebService
  • SOAP støtter XML-basert datautveksling
  • REST støtter XML, Json eller utveksling av data i enkel URL for WebServices API Testing.
  • WSDL er et XML-basert språk som skal brukes til å beskrive tjenestene som tilbys av en nettjeneste. 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 starte din Web Services Automation Testing-innsats, vil kreve mindre kodeinnsats sammenlignet med å lage din egen kode ved hjelp av Axis2 API

FAQ

Hva er forskjellen mellom WebService og WebAPI?

Nettjeneste

Web-API

  • Definert av W3C, all kommunikasjon og datautveksling er basert på XML
  • Web API-kommunikasjon og datautveksling kan være XML, JSON eller vanlig data
  • Den har definerte standarder - WSDL
  • Ingen definert standard
  • Du kan ikke komprimere dataene, men du kan komprimere HTML-forespørselen
  • Du kan komprimere dataene
  • Eksempel: SÅPE
  • Eksempel: REST

Lær mer om Web API-testing

Denne opplæringen for testing av webtjenester er mulig med bidrag fra Mr. Narender Reddy Nukala