Kurz testování webových služeb: Jak testovat? Učte se s příkladem
Co je WebService?
Web Services je mechanismus nebo prostředek komunikace, jehož prostřednictvím si dvě aplikace/stroje vyměňují data bez ohledu na jejich základní architekturu a technologii.
Co je testování webových služeb?
Testování webových služeb je typ testování softwaru, který ověřuje webové služby. Účelem testování webových služeb je zkontrolovat funkčnost, spolehlivost, výkon a zabezpečení API (Application Program Interface). Testování webových služeb je v některých případech podobné testování jednotek. Webovou službu můžete otestovat ručně nebo si vytvořit svůj vlastní automatizační kód nebo použít běžně dostupný automatizační nástroj Postman.
Proč je potřeba WebService?
Obecně platí, že softwarové aplikace jsou vyvíjeny pro lidskou spotřebu, kde osoba odešle požadavek softwarové službě, která obratem vrátí odpověď ve formátu čitelném pro člověka.
V moderní éře technologií, pokud chcete vytvořit softwarovou aplikaci, nemusíte vše budovat od začátku. K dispozici je spousta hotových služeb, které můžete zapojit do své aplikace a tyto služby můžete začít poskytovat ve své aplikaci.
Chcete například zobrazit informace o předpovědi počasí, které nepotřebujete shromažďovat, zpracovávat a vykreslovat data ve své aplikaci. Služby si můžete zakoupit od lidí, kteří se již dobře etablovali ve zpracování a zveřejňování takových dat.
Webové služby nám umožňují provádět tyto druhy implementací.
Jako příklad zvažte následující webovou službu
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Poskytuje hodnotu akcií společnosti.
Pojďme najít cenu akcií pro Google (Symbol: GOOG)
Odezva XML udává cenu akcií.
Tuto webovou službu může volat softwarová aplikace pomocí protokolu SOAP nebo HTTP.
Protokoly webových služeb
Webové služby lze implementovat různými způsoby, ale následující dva jsou oblíbené implementační přístupy.
- SOAP (Simple Object Access Protocol)
- REST (architektura reprezentativního přenosu státu)
MÝDLO
SOAP je standardní protokol definovaný standardem W3C pro odesílání a přijímání požadavků a odpovědí webových služeb.
SOAP používá Formát XML pro odeslání a přijetí požadavku a tedy data jsou data nezávislá na platformě. Zprávy SOAP jsou vyměňovány mezi aplikacemi poskytovatele a přijímající aplikací v rámci obálek SOAP.
Protože SOAP používá jednoduchý transportní protokol http, jeho zprávy nejsou blokovány firewally.
REST
REST znamená přenos reprezentativního stavu; je to architektura, která obecně běží přes HTTP. Styl REST klade důraz na interakce mezi klienty a službami, které jsou umocněny omezeným počtem operací. REST je alternativou k SOAP (Simple Object Access Protocol) a namísto použití XML pro požadavek používá REST v některých případech jednoduché URL. Na rozdíl od SOAP používají aplikace RESTFUL pro přenos metainformací HTTP hlavičky.
Existují různé kódy, které REST používá k určení, zda má uživatel přístup k API nebo ne, jako kód 200 nebo 201 označuje úspěšnou interakci s tělem odpovědi, zatímco 400 označuje špatný požadavek nebo URI požadavku neodpovídá API v systému. Všechny parametry požadavku API a parametry metody lze odeslat prostřednictvím obou POST or GET proměnné.
Rest API podporuje formát XML i JSON pro testování rozhraní API WebServices. Obvykle se preferuje pro Mobilní aplikace a webové aplikace, protože aplikace pracuje rychleji a plynuleji
wsdl
WSDL (Webové služby Description Language) je jazyk založený na XML, který bude použit k popisu služeb nabízených webovou službou.
WSDL popisuje všechny operace nabízené konkrétní webovou službou ve formátu XML. Definuje také, jak lze služby volat, tedy jakou vstupní hodnotu musíme poskytnout a jaký bude formát odpovědi, kterou bude generovat pro jednotlivé druhy služeb.
Jak otestovat webovou službu?
Chcete-li otestovat webovou službu, můžete
- Testujte ručně
- Vytvořte si svůj vlastní automatizační kód
- Použijte běžně dostupný nástroj pro automatizaci, jako je SoapUI.
Testování automatizace webových služeb zahrnuje následující kroky –
- Pochopte soubor WSDL
- Určete operace, které konkrétní webová služba poskytuje
- Určete formát požadavku XML, který potřebujeme odeslat
- Určete formát XML odpovědi
- Použití nástroje nebo psaní kódu k odeslání požadavku a ověření odpovědi
Předpokládejme, že chceme otestovat webovou službu, která poskytuje nástroj pro převod měn. Bude to aktuální směnné kurzy mezi měnou různých zemí. Tuto službu můžeme využít v našich aplikacích k převodu hodnot z jedné měny do druhé.
Nyní se podívejme na výše uvedené kroky
Krok 1 až 4: Pochopení WSDL a určení operací a formátů XML
Měna Convertor Soubor WSDL lze vidět @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl
), který poskytne informace o Měně Convertor metody webové služby, které bude podporovat, parametr, který potřebujeme předat, a typ parametrů… atd.
Krok 5: Použití nástroje nebo psaní kódu k odeslání požadavku a ověření odpovědi
Pro testování webové služby SOAP je k dispozici mnoho nástrojů WebService Test. SoapUI je jedním z populárních API nástroj které nám pomohou otestovat webové služby SOAP. Ve skutečnosti můžete použít jakýkoli programovací jazyk, který je schopen odeslat požadavek XML do aplikace poskytovatele webových služeb přes http a který je schopen analyzovat a ověřit XML odezvy proti očekávanému výsledku. V tomto tutoriálu Testování webových služeb otestujeme webovou službu
- Použití Java
- Pomocí SoapUI
ČÁST 1) Testování webových služeb pomocí Apache Axis2 API (Java).
Obecně webová služba převezme požadavek a odešle odpověď ve formátu XML.
Projekt Apache Axis2 API je a Java implementační API, které bude použito k vytvoření webových služeb jak na straně serveru (poskytovatel služby), tak na straně klienta (spotřebitel služby).
Axis2 je schopen odesílat zprávy SOAP a přijímat a zpracovávat zprávy SOAP. Můžeme napsat malý Java program využívající API k vytvoření webové služby. Axis2 vygeneruje WSDL z Java program, který bude použit ke komunikaci služeb nabízených webovou službou. Ke generování můžeme použít stejnou Axis2 Java třídy (stub) ze souboru WSDL, který můžeme použít jako klientský program ke generování požadavku na webovou službu, k odeslání požadavku do koncového bodu služby a ke zpracování odpovědi.
- V podstatě vytvoříme jednoduchý Java program, ve kterém vytvoříme instanci třídy stub.
- Pomocí stub vyvoláme metodu požadavku předáním všech požadovaných informací.
- Program Stub převede tento požadavek do formátu požadavku XML a odešle mu koncový bod služby, který požadavek přečte a zpracuje a odešle odpověď ve formátu XML.
- Odpověď XML bude převedena na Java třídu po útržku a vrátil se ke skutečnému programu.
Podívejme se na výše uvedené kroky podrobně
Krok a) Stáhněte si axis2 API @ https://axis.apache.org/axis2/Java/core/download.cgi & Nastavte proměnnou prostředí 'AXIS2_HOME'
Krok b) Vytvořte složku pro uchování všech vygenerovaných artefaktů
Příklad: C:\Axis\Projects\CurrencyConverter
Krok c) Otevřete příkazový řádek a přejděte do struktury složek, kde chcete generovat artefakty, a spusťte následující příkaz, který vygeneruje pahýly
%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb –s
Krok d) Jakmile je příkaz úspěšně spuštěn, uvidíte složku s požadovanými soubory.
Krok e)V dalším kroku tohoto tutoriálu Testování webových služeb musíme vytvořit klientský program, přes který odešleme aktuální požadavek pomocí vygenerovaných stubů. Otevřete zatmění a vytvořte nové Java projekt a vyberte složku, kterou jsme vytvořili výše.
Krok f) Přidejte všechny jary související s axis2 do cesty sestavení projektu, která tam bude ve složce lib ve složce softwaru axis2
(například: C:\Axis\axis2-1.6.2\lib)
Krok g) Vytvořte nový Java třída (např.: klient.Java) a vytvořte instanci stub objektu. Pomocí objektu stub můžeme volat všechny podporované metody konkrétní WebService.
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(); } } }
ČÁST 2) Jak testovat pomocí webové služby SoapUI
V SoapUI
- Přejděte do nabídky Soubor > Nový projekt mýdla
- Zadejte název projektu a umístění WSDL URI
- klepněte na tlačítko OK
- Rozbalte první požadavek a dvakrát klikněte na 'Požadavek1'. Zobrazí požadavek SOAP ve formátu XML.
- Zadejte Z měny a Do měny
- Klikněte na tlačítko Odeslat
- Na pravé straně se zobrazí XML odpovědi.
Jak můžete uzavřít, použití nástrojů WebService Test, jako je SoapUI, urychluje vaše úsilí o testování automatizace webových služeb. Proto se SoapUi zaměří na naše učení v následujících tutoriálech.
Shrnutí
- Softwarové aplikace komunikují a vyměňují si data mezi sebou pomocí webové služby
- SOAP a REST jsou 2 oblíbené protokoly pro vytvoření webové služby
- SOAP podporuje výměnu dat založenou na XML
- REST podporuje XML, Json nebo výměnu dat v jednoduché URL pro WebServices API Testing.
- WSDL je jazyk založený na XML, který bude použit k popisu služeb nabízených webovou službou. SOAP je definován pomocí WSDL.
-
WebService můžete otestovat
- Vytvořte si vlastní kód. Například použijte Axis2 API pro Java
- Používejte nástroje WebService Test Automation, jako je SoapUI
- Automatizační nástroje, jako je SoapUI, nastartují vaše úsilí o testování automatizace webových služeb, budou vyžadovat menší úsilí při kódování ve srovnání s vytvářením vlastního kódu pomocí Axis2 API.
Nejčastější dotazy
Další informace o Testování webového API
Tento tutoriál Testování webových služeb je možný díky příspěvkům pana Narendera Reddyho Nukaly