Vodič za testiranje web servisa s primjerom

⚡ Pametni sažetak

Testiranje web servisa provjerava funkcionalnost, pouzdanost, performanse i sigurnost API-ja koji omogućuje aplikacijama razmjenu podataka, korištenjem SOAP ili REST protokola, WSDL opisa i alata kao što su SoapUI ili običaj Java kodirati.

  • 🌐 Web usluga: Web servis omogućuje dvjema aplikacijama razmjenu podataka putem mreže.
  • 🧪 Što provjerava: Testiranjem se provjeravaju funkcionalnost, pouzdanost, performanse i sigurnost.
  • 📨 SOAP i OSTALO: SOAP koristi XML envelope; REST koristi jednostavni HTTP i URLs.
  • 📄 WSDL: WSDL je XML datoteka koja opisuje operacije koje nudi SOAP usluga.
  • 🛠️ Alati i Code: Testovi koriste alate poput SoapUI ili običaj Java s Apache Axis2.
  • 🤖 AI pomoć: Umjetna inteligencija generira API testne slučajeve i automatski provjerava odgovore.

Vodič za testiranje web servisa

Što je WebService?

Web usluge su mehanizam ili medij komunikacije putem kojeg će dvije aplikacije / stroja razmjenjivati ​​podatke bez obzira na njihovu istaknutu arhitekturu i tehnologiju.

Što je testiranje web usluge?

Testiranje web usluga je vrsta testiranja softvera koja provjerava web usluge. Svrha testiranja web usluga je provjera funkcionalnosti, pouzdanosti, performansi i sigurnosti API-ja (sučelja aplikacijskog programa). Testiranje web usluge u nekim je slučajevima slično testiranju jedinice. Web-uslugu možete testirati ručno ili izraditi vlastiti kod za automatizaciju ili upotrijebiti gotov alat za automatizaciju kao što je Postman.

Zašto je WebService potreban?

Općenito, softverske aplikacije razvijene su da ih koriste ljudska bića, pri čemu osoba šalje zahtjev softverskoj usluzi koja zauzvrat vraća odgovor u formatu čitljivom za čovjeka.

U modernoj eri tehnologije, ako želite izgraditi softversku aplikaciju, ne morate sve graditi od nule. Dostupno je puno gotovih usluga koje možete uključiti u svoju aplikaciju i možete početi pružati te usluge u svojoj aplikaciji.

Na primjer, ako želite prikazati informacije o vremenskoj prognozi, ne morate prikupljati, obrađivati ​​i renderirati podatke u svojoj aplikaciji. Usluge možete kupiti od osoba koje su već dobro etablirane u obradi i objavi takve vrste podataka.

Web usluge nam omogućuju ovakve implementacije.

Kao primjer, razmotrite sljedeću WebService

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

To daje vrijednost dionice za tvrtku.

Nađimo cijenu dionice za Google (Simbol: GOOG)

Testiranje web usluga

XML odgovor daje cijenu dionice.

Testiranje web usluga

Ovu web-uslugu može pozvati softverska aplikacija koristeći SOAP ili HTTP protokol.

Protokoli web usluga

Web usluge mogu se implementirati na različite načine, ali sljedeća dva su popularna implementacijska pristupa.

  1. SOAP (protokol za pristup jednostavnom objektu)
  2. REST (Arhitektura prijenosa reprezentativnog stanja)

SOAP

SOAP je standardni protokol definiran W3C standardom za slanje i primanje zahtjeva i odgovora za web usluge.

SOAP koristi XML format za slanje i primanje zahtjeva i stoga su podaci neovisni o platformi. SOAP poruke se razmjenjuju između aplikacija davatelja i aplikacije primatelja unutar SOAP omotnica.

Budući da SOAP koristi jednostavan http transportni protokol, njegove poruke ne blokiraju vatrozidi.

OSTALO

REST znači REpresentational State Transfer; to je arhitektura koja se općenito izvodi preko HTTP-a. REST stil naglašava interakcije između klijenata i usluga, koje su poboljšane ograničenim brojem operacija. REST je alternativa SOAP-u (Simple Object Access Protocol) i umjesto korištenja XML-a za zahtjeve, REST koristi jednostavan URL u nekim slučajevima. Za razliku od SOAP-a, RESTFUL aplikacije koriste HTTP ugrađene zaglavlja za prijenos metainformacija.

Postoje različiti kodovi koje REST koristi za određivanje ima li korisnik pristup API-ju ili ne, poput koda 200 ili 201 označava uspješnu interakciju s tijelom odgovora dok 400 označava loš zahtjev ili URI zahtjeva ne odgovara API-jima u sustavu. Svi parametri API zahtjeva i parametri metode mogu se poslati putem bilo kojeg POST or GET varijable.

Rest API podržava XML i JSON format za testiranje WebServices API-ja. Obično se preferira za Kontakt broj i web-aplikacije jer čini da aplikacija radi brže i glatko

wsdl

WSDL (Web usluge Description Language) je jezik temeljen na XML-u koji će se koristiti za opisivanje usluga koje nudi web usluga.

WSDL opisuje sve operacije koje nudi određena web usluga u XML formatu. Također definira kako se usluge mogu pozvati, tj. koju ulaznu vrijednost moramo dati i koji će biti format odgovora koji će generirati za svaku vrstu usluge.

Kako testirati web uslugu?

Da biste testirali web uslugu, možete

  1. Testirajte ručno
  2. Izradite vlastitu automatizaciju Code
  3. Koristite gotov alat za automatizaciju, kao što je SoapUI.

Testiranje automatizacije web usluga uključuje sljedeće korake –

  1. Razumijevanje WSDL datoteke
  2. Odredite operacije koje pruža određena web usluga
  3. Odredite format XML zahtjeva koji trebamo poslati
  4. Odredite XML format odgovora
  5. Korištenje alata ili pisanje koda za slanje zahtjeva i potvrdu odgovora

Pretpostavimo da želimo testirati web uslugu koja nudi mogućnost pretvorbe valuta. To će biti trenutni tečajevi konverzije između valuta različitih zemalja. Ovu uslugu možemo koristiti u našim aplikacijama za pretvaranje vrijednosti iz jedne valute u drugu valutu.

Sada pogledajmo gore navedene korake

Korak 1 do 4: Razumijevanje WSDL-a i određivanje operacija i XML formata

Valuta Convertor WSDL datoteka se može vidjeti @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) koji će dati informacije o valuti Convertor metode web usluge koje će podržavati, parametar koji trebamo proslijediti i vrstu parametara… itd.

WSDL i određivanje operacija i XML formata

WSDL i određivanje operacija i XML formata

Korak 5: Upotreba alata ili pisanje koda za slanje zahtjeva i potvrdu odgovora

Postoji mnogo alata za testiranje web servisa dostupnih za testiranje SOAP web servisa. SoapUI je jedan od popularnih API alat koji će nam pomoći da testiramo SOAP web usluge. Zapravo, možete koristiti bilo koji programski jezik koji je sposoban slati XML zahtjev aplikaciji pružatelja web usluga preko http-a i moći analizirati i potvrditi XML odgovor u odnosu na očekivani rezultat. U ovom vodiču za testiranje web usluga testirat ćemo web uslugu

  1. Korištenje Java
  2. Korištenje SoapUI

1. DIO) Testiranje web usluge pomoću Apache Axis2 API (Java).

Općenito, web servis preuzima zahtjev i šalje odgovor u XML formatu.

Apache Axis2 API projekt je a Java implementacijski API, koji će se koristiti za kreiranje web usluga i za stranu poslužitelja (pružatelj usluge) i za stranu klijenta (korisnik usluge).

Axis2 može slati SOAP poruke te prima i obrađuje SOAP poruke. Možemo napisati malu Java program koji koristi API za izradu web usluge. Axis2 će generirati WSDL iz Java program koji će se koristiti za komunikaciju usluga koje nudi web servis. Možemo koristiti istu Axis2 za generiranje Java klasa (stub) iz WSDL datoteke koju možemo koristiti kao klijentski program za generiranje zahtjeva za web uslugu, slanje zahtjeva krajnjoj točki usluge i obradu odgovora.

  1. U osnovi ćemo stvoriti jednostavan Java program u kojem ćemo instancirati stub klasu.
  2. Korištenjem stuba ćemo pozvati metodu zahtjeva prosljeđivanjem svih potrebnih informacija.
  3. Stub program će taj zahtjev pretvoriti u XML format zahtjeva i poslati mu krajnju točku usluge koja će pročitati zahtjev i obraditi zahtjev te poslati odgovor u XML formatu.
  4. XML odgovor će se pretvoriti u Java razred po dio i vraćen na stvarni program.

Pogledajmo gore navedene korake detaljno

Korak a) Preuzmite axis2 API @ https://axis.apache.org/axis2/Java/core/download.cgi & Postavite varijablu okruženja 'AXIS2_HOME'

Testiranje WebServicea pomoću API-ja Apache Axis2 (Java)

Korak b) Stvorite mapu za čuvanje svih generiranih artefakata

Primjer: C:\Axis\Projects\CurrencyConverter

Korak c) Otvorite naredbeni redak i dođite do strukture mape u kojoj želite generirati artefakte i pokrenite sljedeću naredbu koja će generirati zaglavke

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

Testiranje WebServicea pomoću API-ja Apache Axis2 (Java)

Korak d) Nakon što je naredba uspješno pokrenuta, vidjet ćete mapu sa potrebnim datotekama.

Testiranje WebServicea pomoću API-ja Apache Axis2 (Java)

Korak e) U sljedećem koraku ovog vodiča za testiranje web usluga, moramo stvoriti klijentski program, kroz koji ćemo poslati stvarni zahtjev koristeći generirane stubove. Otvorite pomrčinu i stvorite novu Java projekt i odaberite mapu koju smo stvorili iznad.

Testiranje WebServicea pomoću API-ja Apache Axis2 (Java)

Korak f) Dodajte sve staklenke povezane s axis2 u putanju izgradnje projekta, koja će se nalaziti u mapi lib u mapi softvera axis2

(na primjer: C:\Axis\axis2-1.6.2\lib)

Testiranje WebServicea pomoću API-ja Apache Axis2 (Java)

Korak g) Stvorite novi Java klasa (npr. Klijent.Java) i instancirati stub objekt. Korištenjem stub objekta možemo pozvati sve podržane metode određene WebService.

Testiranje WebServicea pomoću API-ja Apache Axis2 (Java)

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();
      }
    }
}

DIO 2) Kako testirati korištenje SoapUI Web usluge

In SoapUI

  1. Idite na File > New Soap Project
  2. Unesite naziv projekta i WSDL URI lokaciju
  3. Kliknite U redu

Testiranje pomoću SoapUI Web usluge

  1. Proširite prvi zahtjev i dvaput kliknite na 'Zahtjev1'. Prikazat će SOAP zahtjev u XML formatu.
  2. Unesite Od valute i Do valute
  3. Kliknite gumb za slanje
  4. XML odgovora bit će prikazan s desne strane okna.

Testiranje pomoću SoapUI Web usluge

Kao što možete zaključiti, korištenje alata za testiranje web servisa poput SoapUI ubrzava vaše testiranje automatizacije web servisa. Stoga će SoapUi biti fokus našeg učenja u sljedećim tutorijalima.

Pitanja i odgovori

Web servis je definiran od strane W3C-a i razmjenjuje podatke koristeći XML s WSDL standardom, na primjer SOAP. Web API je širi pojam: može razmjenjivati ​​XML, JSON ili obične podatke bez fiksnog standarda, na primjer REST, i može komprimirati podatke.

Uobičajeni alati za testiranje web servisa i API-ja uključuju SoapUI i ReadyAPI za SOAP i REST, Postman za ODMOR, Apache JMeter za testiranje opterećenja i REST Assured za kodno utemeljene Java ispitivanja. SoapUI se široko koristi za SOAP usluge.

Jedinično testiranje provjerava jednu funkciju izolirano, obično od strane programera. API testiranje provjerava ponašanje usluge putem njenog sučelja, uključujući zahtjeve, odgovore, statusne kodove i podatke, u svim komponentama i često bez izvornog koda.

Umjetna inteligencija čita WSDL ili OpenAPI specifikaciju kako bi generirala zahtjeve i tvrdnje, stvara realistične testne podatke i označava anomalne odgovore. Strojno učenje samoobnavljanja osigurava prolaznost testova kada se promijene korisni sadržaji, smanjujući ručno održavanje testova web usluga.

Da. Umjetna inteligencija može analizirati definiciju usluge, generirati valjane i nevaljane zahtjeve, predvidjeti rubne uvjete i predložiti tvrdnje. Ovo automatizirano generiranje poboljšava pokrivenost i smanjuje ručni napor pisanja SOAP ili REST testnih slučajeva.

Sažmite ovu objavu uz: