Veebiteenuste testimise õpetus: kuidas testida? Õppige näitega
Mis on WebService?
Veebiteenused on mehhanism või suhtlusvahend, mille kaudu kaks rakendust/masinat vahetavad andmeid sõltumata nende allajoonitud arhitektuurist ja tehnoloogiast.
Mis on veebiteenuse testimine?
Veebiteenuste testimine on tarkvara testimise tüüp, mis kinnitab veebiteenuseid. Veebiteenuste testimise eesmärk on kontrollida API (rakendusprogrammi liidese) funktsionaalsust, töökindlust, jõudlust ja turvalisust. Veebiteenuse testimine sarnaneb mõnel juhul üksuse testimisega. Saate testida veebiteenust käsitsi või luua oma automatiseerimiskoodi või kasutada riiulivälist automatiseerimistööriista, näiteks Postman.
Miks on veebiteenust vaja?
Üldiselt on tarkvararakendused välja töötatud inimeste tarbimiseks, kui inimene saadab päringu tarkvarateenusele, mis omakorda tagastab vastuse inimloetavas vormingus.
Kaasaegsel tehnoloogiaajastul, kui soovite luua tarkvararakendust, ei pea te kõike nullist üles ehitama. Saadaval on palju valmisteenuseid, mille saate oma rakendusega ühendada ja saate hakata neid teenuseid oma rakenduses pakkuma.
Näiteks soovite kuvada ilmateate teavet, mida te ei pea oma rakenduses olevate andmete kogumiseks, töötlemiseks ja renderdamiseks. Teenust saate osta inimestelt, kes on selliste andmete töötlemisel ja avaldamisel juba end hästi kogenud.
Veebiteenused võimaldavad meil selliseid rakendusi teha.
Näiteks vaadake järgmist WebService'i
http://www.webservicex.net/stockquote.asmx?op=GetQuote
See annab ettevõttele aktsia väärtuse.
Leiame Google'i aktsia hinna (sümbol: GOOG)
Vastus XML annab aktsia hinna.
Seda veebiteenust saab kutsuda tarkvararakendus, mis kasutab SOAP- või HTTP-protokolli.
Veebiteenuse protokollid
Veebiteenuseid saab rakendada erineval viisil, kuid järgmised kaks on populaarsed juurutusviisid.
- SOAP (lihtne objekti juurdepääsuprotokoll)
- REST (esinduslik olekuteabe arhitektuur)
SOAP
SOAP on W3C standardiga määratletud standardprotokoll veebiteenuse päringute ja vastuste saatmiseks ja vastuvõtmiseks.
SOAP kasutab XML-vormingus päringu saatmiseks ja vastuvõtmiseks ja seega on andmed platvormist sõltumatud andmed. SOAP-sõnumeid vahetatakse pakkuja rakenduste ja vastuvõtva rakenduse vahel SOAP-ümbrikus.
Kuna SOAP kasutab lihtsat http transpordiprotokolli, ei blokeeri tulemüürid selle sõnumeid.
REST
REST tähendab REpresentational State Transfer; see on arhitektuur, mis töötab üldiselt HTTP kaudu. REST-stiil rõhutab klientide ja teenuste vahelist suhtlust, mida täiustab piiratud arv toiminguid. REST on alternatiiv SOAP-ile (Simple Object Access Protocol) ja XML-i asemel kasutab REST mõnel juhul lihtsat URL-i. Erinevalt SOAP-ist kasutavad RESTFUL rakendused metateabe edastamiseks HTTP päiseid.
REST kasutab erinevaid koode, et teha kindlaks, kas kasutajal on juurdepääs API-le või mitte, nagu kood 200 või 201 näitab edukat suhtlemist vastuse kehaga, samas kui 400 näitab halba päringut või päringu URI ei vasta süsteemi API-dele. Kõik API päringu parameetrid ja meetodi parameetrid saab saata kummagi kaudu POST or GET muutujad.
Rest API toetab WebServices API testimiseks nii XML- kui ka JSON-vormingut. Tavaliselt eelistatakse seda mobiilne ja veebirakendusi, kuna see muudab rakenduse töö kiiremaks ja sujuvamaks
wsdl
WSDL (veebiteenused Description Language) on XML-põhine keel, mida kasutatakse veebiteenuse pakutavate teenuste kirjeldamiseks.
WSDL kirjeldab kõiki konkreetse veebiteenuse pakutavaid toiminguid XML-vormingus. Samuti määratleb see, kuidas teenuseid saab kutsuda, st millist sisendväärtust peame pakkuma ja milline on vastuse vorming, mille see iga teenuseliigi jaoks genereerib.
Kuidas veebiteenust testida?
Veebiteenuse testimiseks saate
- Testige käsitsi
- Looge oma automatiseerimiskood
- Kasutage valmisautomaatikatööriista, nagu SoapUI.
Veebiteenuste automatiseerimise testimine hõlmab järgmisi samme –
- Saage aru WSDL-failist
- Määrake toimingud, mida konkreetne veebiteenus pakub
- Määrake XML-päringu vorming, mille peame saatma
- Määrake vastuse XML-vorming
- Tööriista või koodi kirjutamine päringu saatmiseks ja vastuse kinnitamiseks
Oletame, et tahame testida veebiteenust, mis pakub valuuta konverteerimisvõimalust. See näitab erinevate riikide valuutade praeguseid ümberarvestuskursse. Seda teenust saame oma rakendustes kasutada väärtuste konverteerimiseks ühest valuutast teise.
Vaatame nüüd ülaltoodud samme
Samm 1 kuni 4: WSDL-i mõistmine ning toimingute ja XML-vormingute määramine
valuuta Convertor WSDL-faili saab näha @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl
), mis annab teavet valuuta kohta Convertor veebiteenuse meetodid, mida see toetab, parameeter, mida peame läbima, ja parameetrite tüüp jne.
5. samm: tööriista või koodi kirjutamine päringu saatmiseks ja vastuse kinnitamiseks
SOAP-i veebiteenuse testimiseks on saadaval palju WebService Testi tööriistu. SoapUI on üks populaarsemaid API tööriist mis aitab meil SOAP-i veebiteenuseid testida. Tegelikult saate kasutada mis tahes programmeerimiskeelt, mis on võimeline saatma XML-i päringu veebiteenuse pakkuja rakendusele http kaudu ja suudab vastuse XML-i oodatava tulemuse suhtes sõeluda ja kinnitada. Selles veebiteenuste testimise õpetuses testime veebiteenust
- Kasutamine Java
- SoapUI kasutamine
1. OSA) WebService'i testimine Apache Axis2 API abil (Java).
Üldjuhul võtab veebiteenus päringu vastu ja saadab vastuse XML-vormingus.
Apache Axis2 API projekt on a Java juurutamise API, mida kasutatakse veebiteenuste loomiseks nii serveri (teenusepakkuja) kui ka kliendi poole (teenuse tarbija) jaoks.
Axis2 on võimeline saatma SOAP-sõnumeid ning võtab vastu ja töötleb SOAP-sõnumeid. Võime kirjutada väikese Java programm, mis kasutab veebiteenuse loomiseks API-d. Axis2 genereerib WSDL-i Java programm, mida kasutatakse veebiteenuse pakutavate teenuste edastamiseks. Selle genereerimiseks saame kasutada sama Axis2 Java klass (stub) WSDL-failist, mida saame kasutada kliendiprogrammina veebiteenuse päringu genereerimiseks, päringu saatmiseks teenuse lõpp-punkti ja vastuse töötlemiseks.
- Põhimõtteliselt loome lihtsa Java programm, milles instantseerime tünniklassi.
- Tünni abil käivitame päringumeetodi, edastades kogu nõutava teabe.
- Stub-programm teisendab selle päringu XML-vormingusse ja saadab sellele teenuse lõpp-punkti, mis loeb päringu ja töötleb päringu ning saadab vastuse XML-vormingus.
- XML-vastus teisendatakse Java klasside kaupa ja naasis tegeliku programmi juurde.
Vaatame ülaltoodud samme üksikasjalikult
Samm a) Laadige alla axis2 API @ https://axis.apache.org/axis2/Java/core/download.cgi & Määra keskkonnamuutujaks 'AXIS2_HOME'
Samm b) Looge kaust kõigi loodud artefaktide hoidmiseks
Näiteks: C:\Axis\Projects\CurrencyConverter
Samm c) Avage käsuviip ja navigeerige kaustastruktuuri, kuhu soovite artefakte luua, ja käivitage järgmine käsk, mis genereerib tünnid
%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb –s
Samm d) Kui käsk on edukalt käivitatud, näete vajalike failidega kausta.
Samm e) Selle veebiteenuste testimise õpetuse järgmises etapis peame looma klientprogrammi, mille kaudu saadame genereeritud tünnide abil tegeliku päringu. Avage varjutus ja looge uus Java projekt ja valige kaust, mille oleme ülal loonud.
Samm f) Lisage kõik axis2-ga seotud purgid projekti ehitamise teele, mis asub seal axis2 tarkvara kausta lib kaustas
(nt: C:\Axis\axis2-1.6.2\lib)
Samm g) Looge uus Java klass (nt: klient.Java) ja eksemplari tünniobjekti. Tugiobjekti kasutades saame kutsuda kõiki konkreetse WebService'i toetatud meetodeid.
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(); } } }
2. OSA) Testimine SoapUI veebiteenuse abil
SoapUI-s
- Avage Fail > Uus seebiprojekt
- Sisestage projekti nimi ja WSDL URI asukoht
- OK
- Laiendage esimest päringut ja topeltklõpsake 'Request1'. See kuvab SOAP-i päringu XML-vormingus.
- Sisestage Valuutast ja Valuutasse
- Klõpsake nuppu Esita
- Parempoolne paan kuvatakse vastuse XML-i.
Nagu võite järeldada, kiirendab WebService Testi tööriistade (nt SoapUI) kasutamine teie veebiteenuste automatiseerimise testimise jõupingutusi. Seetõttu on SoapUi järgmistes õpetustes meie õppimise keskmes.
kokkuvõte
- Tarkvararakendused suhtlevad ja vahetavad omavahel andmeid, kasutades veebiteenust
- SOAP ja REST on kaks populaarset protokolli veebiteenuse loomiseks
- SOAP toetab XML-põhist andmevahetust
- REST toetab WebServices API testimiseks XML-i, Json-i või andmete vahetamist lihtsas URL-is.
- WSDL on XML-põhine keel, mida kasutatakse veebiteenuse pakutavate teenuste kirjeldamiseks. SOAP on määratletud WSDL-i abil.
-
WebService'i testimiseks saate
- Looge oma kood. Kasutage näiteks Axis2 API-t Java
- Kasutage WebService'i testimise automatiseerimise tööriistu, nagu SoapUI
- Automatiseerimistööriistad, nagu SoapUI, käivitavad teie veebiteenuste automatiseerimise testimise jõupingutused ja nõuavad vähem kodeerimistööd, võrreldes oma koodi loomisega Axis2 API abil
KKK
Lisateave Veebi API testimine
See veebiteenuste testimise õpetus on tehtud tänu hr Narender Reddy Nukala panusele