V dnešnej časti sa zameriam na automatizované testy webových služieb. Webová služba je softvérový systém umožňujúci interakciu dvoch strojov na sieti. Je popísaná v strojovo spracovateľnom formáte, konkrétne WSDL [Web Service Definition Language]. S webovou službou ostatné stroje komunikujú spôsobom, ktorý je predpísaný v popise služby, pomocou protokolu SOAP.
Protokoly SOAP a WSDL sú zapísané v XML. Hlavným prínosom webových služieb je prijatie ich protokolov ako štandard medzi-systémovej komunikácie. Vytvárajú tak vhodný nástroj pre komunikáciu medzi firemnými systémami tzv. Business-to-Business operácií. Ako vedľajší prínos je prijatie protokolu SOAP ako štandardu pre prenášanie správ medzi programami alebo systémami. Toľko na objasnenie systému, ktorý budeme automatizovane testovať.
Cieľom tohto článku bude automatické otestovanie voľne dostupnej webovej služby na konverziu medzi rôznymi menami, ktorá je dostupná na tejto URL.
Na vytvorenie automatizovanej infraštruktúry použijem tri voľne dostupné nástroje.
- Java
- ANT
- soapUI
Javu a ANT nebudem osobitne predstavovať. Vo svete sa už stali industriálnymi štandardmi. SoapUI je free open source multiplatformový framework na funkčné testovanie webových služieb. Vďaka ľahko použiteľnému a intuitívnemu grafickému rozhraniu, SoapUI umožňuje ľahko a rýchlo vytvárať a spúšťať automatizované funkčné, regresné a záťažové testy. V jedinom testovacom prostredí poskytuje kompletné pokrytie testami a podporuje všetky štandardné protokoly a technológie.
Začneme teda s downloadom SoapUI z domovského webu.
SoapUI je dostupný aj ako plugin do Eclipse.
Po inštalácii free – nie PRO verzie sa dáme rovno do vytvorenia testovacieho scenára. Ako som už spomenul, budeme testovať voľne dostupnú webovú službu ktorá slúži na konverziu medzi rôznymi menami – „Currency Convertor“. Popis ziskame na url: http://www.webservicex.net/ws/wsdetails.aspx?wsid=10
WSDL schéma sa nachádza na tejto url: http://www.webservicex.net/CurrencyConvertor.asmx?WSDL – WSDL schéma a teda url na ktorej sa nachádza bude aj vstupný parameter, od ktorého sa odvinú aj zvyšné kroky potrebné na vytvorenie testov. Po spustení programu soapUI začneme kliknutím pravou myšou na „Projects“ a vyberieme „New soapUI Project“.
Do políčka Initial “WSDL/WADL” vložíme url linku s WSDL popisom Webovej služby.
Ak ponecháme všetky default nastavenia, po potvrdení “OK” nám soapUI vytvorí testovaciu štruktúru aj s interfejsom “CurrencyConvertorSoap”.
Po dvojkliku na CurrencyConvertorSoap sa prenesieme k detailom testovaného webového servisu.
Po rozkliknutí CurrencyConvertorSoap -> ConversionRate -> Request1, uvidíme okno sk pripraveným requestom, ktorý ale doplníme tak, aby webová služba vo svojom response vrátila kurz Eura voči Českej korune:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webserviceX.NET/"> <soapenv:Header/> <soapenv:Body> <web:ConversionRate> <web:FromCurrency>EUR</web:FromCurrency> <web:ToCurrency>CZK</web:ToCurrency> </web:ConversionRate> </soapenv:Body> </soapenv:Envelope>
Po kliknutí na “Run”- zelená šipka v ľavom hornom rohu, dostaneme response s prepočtom:
V čase písanie tohto članku teda 25,911 CZK za jedno EURO. 🙂
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <ConversionRateResponse xmlns="http://www.webserviceX.NET/"> <ConversionRateResult>25.911</ConversionRateResult> </ConversionRateResponse> </soap:Body> </soap:Envelope>
Nabudúce si ukážeme ako sa z interfejsu webovej služby vygenerujú “TestSuits”, obsahujúce “TestCase” s “TestSteps”. Napíšeme aj bulid.xml pre ANT, ktorý testy dávkovo spustí, vygeneruje report, ktorý otvorí v internetovom prehliadači.