Tutorial de testare a serviciilor web: Cum se testează? Aflați cu Exemplu

Cuprins:

Anonim

Ce este WebService?

Serviciile Web este mecanismul sau mijlocul de comunicare prin care două aplicații / mașini vor face schimb de date, indiferent de arhitectura lor subliniată și de tehnologie.

Ce este testarea serviciilor 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 (Application Program Interface). Testarea serviciilor web este similară testării unitare î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 de tip raft, cum ar fi Postman.

De ce este necesar serviciul web?

În general, aplicațiile software sunt dezvoltate pentru a fi consumate de ființe umane, în cazul în care o persoană trimite o cerere către un serviciu software care, la rândul său, returnează un răspuns în format lizibil de om.

În era modernă a tehnologiei, dacă doriți să creați o aplicație software, nu este nevoie să construiți fiecare și totul de la zero. Există o mulțime de servicii readymade disponibile pe care le puteți conecta la aplicația dvs. și puteți începe să furnizați aceste servicii în aplicația dvs.

De exemplu, doriți să afișați informații despre prognoza meteo pe care nu trebuie să le colectați, să le procesați și să redați datele din aplicația dvs. Puteți cumpăra serviciile de la persoanele care sunt deja bine stabilite în procesarea și publicarea unor astfel de date.

Serviciile web ne permit să realizăm acest tip de implementări.

De exemplu, luați în considerare următorul serviciu Web

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

Oferă valoare acțiunii pentru o companie.

Să găsim prețul acțiunii pentru Google (Simbol: GOOG)

Răspunsul XML oferă prețul acțiunii.

Acest serviciu Web poate fi apelat de o aplicație software utilizând 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.

  1. SOAP (Protocol simplu de acces la obiecte)
  2. REST (arhitectură de transfer reprezentativ de stat)

SĂPUN

SOAP este un protocol standard definit de standardul W3C pentru trimiterea și primirea de cereri și răspunsuri de servicii web.

SOAP utilizează formatul XML pentru a trimite și primi cererea și, prin urmare, datele sunt date independente de platformă. Mesajele SOAP sunt schimbate între aplicațiile furnizorului și aplicația primitoare în plicurile SOAP.

Deoarece SOAP folosește protocolul simplu de transport http, mesajele sale nu sunt blocate de firewall-uri.

ODIHNĂ

REST înseamnă Transfer de stat reprezentativ; este o arhitectură care rulează în general pe HTTP. Stilul REST accentuează interacțiunile dintre clienți și servicii, care sunt îmbunătățite prin efectuarea unui număr limitat de operațiuni. REST este o alternativă la SOAP (Simple Object Access Protocol) și, în loc să utilizeze XML pentru cerere, REST folosește URL simplu în unele cazuri. Spre deosebire de SOAP, aplicațiile RESTFUL utilizează construirea HTTP în antete pentru a transporta meta-informații.

Există diverse coduri pe care REST le utilizează pentru a determina dacă utilizatorul are acces la API sau nu, precum codul 200 sau 201 indică interacțiunea reușită cu corpul de răspuns în timp ce 400 indică o cerere greșită sau dacă URI-ul de cerere nu se potrivește cu API-urile din sistem. Toți parametrii de solicitare API și parametrii metodei pot fi trimiși prin variabile POST sau GET .

Rest API acceptă atât formatul XML, cât și formatul JSON pentru testarea API-ului WebServices. Este de obicei preferat pentru aplicațiile mobile și web, deoarece face ca aplicația să funcționeze mai rapid și mai ușor

WSDL

WSDL (Web Services Description Language) este un limbaj bazat pe XML care va fi utilizat pentru a descrie serviciile oferite de un serviciu web.

WSDL descrie toate operațiunile oferite de un anumit serviciu web în format XML. De asemenea, definește modul în care serviciile pot fi apelate, 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

  1. Testați manual
  2. Creați-vă propriul cod de automatizare
  3. Utilizați un instrument de automatizare de tip raft, cum ar fi SoapUI.

Testarea automatizării serviciilor web implică următorii pași -

  1. Înțelegeți fișierul WSDL
  2. Determinați operațiunile pe care le oferă un anumit serviciu web
  3. Determinați formatul de solicitare XML pe care trebuie să îl trimitem
  4. Determinați formatul de răspuns XML
  5. 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 valutară. Va fi ratele de conversie actuale î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ă vedem pașii de mai sus

Pasul 1 până la 4: Înțelegerea WSDL și determinarea operațiunilor și formatelor XML

Fișierul WSDL Convertor valutar poate fi văzut @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl), care va oferi informații despre metodele serviciului web Convertor valutar pe care le va suporta, parametrul pe care trebuie să îl trecem și tipul parametrilor

... etc.

Pasul 5: Utilizarea unui instrument sau a unui 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 unul dintre instrumentele API populare care ne vor 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 pe http și să poată analiza și valida răspunsul XML în raport cu rezultatul așteptat. În acest tutorial de testare a serviciilor web, vom testa WebService

  1. Folosind Java
  2. Folosind SoapUI

PARTEA 1) Testarea serviciului web utilizând Apache Axis2 API (Java).

În general, serviciul web acceptă solicitarea și trimite răspunsul în format XML.

Proiectul Apache Axis2 API este un API de implementare Java, care va fi utilizat pentru a crea servicii Web atât pentru partea serverului (furnizorul de servicii), cât și pentru partea clientului (consumatorul de servicii).

Axis2 este capabil să trimită mesaje SOAP și primește și procesează mesajele SOAP. Putem scrie un mic program Java folosind API-ul pentru a crea serviciul web. Axis2 va genera programul WSDL din Java care va fi utilizat pentru a comunica serviciile oferite de serviciul web. Putem folosi același Axis2 pentru a genera clasa Java (stub) din fișierul WSDL pe care îl putem folosi ca program client pentru a genera cererea de serviciu web, pentru a trimite cererea către punctul final al serviciului și pentru a procesa răspunsul.

  1. Practic, vom crea un program Java simplu în care vom instanția clasa stub.
  2. Folosind butonul vom invoca metoda cererii prin transmiterea tuturor informațiilor solicitate.
  3. Programul Stub va converti acea cerere în format de cerere XML și îi trimite punctul final al serviciului care va citi cererea și procesează cererea și trimite răspunsul în format XML.
  4. Răspunsul XML va fi convertit în clasa Java prin stub și returnat la programul propriu-zis.

Să analizăm în detaliu pașii de mai sus

Pasul a) Descărcați API-ul axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi și 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 folderelor în care doriți să generați artefactele și Rulați următoarea comandă care va genera stuburile

% 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 intermediul căruia vom trimite cererea efectivă folosind butoanele generate. Deschideți eclipsa și creați noul proiect Java și selectați folderul pe care l-am creat mai sus.

Pasul f) Adăugați toate borcanele legate de axis2 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 o nouă clasă Java (ex: Client.Java) și instanțiați obiectul stub. Folosind obiectul stub putem apela la toate metodele acceptate ale anumitor WebService.

Client.Programul Javapachet 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 main main (Java.lang.String args []) {încerca {// Creați obiectul stub trecând adresa URL a punctului final al serviciuluiCurrencyConvertorStub stub = new CurrencyConvertorStub ("http://www.webservicex.net/CurrencyConvertor.asmx");// ConversionRate este clasa pe care trebuie să o folosim pentru a menționa de la și la monedă// Obiectul ConversionRate va fi parametrul pentru operația conversionRateConversionRate conversionRate = new ConversionRate ();conversionRate.setFromCurrency (Currency.USD);conversionRate.setToCurrency (Currency.INR);// Creați obiectul ConversionRateResponse, care va fi folosit pentru a prinde răspunsul// apelează serviciul conversionRate folosind obiectul stubConversionRateResponse conversionRateResponse = stub.conversionRate (conversionRate);// Putem folosi obiectul conversionRateResponse pentru a prelua răspunsul serviciului ConversionRateSystem.out.println ("Rata de conversie de la INR la USD: + conversionRateResponse.getConversionRateResult ());} catch (Exception e) {e.printStackTrace ();}}}

PARTEA 2) Cum se testează folosind serviciul web SoapUI

În SoapUI

  1. Accesați Fișier> Nou proiect de săpun
  2. Introduceți numele proiectului și locația USD WSDL
  3. Faceți clic pe OK
  1. Extindeți prima solicitare și faceți dublu clic pe „Solicitare1”. Va afișa cererea SOAP în format XML.
  2. Introduceți din De la valută și la monedă
  3. Faceți clic pe butonul de trimitere
  4. 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, vă accelerează efortul 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 fac schimb de date între ele utilizând un serviciu Web
  • SOAP și REST sunt 2 protocoale populare pentru a crea un serviciu Web
  • SOAP acceptă schimbul de date bazat pe XML
  • REST acceptă XML, Json sau schimbul de date într-un URL simplu pentru testarea API-ului WebServices.
  • WSDL este un limbaj bazat pe XML care va fi utilizat 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 Axis2 API pentru Java
    • Utilizați instrumente de automatizare a testelor WebService precum SoapUI
  • Instrumentele de automatizare precum SoapUI vă vor începe cu eforturile de testare a automatizării serviciilor web, vor necesita mai puțin efort de codare comparativ cu crearea propriului cod folosind API-ul Axis2

FAQ

Care este diferența dintre WebService și WebAPI?

Serviciu web

API Web

  • Definit de W3C, toate comunicările și schimbul de date se bazează pe XML
  • Comunicarea API și schimbul de date ar putea fi XML, JSON sau date simple
  • Are standarde definite - WSDL
  • Niciun standard definit
  • Nu puteți comprima datele, dar puteți comprima cererea HTML
  • Puteți comprima datele
  • Exemplu: SAPUN
  • Exemplu: REST

Aflați mai multe despre testarea API Web

Acest tutorial de testare a serviciilor web este posibil cu contribuțiile domnului Narender Reddy Nukala