Vejledning i test af webtjenester: Hvordan testes? Lær med eksempel

Indholdsfortegnelse:

Anonim

Hvad er WebService?

Webtjenester er den mekanisme eller kommunikationsmedie, hvorigennem to applikationer / maskiner udveksler data uanset deres understregede arkitektur og teknologien.

Hvad er Web Service Testing?

Web Services Testing er en type softwaretest, der validerer webservices. Formålet med Web Services Testing er at kontrollere funktionalitet, pålidelighed, ydeevne og sikkerhed i en API (Application Program Interface). Webtesttestning ligner enhedstestning i nogle tilfælde. Du kan teste en webservice manuelt eller oprette din egen automatiseringskode eller bruge et automatisk automatiseringsværktøj som Postman.

Hvorfor er WebService påkrævet?

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 menneskeligt læsbart format.

I den moderne tidsalder, hvis du vil opbygge en softwareapplikation, behøver du ikke at bygge alt fra bunden. Der er masser af færdige 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, du ikke behøver at indsamle, behandle og gengive dataene i din applikation. Du kan købe tjenesterne fra de mennesker, der allerede er veletablerede i behandlingen og udgivelsen af ​​en sådan type data.

Webtjenester giver os mulighed for at udføre denne form for implementeringer.

Overvej som et eksempel følgende WebService

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

Det giver aktieværdi for et selskab.

Lad os finde aktiekurs for Google (Symbol: GOOG)

Svaret XML giver aktiekursen.

Denne WebService kan kaldes op af en softwareapplikation ved hjælp af SOAP- eller HTTP-protokol.

Webtjenesteprotokoller

Webtjenester kan implementeres på forskellige måder, men de følgende to er de populære implementeringsmetoder.

  1. SOAP (Simple Object Access Protocol)
  2. REST (repræsentativ statsoverførselsarkitektur)

SÆBE

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 dataene er derfor platformuafhængige data. SOAP-meddelelser udveksles mellem udbyderapplikationerne og modtagelsesapplikationen i SOAP-konvolutterne.

Da SOAP bruger den enkle http transportprotokol, bliver dens meddelelser ikke blokeret af firewalls.

HVILE

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-indbyggede headere til at føre metainformation.

Der er forskellige koder, som REST bruger til at bestemme, om brugeren har adgang til API eller ikke som kode 200 eller 201, der indikerer vellykket interaktion med responsorganet, mens 400 angiver en dårlig anmodning, eller anmodnings-URI ikke stemmer overens med API'erne i systemet. Alle API-anmodningsparametre og metodeparametre kan sendes via enten POST- eller GET- variabler.

Rest API understøtter både XML- og JSON-format til WebServices API-test. Det foretrækkes normalt til mobil- og webapps, da det får appen til at fungere hurtigere og glattere

WSDL

WSDL (Web Services Description Language) er et XML-baseret sprog, der vil blive brugt til at beskrive de tjenester, der tilbydes af en webservice.

WSDL beskriver alle de operationer, der tilbydes af den bestemte webservice i XML-format. Den definerer også, hvordan tjenesterne kan kaldes, dvs. hvilken inputværdi vi skal levere, og hvad vil formatet på det svar, den skal generere for hver type tjeneste.

Hvordan tester jeg en webservice?

For at teste webservice kan du

  1. Test manuelt
  2. Opret din egen automatiseringskode
  3. Brug et automatisk automatiseringsværktøj som SoapUI.

Web Services Automation Test involverer følgende trin -

  1. Forstå WSDL-filen
  2. Bestem de operationer, som en bestemt webservice leverer
  3. Bestem det XML-anmodningsformat, som vi skal sende
  4. Bestem svaret XML-format
  5. Brug et værktøj eller skriv kode til at sende anmodning og validere svaret

Antag, at vi vil teste webservice, der leverer 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 & XML-formater

Valutaomformer WSDL-fil kan ses @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl), som giver information om Currency Converter webservicemetoder, som den understøtter, den parameter, som vi har brug for, og den type parametre

… etc

Trin 5: Brug et værktøj eller skriv kode til at sende anmodning og validere svaret

Der er masser af WebService-testværktøjer til rådighed til test af SOAP-webservice. SoapUI er et af det populære API-værktøj, som hjælper os med at teste SOAP-webtjenester. Faktisk kan du bruge ethvert programmeringssprog, der er i stand til at sende XML-anmodningen til webtjenesteudbyderprogrammet via http og i stand til at analysere og validere svar-XML mod det forventede resultat. I denne test af Web Services-test vil vi teste WebService

  1. Brug af Java
  2. Brug af 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, der vil blive brugt til at oprette webservices til 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 et lille Java-program ved hjælp af API'en til at oprette webservicen. Axis2 genererer WSDL fra Java-programmet, som vil blive brugt til at kommunikere de tjenester, der tilbydes af webservicen. Vi kan bruge den samme Axis2 til at generere Java-klassen (stub) fra WSDL-filen, som vi kan bruge som et klientprogram til at generere webserviceanmodningen, sende anmodningen til servicens slutpunkt og til at behandle svaret.

  1. Grundlæggende opretter vi et simpelt Java-program, hvor vi instantierer stubklassen.
  2. Ved hjælp af stubben påkalder vi anmodningsmetoden ved at videregive alle de krævede oplysninger.
  3. Stub-programmet konverterer denne anmodning til XML-anmodningsformat og sender det servicens slutpunkt, som læser anmodningen og behandler anmodningen og sender svaret i XML-format.
  4. XML-svaret konverteres til Java-klasse med stub og returneres til det aktuelle program.

Lad os se på ovenstående trin i detaljer

Trin a) Download akse2 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 genererer stubberne

% 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 med succes, vil du se mappen med de nødvendige filer.

Trin e) I det næste trin i denne test af Web Services-test er vi nødt til at oprette klientprogrammet, hvorigennem vi sender den faktiske anmodning ved hjælp af de genererede stubs. Åbn formørkelsen, og opret det nye Java-projekt, og vælg den mappe, som vi har oprettet ovenfor.

Trin f) Tilføj alle akse2-relaterede krukker til projektbygningsstien, som vil være der i lib-mappen i Ax2-softwaremappen

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

Trin g) Opret en ny Java-klasse (f.eks. Client.Java) og instantier stubobjekt. Ved hjælp af stub-objektet kan vi kalde alle de understøttede metoder for den bestemte WebService.

Client.Java-programpakke 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 []) {prøve {// Opret stub-objektet ved at videregive url til servicens slutpunktCurrencyConvertorStub stub = ny CurrencyConvertorStub ("http://www.webservicex.net/CurrencyConvertor.asmx");// ConversionRate er den klasse, som vi skal bruge, nævner fra og til valuta// ConversionRate-objektet er parameteren for conversionRate-operationenConversionRate conversionRate = ny ConversionRate ();conversionRate.setFromCurrency (Currency.USD);conversionRate.setToCurrency (Currency.INR);// Opret ConversionRateResponse-objektet, som skal bruges til at fange svaret// kalde tjenesten conversionRate ved hjælp af stub-objektetConversionRateResponse conversionRateResponse = stub.conversionRate (conversionRate);// Vi kan bruge conversionRateResponse-objektet til at hente svaret fra ConversionRate-tjenestenSystem.out.println ("Konverteringsfrekvens fra INR til USD: + conversionRateResponse.getConversionRateResult ());} fangst (undtagelse e) {e.printStackTrace ();}}}

DEL 2) Sådan testes ved hjælp af SoapUI Web Service

I SoapUI

  1. Gå til File> New Soap Project
  2. Indtast projektnavnet og WSDL URI-placeringen
  3. Klik på OK
  1. Udvid den første anmodning, og dobbeltklik på 'Request1'. Det viser SOAP-anmodningen i XML-format.
  2. Indtast Fra valuta og Til valuta
  3. Klik på knappen Send
  4. Svar XML vises i højre rude.

Som du måske konkluderer, 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 oprettelse af en WebService
  • SOAP understøtter XML-baseret dataudveksling
  • REST understøtter XML, Json eller udveksling af data i simpel URL til WebServices API-test.
  • WSDL er et XML-baseret sprog, som vil blive brugt til at beskrive de tjenester, der tilbydes af en webservice. 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
  • Automationsværktøjer som SoapUI vil starte din Web Services Automation Test-indsats, vil kræve mindre kodningsindsats sammenlignet med at oprette din egen kode ved hjælp af Axis2 API

FAQ

Hvad er forskellen mellem WebService og WebAPI?

Webtjeneste

Web-API

  • Defineret af W3C er al kommunikation og dataudveksling baseret på XML
  • Web API-kommunikation og dataudveksling kan være XML, JSON eller almindelige data
  • Det har definerede standarder - WSDL
  • Ingen defineret standard
  • Du kan ikke komprimere dataene, men du kan komprimere HTML-anmodningen
  • Du kan komprimere dataene
  • Eksempel: SÆBE
  • Eksempel: REST

Lær mere om Web API-test

Denne vejledning til test af webservices er muliggjort med bidrag fra Mr. Narender Reddy Nukala