Tutorial de testare a serviciilor web cu exemplu
โก Rezumat inteligent
Testarea serviciilor web valideazฤ funcศionalitatea, fiabilitatea, performanศa ศi securitatea unei API care permite aplicaศiilor sฤ facฤ schimb de date, utilizรขnd protocoale SOAP sau REST, o descriere WSDL ศi instrumente precum SoapUI sau personalizat Java cod.

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ฤ aflฤm preศul acศiunii 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ฤ REprezentational State Transfer (Transfer de Stฤri Reprezentaศionale); este o arhitecturฤ care ruleazฤ รฎn general pe HTTP. Stilul REST pune accentul pe interacศiunile dintre clienศi ศi servicii, care sunt รฎmbunฤtฤศite printr-un numฤr limitat de operaศiuni. REST este o alternativฤ la SOAP (Simple Object Access Protocol) ศi รฎn loc sฤ utilizeze XML pentru solicitฤri, REST foloseศte protocol simplu... URL รฎn unele cazuri. Spre deosebire de SOAP, aplicaศiile RESTFUL utilizeazฤ antete HTTP รฎncorporate pentru a transporta meta-informaศ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
- Creeazฤ-ศi propria automatizare Code
- Foloseศte un instrument de automatizare standard, 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ฤ numeroase instrumente de testare WebService disponibile pentru testarea serviciilor web SOAP. SoapUI este una dintre cele 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
- Utilizarea 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 se testeazฤ folosind SoapUI Serviciu web
In 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 concluziona, utilizarea instrumentelor de testare WebService, cum ar fi SoapUI accelereazฤ efortul de testare a automatizฤrii serviciilor web. Prin urmare, SoapUi va fi punctul central al รฎnvฤศฤrii noastre รฎn tutorialele urmฤtoare.












