Handledning för testning av webbtjänster: Hur man testar? Lär dig med exempel

Vad är WebService?

Webbtjänster är den mekanism eller kommunikationsmedium genom vilket två applikationer / maskiner kommer att utbyta data oavsett deras understrukna arkitektur och teknik.

Vad är testning av webbtjänster?

Web Services Testing är en typ av programvarutestning som validerar webbtjänster. Syftet med testning av webbtjänster är att kontrollera funktionalitet, tillförlitlighet, prestanda och säkerhet för ett API (Application Program Interface). Webbtjänsttestning liknar enhetstestning i vissa fall. Du kan testa en webbtjänst manuellt eller skapa din egen automatiseringskod eller använda ett automatiseringsverktyg som Postman.

Varför behövs WebService?

I allmänhet utvecklas mjukvaruapplikationer för att konsumeras av människorna, där en person skickar en begäran till en mjukvarutjänst som i sin tur returnerar ett svar i läsbart format.

I den moderna tekniska eran om du vill bygga en programvara behöver du inte bygga allt från grunden. Det finns många färdiga tjänster tillgängliga som du kan ansluta till din applikation och du kan börja tillhandahålla dessa tjänster i din applikation.

Till exempel vill du visa information om väderprognoser som du inte behöver samla in, bearbeta och återge data i din applikation. Du kan köpa tjänsterna från personer som redan är väletablerade i att bearbeta och publicera sådan typ av data.

Webbtjänster tillåter oss att göra den här typen av implementeringar.

Tänk på följande WebService som ett exempel

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

Det ger aktievärde för ett företag.

Låt oss hitta aktiekurs för Google (Symbol: GOOG)

Svaret XML ger aktiekursen.

Denna webbtjänst kan anropas av en programapplikation med SOAP- eller HTTP-protokoll.

Webbtjänstprotokoll

Webbtjänster kan implementeras på olika sätt, men följande två är de populära implementeringsmetoderna.

  1. SOAP (Simple Object Access Protocol)
  2. REST (representativ statlig överföringsarkitektur)

TVÅL

SOAP är ett standardprotokoll som definieras av W3C-standarden för att skicka och ta emot webbtjänstförfrågningar och svar.

SOAP använder XML-format för att skicka och ta emot begäran och därmed är data plattformsoberoende data. SOAP-meddelanden utbyts mellan leverantörsapplikationer och mottagande applikationer inom SOAP-kuverten.

Eftersom SOAP använder det enkla http-transportprotokollet blockeras dess meddelanden inte av brandväggarna.

RESTEN

REST betyder REPresentational State Transfer; det är en arkitektur som vanligtvis körs över HTTP. REST-stilen betonar interaktionen mellan kunder och tjänster, som förbättras genom att ha ett begränsat antal operationer. REST är ett alternativ till SOAP (Simple Object Access Protocol) och istället för att använda XML för begäran använder REST i vissa fall enkel URL. Till skillnad från SOAP använder RESTFUL-applikationer HTTP-inbyggda rubriker för att överföra metainformation.

Det finns olika koder som REST använder för att avgöra om användaren har tillgång till API eller inte som kod 200 eller 201 indikerar framgångsrik interaktion med svarstyp medan 400 indikerar en dålig begäran eller URI för förfrågan inte matchar API: erna i systemet. Alla API-förfrågningsparametrar och metodparametrar kan skickas via antingen POST- eller GET- variabler.

Rest API stöder både XML- och JSON-format för WebServices API-testning. Det föredras vanligtvis för mobil- och webbappar eftersom det gör att appen fungerar snabbare och smidigare

WSDL

WSDL (Web Services Description Language) är ett XML-baserat språk som kommer att användas för att beskriva de tjänster som erbjuds av en webbtjänst.

WSDL beskriver alla funktioner som erbjuds av den specifika webbtjänsten i XML-format. Den definierar också hur tjänsterna kan anropas, dvs vilket ingångsvärde vi måste tillhandahålla och vad blir formatet på svaret det ska generera för varje typ av tjänst.

Hur testar jag en webbtjänst?

För att testa webbtjänsten kan du

  1. Testa manuellt
  2. Skapa din egen automatiseringskod
  3. Använd ett hylsautomatiseringsverktyg som SoapUI.

Web Services Automation Testing innebär följande steg -

  1. Förstå WSDL-filen
  2. Bestäm vilka operationer som tillhandahålls av en viss webbtjänst
  3. Bestäm XML-förfrågningsformatet som vi behöver skicka
  4. Bestäm svarets XML-format
  5. Använda ett verktyg eller skriva kod för att skicka begäran och validera svaret

Antag att vi vill testa webbtjänster som tillhandahåller valutaomvandlingsfacilitet. Det kommer att gälla de nuvarande omräkningskurserna mellan de olika ländernas valuta. Denna tjänst kan vi använda i våra applikationer för att konvertera värdena från en valuta till en annan valuta.

Låt oss nu titta på ovanstående steg

Steg 1 till 4: Förstå WSDL och bestämma funktioner och XML-format

Valutakonverterare WSDL-fil kan ses @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) som ger information om valutakonverterarens webbtjänstmetoder som den stöder, parametern som vi behöver skicka och typ av parametrar

… etc

Steg 5: Använd ett verktyg eller skriv kod för att skicka begäran och validera svaret

Det finns många WebService-testverktyg tillgängliga för att testa SOAP-webbtjänsten. SoapUI är ett av de populära API-verktygen som hjälper oss att testa SOAP-webbtjänster. I själva verket kan du använda vilket programmeringsspråk som helst som kan skicka XML-begäran till webbtjänstleverantörsapplikationen via http och kunna analysera och validera svaret XML mot det förväntade resultatet. I den här testtjänsten för webbtjänster testar vi WebService

  1. Använda Java
  2. Använda SoapUI

DEL 1) WebService-testning med Apache Axis2 API (Java).

I allmänhet tar webbtjänsten begäran och skickar svaret i XML-format.

Apache Axis2 API-projekt är ett Java-implementerings-API, som kommer att användas för att skapa webbtjänster för både serversidan (tjänsteleverantör) och klientsidan (servicekonsument).

Axis2 kan skicka SOAP-meddelanden och tar emot och bearbetar SOAP-meddelanden. Vi kan skriva ett litet Java-program med API för att skapa webbtjänsten. Axis2 kommer att generera WSDL från Java-programmet som kommer att användas för att kommunicera de tjänster som erbjuds av webbtjänsten. Vi kan använda samma Axis2 för att generera Java-klassen (stub) från WSDL-filen som vi kan använda som ett klientprogram för att generera webbtjänstförfrågan, för att skicka begäran till tjänstens slutpunkt och för att behandla svaret.

  1. I grund och botten kommer vi att skapa ett enkelt Java-program där vi startar stubklassen.
  2. Med hjälp av stubben anropar vi förfrågningsmetoden genom att skicka all nödvändig information.
  3. Stub-programmet konverterar den begäran till XML-förfrågningsformat och skickar den tjänstens slutpunkt som läser begäran och behandlar begäran och skickar svaret i XML-format.
  4. XML-svaret kommer att konverteras till Java-klass med stub och returneras till det faktiska programmet.

Låt oss titta på ovanstående steg i detalj

Steg a) Ladda ner Axe2 API @ https://axis.apache.org/axis2/Java/core/download.cgi & Ställ in miljövariabeln 'AXIS2_HOME'

Steg b) Skapa en mapp för att behålla alla genererade artefakter

Ex: C: \ Axis \ Projects \ CurrencyConverter

Steg c) Öppna kommandotolken och navigera till mappstrukturen där du vill generera artefakterna och kör följande kommando som genererar stubbarna

% AXIS2_HOME% \ bin \ WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb -s

Steg d) När kommandot väl har körts ser du mappen med nödvändiga filer.

Steg e) I nästa steg i denna webbtjänsttesthandledning måste vi skapa klientprogrammet, genom vilket vi skickar den faktiska begäran med de genererade stubbarna. Öppna förmörkelsen och skapa det nya Java-projektet och välj den mapp som vi har skapat ovan.

Steg f) Lägg till alla axel2-relaterade burkar till projektbyggnadssökvägen, som kommer att finnas där i lib-mappen i Ax2-programvarumappen

(till exempel: C: \ Axis \ axis2-1.6.2 \ lib)

Steg g) Skapa en ny Java-klass (ex: Client.Java) och instantiera stub-objekt. Med hjälp av stub-objektet kan vi anropa alla stödda metoder för den specifika WebService.

Client.Java-programmetpaket org.apache.axis2.currencyconvertor;importera org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate;importera org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse;importera org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency;public class Client {public static void main (Java.lang.String args []) {Prova {// Skapa stub-objektet genom att skicka url för tjänstens slutpunktCurrencyConvertorStub stub = ny CurrencyConvertorStub ("http://www.webservicex.net/CurrencyConvertor.asmx");// ConversionRate är den klass som vi måste använda nämner från och till valuta// ConversionRate-objektet kommer att vara parametern för operationen conversionRateConversionRate conversionRate = ny ConversionRate ();conversionRate.setFromCurrency (Currency.USD);conversionRate.setToCurrency (Currency.INR);// Skapa ConversionRateResponse-objektet, som ska användas för att fånga svaret// ring tjänsten conversionRate med hjälp av stub-objektetConversionRateResponse conversionRateResponse = stub.conversionRate (conversionRate);// Vi kan använda conversionRateResponse-objektet för att hämta svaret från ConversionRate-tjänstenSystem.out.println ("Omvandlingsfrekvens från INR till USD: + conversionRateResponse.getConversionRateResult ());} fånga (Undantag e) {e.printStackTrace ();}}}

DEL 2) Hur man testar med SoapUI Web Service

I SoapUI

  1. Gå till Arkiv> Nytt tvålprojekt
  2. Ange projektets namn och WSDL URI-plats
  3. Klicka på OK
  1. Expandera den första förfrågan och dubbelklicka på "Request1". Den visar SOAP-begäran i XML-format.
  2. Ange Från-valuta och Till valuta
  3. Klicka på knappen Skicka
  4. Svar XML visas till höger.

Som du kan avsluta påskyndar användningen av WebService-testverktyg som SoapUI din testtjänst för automatisering av webbtjänster. Därför kommer SoapUi att vara fokus för vårt lärande i de efterföljande handledningarna.

Sammanfattning

  • Programvara kommunicerar och utbyter data med varandra med hjälp av en WebService
  • SOAP och REST är två populära protokoll för att skapa en WebService
  • SOAP stöder XML-baserat datautbyte
  • REST stöder XML, Json eller utbyte av data i enkel URL för WebServices API-testning.
  • WSDL är XML-baserat språk som kommer att användas för att beskriva de tjänster som erbjuds av en webbtjänst. SOAP definieras med WSDL.
  • För att testa WebService kan du
    • Skapa din egen kod. Använd till exempel Axis2 API för Java
    • Använd WebService Test Automation-verktyg som SoapUI
  • Automationsverktyg som SoapUI kommer att starta dina Automations Testing-insatser för webbtjänster, kräver mindre kodningsansträngning jämfört med att skapa din egen kod med Axis2 API

FAQ

Vad är skillnaden mellan WebService och WebAPI?

Webb-service

Webb-API

  • Definierad av W3C, all kommunikation och datautbyte baseras på XML
  • Web-API-kommunikation och datautbyte kan vara XML, JSON eller vanlig data
  • Den har definierade standarder - WSDL
  • Ingen definierad standard
  • Du kan inte komprimera data men du kan komprimera HTML-begäran
  • Du kan komprimera data
  • Exempel: SOAP
  • Exempel: REST

Läs mer om webb-API-testning

Denna webbtjänst-testhandledning är möjlig med bidrag från Mr. Narender Reddy Nukala

Intressanta artiklar...