Verkkopalveluiden testausopas: Kuinka testata? Opi esimerkin avulla
Mikä on WebService?
Web Services on mekanismi tai viestintäväline, jonka kautta kaksi sovellusta/konetta vaihtavat tietoja riippumatta niiden alleviivausarkkitehtuurista ja tekniikasta.
Mitä on verkkopalvelutestaus?
Verkkopalvelujen testaus on eräänlainen ohjelmistotestaus, joka vahvistaa verkkopalvelut. Web Services Testingin tarkoituksena on tarkistaa API:n (Application Program Interface) toimivuus, luotettavuus, suorituskyky ja turvallisuus. Web Service Testing on joissain tapauksissa samanlainen kuin yksikkötestaus. Voit testata verkkopalvelua manuaalisesti tai luoda oman automaatiokoodin tai käyttää valmiita automaatiotyökaluja, kuten Postman.
Miksi WebServiceä tarvitaan?
Yleensä ohjelmistosovellukset kehitetään ihmisten kulutettaviksi, jolloin henkilö lähettää pyynnön ohjelmistopalveluun, joka puolestaan palauttaa vastauksen ihmisen luettavassa muodossa.
Nykyaikaisella tekniikan aikakaudella, jos haluat rakentaa ohjelmistosovelluksen, sinun ei tarvitse rakentaa kaikkea alusta alkaen. Saatavilla on paljon valmiita palveluita, jotka voit liittää sovellukseesi ja aloittaa näiden palvelujen tarjoamisen sovelluksessasi.
Haluat esimerkiksi näyttää säätiedot, joita sinun ei tarvitse kerätä, käsitellä ja renderöidä sovelluksesi tietoja. Palveluja voi ostaa henkilöiltä, jotka ovat jo vakiintuneet käsittelemään ja julkaisemaan tällaisia tietoja.
Verkkopalveluiden avulla voimme tehdä tällaisia toteutuksia.
Harkitse esimerkkinä seuraavaa WebServiceä
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Se antaa osakkeen arvon yritykselle.
Etsitään osakkeen hinta Googlelle (Symboli: GOOG )
Vastaus XML antaa osakekurssin.
Tämä WebService voi kutsua SOAP- tai HTTP-protokollaa käyttävä ohjelmistosovellus.
Web Service Protocols
Web Services voidaan toteuttaa eri tavoin, mutta seuraavat kaksi ovat suosittuja toteutusmenetelmiä.
- SOAP (yksinkertainen Object Access Protocol)
- REST (Representational State Transfer -arkkitehtuuri)
SAIPPUA
SOAP on W3C-standardin määrittelemä standardiprotokolla verkkopalvelupyyntöjen ja -vastausten lähettämiseen ja vastaanottamiseen.
SOAP käyttää XML-muodossa pyynnön lähettämiseen ja vastaanottamiseen ja näin ollen data on alustasta riippumatonta dataa. SOAP-sanomia vaihdetaan palveluntarjoajan sovellusten ja vastaanottavan sovelluksen välillä SOAP-kuorien sisällä.
Koska SOAP käyttää yksinkertaista http-siirtoprotokollaa, palomuurit eivät estä sen viestejä.
REST
REST tarkoittaa REpresentational State Transfer; se on arkkitehtuuri, joka yleensä toimii HTTP:n yli. REST-tyyli korostaa asiakkaiden ja palveluiden välistä vuorovaikutusta, jota tehostetaan rajallisella toimintojen määrällä. REST on vaihtoehto SOAP:lle (Simple Object Access Protocol) ja XML:n sijaan REST käyttää joissakin tapauksissa yksinkertaista URL-osoitetta. Toisin kuin SOAP, RESTFUL-sovellukset käyttävät HTTP-otsikoita metatietojen kuljettamiseen.
On olemassa useita koodeja, joita REST käyttää määrittääkseen, onko käyttäjällä pääsy API:iin vai ei, kuten koodi 200 tai 201 osoittaa onnistuneen vuorovaikutuksen vastauksen rungon kanssa, kun taas 400 osoittaa huonoa pyyntöä tai pyynnön URI ei vastaa järjestelmän API:ita. Kaikki API-pyyntöparametrit ja menetelmäparametrit voidaan lähettää jommankumman kautta POST or SAA muuttujia.
Rest API tukee sekä XML- että JSON-muotoa WebServices API -testauksessa. Sitä suositellaan yleensä Puhelinnumero ja verkkosovelluksia, koska se tekee sovelluksista nopeampaa ja sujuvampaa
wsdl
WSDL (Web Services Description Language) on XML-pohjainen kieli, jota käytetään kuvaamaan verkkopalvelun tarjoamia palveluita.
WSDL kuvaa kaikki tietyn verkkopalvelun tarjoamat toiminnot XML-muodossa. Se määrittelee myös, kuinka palveluita voidaan kutsua, eli mikä syöttöarvo meidän on annettava ja minkä muotoinen vastaus tulee tuottaa kullekin palvelutyypille.
Kuinka testata verkkopalvelua?
Voit testata verkkopalvelua
- Testaa manuaalisesti
- Luo oma automaatiokoodisi
- Käytä valmiita automaatiotyökaluja, kuten SoapUI.
Web Services Automation Testing sisältää seuraavat vaiheet:
- Ymmärrä WSDL-tiedosto
- Määritä tietyn verkkopalvelun tarjoamat toiminnot
- Määritä XML-pyyntömuoto, joka meidän on lähetettävä
- Määritä vastauksen XML-muoto
- Käytä työkalua tai kirjoittamalla koodia pyynnön lähettämiseen ja vastauksen vahvistamiseen
Oletetaan, että haluamme testata verkkopalvelua, joka tarjoaa valuuttamuunnostoiminnon. Se näyttää nykyiset vaihtokurssit eri maiden valuuttojen välillä. Tätä palvelua voimme käyttää sovelluksissamme arvojen muuntamiseen valuutasta toiseen.
Katsotaan nyt yllä olevia vaiheita
Vaiheet 1–4: WSDL:n ymmärtäminen ja toimintojen ja XML-muotojen määrittäminen
valuutta Convertor WSDL-tiedosto näkyy @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl
), joka antaa tiedot valuutasta Convertor verkkopalvelumenetelmät, joita se tukee, parametri, jonka tarvitsemme, ja parametrien tyyppi jne.
Vaihe 5: Käytä työkalua tai kirjoitat koodia pyynnön lähettämiseen ja vastauksen vahvistamiseen
SOAP-verkkopalvelun testaamiseen on saatavilla monia WebService Test -työkaluja. SoapUI on yksi suosituimmista API-työkalu joka auttaa meitä testaamaan SOAP-verkkopalveluita. Itse asiassa voit käyttää mitä tahansa ohjelmointikieltä, joka pystyy lähettämään XML-pyynnön web-palveluntarjoajan sovellukselle http:n kautta ja jäsentämään ja vahvistamaan vastauksen XML:n odotettuun tulokseen nähden. Tässä Web Services Testing -opetusohjelmassa testaamme WebServiceä
- Käyttäminen Java
- SoapUI:n käyttö
OSA 1) WebService-testaus Apache Axis2 API:lla (Java).
Yleensä verkkopalvelu ottaa pyynnön ja lähettää vastauksen XML-muodossa.
Apache Axis2 API -projekti on a Java toteutus API, jota käytetään luomaan Web-palvelut sekä palvelinpuolelle (palveluntarjoaja) että asiakaspuolelle (palvelun kuluttaja).
Axis2 pystyy lähettämään SOAP-viestejä ja vastaanottamaan ja käsittelemään SOAP-viestejä. Voimme kirjoittaa pienen Java sovellusliittymän avulla verkkopalvelun luomiseen. Axis2 luo WSDL:n kohteesta Java ohjelma, jota käytetään viestimään verkkopalvelun tarjoamista palveluista. Voimme käyttää samaa Axis2:ta luomaan Java luokka (stub) WSDL-tiedostosta, jota voimme käyttää asiakasohjelmana verkkopalvelupyynnön luomiseen, pyynnön lähettämiseen palvelun päätepisteeseen ja vastauksen käsittelemiseen.
- Periaatteessa luomme yksinkertaisen Java ohjelma, jossa instantoimme tynkäluokan.
- Tynkin avulla kutsumme pyyntömenetelmän välittämällä kaikki vaaditut tiedot.
- Stub-ohjelma muuntaa pyynnön XML-pyyntömuotoon ja lähettää sille palvelun päätepisteen, joka lukee pyynnön ja käsittelee pyynnön ja lähettää vastauksen XML-muodossa.
- XML-vastaus muunnetaan muotoon Java luokka tynkä kerrallaan ja palasi varsinaiseen ohjelmaan.
Katsotaanpa yllä olevia vaiheita yksityiskohtaisesti
Vaihe a) Lataa axis2 API @ https://axis.apache.org/axis2/Java/core/download.cgi & Aseta ympäristömuuttuja 'AXIS2_HOME'
Vaihe b) Luo kansio, jossa säilytetään kaikki luodut esineet
Esimerkki: C:\Axis\Projects\CurrencyConverter
Vaihe c) Avaa komentokehote ja siirry kansiorakenteeseen, johon haluat luoda artefaktit, ja suorita seuraava komento, joka luo tyngät
%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb –s
Vaihe d) Kun komento on suoritettu onnistuneesti, näet kansion vaadituilla tiedostoilla.
Vaihe e) Tämän Web Services Testing -opetusohjelman seuraavassa vaiheessa meidän on luotava asiakasohjelma, jonka kautta lähetämme varsinaisen pyynnön käyttämällä luotuja tynkkiä. Avaa pimennys ja luo uusi Java projekti ja valitse yllä luomamme kansio.
Vaihe f) Lisää kaikki axis2:een liittyvät purkit projektin rakennuspolkuun, joka on siellä axis2-ohjelmistokansion lib-kansiossa
(esim. C:\Axis\axis2-1.6.2\lib)
Vaihe g) Luo uusi Java luokka (esim.: Asiakas.Java) ja ilmentymä tynkäobjekti. Stub-objektia käyttämällä voimme kutsua kaikki tietyn WebServicen tuetut menetelmät.
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(); } } }
OSA 2) Testaaminen SoapUI-verkkopalvelun avulla
SoapUI:ssa
- Siirry kohtaan Tiedosto > Uusi saippuaprojekti
- Anna projektin nimi ja WSDL URI -sijainti
- OK
- Laajenna ensimmäinen pyyntö ja kaksoisnapsauta 'Request1'. Se näyttää SOAP-pyynnön XML-muodossa.
- Syötä Valuuttasta ja Valuuttaan
- Napsauta Lähetä-painiketta
- Response XML näkyy oikeanpuoleisessa ruudussa.
Kuten saatat päätellä, WebService Test -työkalujen, kuten SoapUI, käyttö nopeuttaa Web Services Automation Testing -testausta. Siksi SoapUi on oppimisemme painopiste seuraavissa opetusohjelmissa.
Yhteenveto
- Ohjelmistosovellukset viestivät ja vaihtavat tietoja keskenään WebServicen avulla
- SOAP ja REST ovat kaksi suosittua protokollaa WebServicen luomiseen
- SOAP tukee XML-pohjaista tiedonvaihtoa
- REST tukee XML-, Json- tai tiedonvaihtoa yksinkertaisessa URL-osoitteessa WebServices API -testausta varten.
- WSDL on XML-pohjainen kieli, jota käytetään kuvaamaan verkkopalvelun tarjoamia palveluita. SOAP määritellään WSDL:llä.
-
Voit testata WebServiceä
- Luo oma koodi. Käytä esimerkiksi Axis2 API:ta Java
- Käytä WebService Test Automation -työkaluja, kuten SoapUI
- Automaatiotyökalut, kuten SoapUI, käynnistävät Web Services Automation Testing -työsi nopeasti, vaativat vähemmän koodaustyötä kuin oman koodin luominen Axis2 API:lla
FAQ
Lisätietoja Web API testaus
Tämä verkkopalveluiden testausopas on tehty Narender Reddy Nukalan panoksen avulla