Verkkopalveluiden testausopas esimerkin kanssa
โก รlykรคs yhteenveto
Verkkopalvelutestaus validoi sovellusten vรคlisen datanvaihdon mahdollistavan API:n toimivuuden, luotettavuuden, suorituskyvyn ja tietoturvan SOAP- tai REST-protokollien, WSDL-kuvauksen ja tyรถkalujen, kuten SoapUI tai custom Java koodi.

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 Google (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 Transferia; se on arkkitehtuuri, joka toimii yleensรค HTTP:n yli. REST-tyyli korostaa asiakkaiden ja palveluiden vรคlisiรค vuorovaikutuksia, joita parannetaan rajoitetulla mรครคrรคllรค toimintoja. REST on vaihtoehto SOAP:lle (Simple Object Access Protocol), ja pyyntรถjen XML:n sijaan REST kรคyttรครค yksinkertaista... URL joissakin tapauksissa. Toisin kuin SOAP, RESTFUL-sovellukset kรคyttรคvรคt HTTP:n sisรครคnrakennettuja 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 automaatiosi Code
- 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-verkkopalveluiden testaamiseen on saatavilla useita 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
- Kรคyttรคminen SoapUI
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 kรคyttรคmรคllรค SoapUI Web-palvelu
In SoapUI
- 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-testaustyรถkalujen, kuten SoapUI nopeuttaa web-palveluiden automaatiotestausta. Siksi SoapUi on seuraavien tutoriaalien oppimisen keskipisteessรค.












