Tutorial de testare a serviciilor web: Cum se testează? Învață cu Exemplu
Ce este WebService?
Serviciile web sunt mecanismul sau mijlocul de comunicare prin care două aplicații/mașini vor face schimb de date, indiferent de arhitectura subliniată și de tehnologie.
Ce este testarea serviciului web?
Testarea serviciilor web este un tip de testare software care validează serviciile Web. Scopul Testării Serviciilor Web este de a verifica funcționalitatea, fiabilitatea, performanța și securitatea unui API (Interfața Programului de Aplicație). Testarea serviciului web este similară cu testarea unitară în unele cazuri. Puteți testa manual un serviciu web sau puteți crea propriul cod de automatizare sau puteți utiliza un instrument de automatizare disponibil, cum ar fi Postman.
De ce este nevoie de WebService?
În general, aplicațiile software sunt dezvoltate pentru a fi consumate de ființele umane, în cazul în care o persoană trimite o solicitare unui serviciu de software care, la rândul său, returnează un răspuns în format care poate fi citit de om.
În epoca modernă a tehnologiei, dacă doriți să construiți o aplicație software, nu trebuie să construiți totul de la zero. Există o mulțime de servicii gata făcute disponibile pe care le puteți conecta la aplicația dvs. și puteți începe să furnizați acele servicii în aplicația dvs.
De exemplu, doriți să afișați informații despre prognoza meteo de care nu aveți nevoie pentru a colecta, procesa și reda datele în aplicația dvs. Puteți cumpăra serviciile de la persoane care deja s-au consacrat în prelucrarea și publicarea unor astfel de date.
Serviciile web ne permit să facem acest tip de implementări.
Ca exemplu, luați în considerare următorul WebService
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Oferă valoare acțiunilor unei companii.
Să găsim prețul acțiunilor pentru Google (Simbol: GOOG)
Răspunsul XML oferă prețul acțiunilor.
Acest serviciu web poate fi apelat de o aplicație software folosind protocolul SOAP sau HTTP.
Protocoale de servicii web
Serviciile web pot fi implementate în moduri diferite, dar următoarele două sunt abordările populare de implementare.
- SOAP (Protocol simplu de acces la obiecte)
- REST (Arhitectura de transfer de stat reprezentativ)
SOAP
SOAP este un protocol standard definit de Standardul W3C pentru trimiterea și primirea cererilor și răspunsurilor de servicii web.
SOAP folosește Format XML pentru trimiterea și primirea cererii și, prin urmare, datele sunt date independente de platformă. Mesajele SOAP sunt schimbate între aplicațiile furnizorului și aplicația care primește în plicurile SOAP.
Deoarece SOAP folosește protocolul simplu de transport http, mesajele sale nu sunt blocate de firewall-uri.
REST
REST înseamnă transfer de stat reprezentativ; este o arhitectură care rulează în general prin HTTP. Stilul REST pune accent pe interacțiunile dintre clienți și servicii, care sunt îmbunătățite prin existența unui număr limitat de operațiuni. REST este o alternativă la SOAP (Simple Object Access Protocol) și în loc să folosească XML pentru solicitare, REST folosește o adresă URL simplă în unele cazuri. Spre deosebire de SOAP, aplicațiile RESTFUL utilizează anteturi HTTP integrate pentru a transporta metainformații.
Există diverse coduri pe care REST le folosește pentru a determina dacă utilizatorul are sau nu acces la API, precum codul 200 sau 201 indică o interacțiune reușită cu corpul răspunsului, în timp ce 400 indică o solicitare greșită sau URI-ul cererii nu se potrivește cu API-urile din sistem. Toți parametrii de solicitare API și parametrii metodei pot fi trimiși prin oricare POST or GET variabile.
Rest API acceptă atât formatul XML, cât și JSON pentru testarea WebServices API. Este de obicei preferat pentru Mobil și aplicații web, deoarece face ca aplicația să funcționeze mai rapid și mai ușor
wsdl
WSDL (Servicii web Description Language) este un limbaj bazat pe XML care va fi folosit pentru a descrie serviciile oferite de un serviciu web.
WSDL descrie toate operațiunile oferite de serviciul web particular în format XML. De asemenea, definește cum pot fi apelate serviciile, adică ce valoare de intrare trebuie să furnizăm și care va fi formatul răspunsului pe care îl va genera pentru fiecare tip de serviciu.
Cum se testează un serviciu web?
Pentru a testa serviciul web, puteți
- Testați manual
- Creați-vă propriul cod de automatizare
- Utilizați un instrument de automatizare disponibil, cum ar fi SoapUI.
Testarea automatizării serviciilor web implică următorii pași –
- Înțelegeți fișierul WSDL
- Determinați operațiunile pe care le oferă un anumit serviciu web
- Determinați formatul cererii XML pe care trebuie să-l trimitem
- Determinați formatul XML de răspuns
- Utilizarea unui instrument sau cod de scriere pentru a trimite cererea și a valida răspunsul
Să presupunem că vrem să testăm serviciul web care oferă Facilitatea de conversie a monedei. Va fi ratele de conversie curente între moneda diferitelor țări. Acest serviciu îl putem folosi în aplicațiile noastre pentru a converti valorile dintr-o monedă în cealaltă monedă.
Acum să ne uităm la pașii de mai sus
Pasul 1 până la 4: Înțelegerea WSDL și determinarea operațiunilor și formatelor XML
Monedă Convertor Fișierul WSDL poate fi văzut @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl
) care va oferi informațiile despre Moneda Convertor metodele de servicii web pe care le va suporta, parametrul pe care trebuie să-l transmitem și tipul de parametri... etc.
Pasul 5: Utilizarea unui instrument sau cod de scriere pentru a trimite cererea și a valida răspunsul
Există o mulțime de instrumente de testare WebService disponibile pentru a testa serviciul web SOAP. SoapUI este una dintre cele mai populare instrument API care ne va ajuta să testăm serviciile web SOAP. De fapt, puteți utiliza orice limbaj de programare care este capabil să trimită cererea XML către aplicația furnizorului de servicii web prin intermediul http și capabil să analizeze și să valideze răspunsul XML în raport cu rezultatul așteptat. În acest tutorial de testare a serviciilor web, vom testa serviciul web
- Utilizarea Java
- Folosind SoapUI
PARTEA 1) Testarea serviciului web folosind API-ul Apache Axis2 (Java).
În general, serviciul web preia cererea și trimite răspunsul în format XML.
Proiectul Apache Axis2 API este un Java implementare API, care va fi folosit pentru a crea serviciile Web atât pentru partea server (furnizor de servicii), cât și pentru partea client (consumator de servicii).
Axis2 este capabil să trimită mesaje SOAP și să primească și să proceseze mesajele SOAP. Putem scrie un mic Java program folosind API-ul pentru a crea serviciul web. Axis2 va genera WSDL din Java program care va fi folosit pentru a comunica serviciile oferite de serviciul web. Putem folosi aceeași Axă2 pentru a genera Java clasa (stub) din fișierul WSDL pe care îl putem folosi ca program client pentru a genera cererea de serviciu web, pentru a trimite cererea la punctul final al serviciului și pentru a procesa răspunsul.
- Practic vom crea un simplu Java program în care vom instanția clasa stub.
- Folosind stub-ul vom invoca metoda de solicitare prin transmiterea tuturor informațiilor necesare.
- Programul Stub va converti cererea în format de cerere XML și îi va trimite punctul final al serviciului care va citi cererea și va procesa cererea și trimite răspunsul în format XML.
- Răspunsul XML va fi convertit în Java clasă cu stub și a revenit la programul propriu-zis.
Să ne uităm la pașii de mai sus în detaliu
Pasul a) Descărcați API-ul axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi & Setați variabila de mediu „AXIS2_HOME”
Pasul b) Creați un folder pentru a păstra toate artefactele generate
Ex: C:\Axis\Projects\CurrencyConverter
Pasul c) Deschideți promptul de comandă și navigați la structura folderului în care doriți să generați artefactele și rulați următoarea comandă care va genera stub-urile
%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb –s
Pasul d) Odată ce comanda este executată cu succes, veți vedea folderul cu fișierele necesare.
Pasul e) În următorul pas al acestui tutorial de testare a serviciilor web, trebuie să creăm programul client, prin care vom trimite cererea reală folosind stub-urile generate. Deschide eclipsa și creează noua Java proiect și selectați folderul pe care l-am creat mai sus.
Pasul f) Adăugați toate borcanele legate de axa 2 la calea de construire a proiectului, care va fi acolo în folderul lib al folderului software axis2
(de exemplu: C:\Axis\axis2-1.6.2\lib)
Pasul g) Creați un nou Java clasa (ex: Client.Java) și instanțiați obiectul stub. Folosind obiectul stub putem apela toate metodele acceptate ale serviciului web particular.
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(); } } }
PARTEA 2) Cum să testați folosind serviciul web SoapUI
În SoapUI
- Accesați Fișier > Proiect nou Soap
- Introduceți numele proiectului și locația URI-ului WSDL
- Faceți clic pe OK
- Extindeți prima solicitare și faceți dublu clic pe „Solicitare1”. Acesta va afișa cererea SOAP în format XML.
- Introduceți De la Moneda și Către Moneda
- Faceți clic pe butonul de trimitere
- XML de răspuns va fi afișat în panoul din dreapta.
După cum puteți încheia, utilizarea instrumentelor de testare a serviciului web precum SoapUI accelerează efortul dvs. de testare a automatizării serviciilor web. Prin urmare, SoapUi va fi centrul învățării noastre în tutorialele următoare.
Rezumat
- Aplicațiile software comunică și schimbă date între ele folosind un serviciu web
- SOAP și REST sunt 2 protocoale populare pentru a crea un WebService
- SOAP acceptă schimbul de date bazat pe XML
- REST suportă XML, Json sau schimbul de date într-un URL simplu pentru testarea WebServices API.
- WSDL este un limbaj bazat pe XML care va fi folosit pentru a descrie serviciile oferite de un serviciu web. SOAP este definit folosind WSDL.
-
Pentru a testa WebService, puteți
- Creați-vă propriul cod. De exemplu, utilizați API-ul Axis2 pentru Java
- Utilizați instrumente de automatizare a testelor WebService precum SoapUI
- Instrumente de automatizare precum SoapUI vă vor impulsiona eforturile de testare a automatizării serviciilor web, vor necesita mai puțin efort de codare în comparație cu crearea propriului cod folosind API-ul Axis2
Întrebări Frecvente
Aflați mai multe despre Testare Web API
Acest tutorial de testare a serviciilor web este posibil cu contribuțiile domnului Narender Reddy Nukala