Co je WebService?
Webové služby jsou mechanismus nebo médium komunikace, jehož prostřednictvím si budou dvě aplikace / stroje vyměňovat data bez ohledu na jejich podtrženou 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 (rozhraní aplikačního programu). 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 můžete vytvořit svůj vlastní automatizační kód nebo použít běžný automatizační nástroj, jako je Postman.
Proč je WebService nutný?
Obecně jsou softwarové aplikace vyvíjeny tak, aby je spotřebovávaly lidské bytosti, přičemž osoba odešle požadavek softwarové službě, která zase vrátí odpověď v čitelném formátu.
V moderní éře technologie, pokud chcete vytvořit softwarovou aplikaci, nemusíte stavět všechny a všechno od začátku. Existuje spousta hotových služeb, které můžete připojit do své aplikace a můžete začít poskytovat tyto služby ve své aplikaci.
Například chcete zobrazit informace o předpovědi počasí, které nepotřebujete shromažďovat, zpracovávat a vykreslovat data ve vaší aplikaci. Služby si můžete koupit od lidí, kteří se již dobře etablovali při zpracování a publikování těchto údajů.
Webové služby nám umožňují provádět tento druh implementací.
Jako příklad zvažte následující WebService
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Poskytuje společnosti hodnotu akcií.
Najdeme cenu akcií pro Google (Symbol: GOOG)
Odpověď XML udává cenu akcií.
Tuto Webovou službu lze volat softwarovou aplikací 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 populární implementační přístupy.
- SOAP (Simple Object Access Protocol)
- REST (architektura reprezentativního přenosu stavu)
MÝDLO
SOAP je standardní protokol definovaný standardem W3C pro odesílání a přijímání požadavků a odpovědí na webové služby.
SOAP používá k odesílání a přijímání požadavků formát XML, a proto jsou data nezávislá na platformě. Zprávy SOAP jsou vyměňovány mezi aplikacemi poskytovatele a přijímající aplikací v obálkách SOAP.
Protože SOAP používá jednoduchý transportní protokol http, jeho zprávy nejsou firewally blokovány.
ODPOČINEK
REST znamená přenos reprezentativního státu; je to architektura, která obvykle běží přes HTTP. Styl REST zdůrazňuje interakce mezi klienty a službami, které jsou vylepšeny omezeným počtem operací. REST je alternativou k SOAP (Simple Object Access Protocol) a místo použití XML pro požadavek používá REST v některých případech jednoduchou URL. Na rozdíl od protokolu SOAP používají aplikace RESTFUL k přenosu metainformací HTTP sestavení v hlavičkách.
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 identifikátor URI požadavku neodpovídá API v systému. Všechny parametry požadavku API a parametry metody lze odeslat pomocí proměnných POST nebo GET .
Rest API podporuje pro testování WebServices API formát XML i JSON. Obvykle se dává přednost mobilním a webovým aplikacím, protože díky nim aplikace pracuje rychleji a plynuleji
WSDL
WSDL (Web Services Description Language) je jazyk založený na XML, který bude používán 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. Rovněž definuje, jak lze služby volat, tj. Jakou vstupní hodnotu musíme poskytnout a jaký bude formát odpovědi, kterou bude generovat pro každý druh služby.
Jak otestovat webovou službu?
Chcete-li otestovat webovou službu, můžete
- Otestujte ručně
- Vytvořte si svůj vlastní automatizační kód
- Použijte běžný automatizační nástroj, 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ý musíme odeslat
- Určete formát XML odpovědi
- Pomocí nástroje nebo kódu pro psaní odešlete požadavek a ověříte odpověď
Předpokládejme, že chceme otestovat webovou službu, která poskytuje nástroj pro převod měn. Bude to aktuální přepočítací koeficienty mezi měnou různých zemí. Tuto službu můžeme v našich aplikacích použít k převodu hodnot z jedné měny do druhé měny.
Nyní se podívejme na výše uvedené kroky
Krok 1 až 4: Porozumění WSDL a určení operací a formátů XML
Soubor WSDL převaděče měn lze vidět @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl), který poskytne informace o metodách webové služby převaděče měn, které bude podporovat, parametr, který potřebujeme předat, a typ parametrů
… atdKrok 5: Použití nástroje nebo psaní kódu k odeslání požadavku a ověření odpovědi
K testování webové služby SOAP je k dispozici spousta testovacích nástrojů WebService. SoapUI je jeden z populárních nástrojů API, který nám pomůže otestovat webové služby SOAP. Ve skutečnosti můžete použít libovolný programovací jazyk, který je schopen odeslat požadavek XML do aplikace poskytovatele webových služeb přes protokol HTTP a který dokáže analyzovat a ověřit XML odpovědi na očekávaný výsledek. V tomto kurzu testování webových služeb otestujeme WebService
- Používání Java
- Pomocí SoapUI
ČÁST 1) Testování WebService pomocí Apache Axis2 API (Java).
Obecně webová služba vezme požadavek a odešle odpověď ve formátu XML.
Apache Axis2 API project is a Java implementation API, which will be used to create the Web services for both server side (provider service) and client side (service consumer).
Axis2 je schopen odesílat zprávy SOAP a přijímat a zpracovávat zprávy SOAP. Můžeme napsat malý program Java pomocí API k vytvoření webové služby. Axis2 vygeneruje WSDL z programu Java, který bude použit ke komunikaci služeb nabízených webovou službou. Stejnou Axis2 můžeme použít ke generování třídy Java (pahýl) ze souboru WSDL, který můžeme použít jako klientský program ke generování požadavku webové služby, k odeslání požadavku do koncového bodu služby a ke zpracování odpovědi.
- V zásadě vytvoříme jednoduchý program Java, ve kterém vytvoříme instanci třídy pahýl.
- Pomocí pahýlu 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 do třídy Java stubem a vrácena do skutečného programu.
Podívejme se na výše uvedené kroky podrobně
Krok a) Stáhněte si API Axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi a 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 útržky
% AXIS2_HOME% \ bin \ WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb -s
Krok d) Po úspěšném spuštění příkazu 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, jehož prostřednictvím pošleme skutečný požadavek pomocí vygenerovaných stubů. Otevřete zatmění a vytvořte nový projekt Java a vyberte složku, kterou jsme vytvořili výše.
Krok f) Přidejte všechny sklenice související s osou 2 do cesty sestavení projektu, která tam bude ve složce lib složky softwaru osa2
(například: C: \ Axis \ axis2-1.6.2 \ lib)
Krok g) Vytvořte novou třídu Java (např. Client.Java) a vytvořte instanci stub objektu. Pomocí objektu pahýl můžeme volat všechny podporované metody konkrétní WebService.
Program Client.Javabalíček org.apache.axis2.currencyconvertor;import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate;import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse;importovat org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency;klient veřejné třídy {public static void main (Java.lang.String args []) {Snaž se {// Vytvořte objekt pahýl předáním adresy URL koncového bodu službyCurrencyConvertorStub stub = nový CurrencyConvertorStub ("http://www.webservicex.net/CurrencyConvertor.asmx");// ConversionRate je třída, kterou musíme použít, abychom zmínili měnu od a do// Objekt ConversionRate bude parametrem operace conversionRateConversionRate conversionRate = nový ConversionRate ();conversionRate.setFromCurrency (Currency.USD);conversionRate.setToCurrency (Currency.INR);// Vytvořte objekt ConversionRateResponse, který bude použit k zachycení odpovědi// volání služby conversionRate pomocí objektu stubConversionRateResponse conversionRateResponse = stub.conversionRate (conversionRate);// Můžeme použít objekt conversionRateResponse k načtení odpovědi služby ConversionRateSystem.out.println ("Konverzní poměr z INR na USD: + conversionRateResponse.getConversionRateResult ());} úlovek (výjimka e) {e.printStackTrace ();}}}
ČÁST 2) Jak testovat pomocí webové služby SoapUI
V SoapUI
- Přejděte na Soubor> Nový projekt mýdla
- Zadejte název projektu a umístění URI WSDL
- Klikněte na OK
- Rozbalte první požadavek a dvakrát klikněte na „Žádost1“. Zobrazí požadavek SOAP ve formátu XML.
- Zadejte Od měny do Do měny
- Klikněte na tlačítko Odeslat
- Na pravém bočním panelu se zobrazí XML odpovědi.
Jak můžete vyvodit, použití nástrojů WebService Test, jako je SoapUI, urychlí vaše úsilí o testování automatizace webových služeb. Proto se SoapUi v dalším kurzu zaměří na naše učení.
souhrn
- Softwarové aplikace navzájem komunikují a vyměňují si data pomocí WebService
- SOAP a REST jsou 2 populární protokoly k vytvoření WebService
- 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 Testování.
- WSDL je jazyk založený na XML, který bude používán k popisu služeb nabízených webovou službou. SOAP je definován pomocí WSDL.
- Chcete-li otestovat WebService, můžete
- Vytvořte si vlastní kód. Například použijte Axis2 API pro Javu
- Používejte nástroje WebService Test Automation, jako je SoapUI
- Automation Tools like SoapUI will jumpstart your Web Services Automation Testing effort, will require less coding effort compared to creating your own code using Axis2 API
FAQ
Jaký je rozdíl mezi WebService a WebAPI?
Webová služba |
Webové rozhraní API |
|
|
|
|
|
|
|
|
Další informace o testování webového rozhraní API
Tento výukový program pro testování webových služeb je možný díky příspěvkům pana Narender Reddy Nukala