Webszolgáltatások tesztelési oktatóanyaga: Hogyan teszteljük? Tanuljon példával
Mi az a WebService?
A Web Services az a kommunikációs mechanizmus vagy médium, amelyen keresztül két alkalmazás/gép kicseréli az adatokat, függetlenül az aláhúzott architektúrától és a technológiától.
Mi az a webszolgáltatás tesztelése?
Webszolgáltatások tesztelése egy olyan szoftvertesztelés, amely ellenőrzi a webszolgáltatásokat. A Web Services Testing célja egy API (Application Program Interface) funkcionalitásának, megbízhatóságának, teljesítményének és biztonságának ellenőrzése. A webszolgáltatás tesztelése bizonyos esetekben hasonló az egységteszthez. Tesztelhet egy webszolgáltatást manuálisan, vagy létrehozhat saját automatizálási kódot, vagy használhat olyan kész automatizálási eszközt, mint pl. Postman.
Miért van szükség WebService?
Általánosságban elmondható, hogy a szoftveralkalmazásokat az emberi fogyasztásra fejlesztik, amikor egy személy kérést küld egy szoftverszolgáltatásnak, amely viszont ember által olvasható formátumban ad vissza választ.
A modern technológia korában, ha szoftveralkalmazást szeretne készíteni, nem kell mindent a semmiből megépítenie. Rengeteg kész szolgáltatás áll rendelkezésre, amelyeket csatlakoztathat az alkalmazáshoz, és elkezdheti ezeket a szolgáltatásokat nyújtani az alkalmazásban.
Ha például időjárás-előrejelzési információkat szeretne megjeleníteni, nincs szüksége az adatok gyűjtésére, feldolgozására és megjelenítésére az alkalmazásban. A szolgáltatásokat olyan személyektől vásárolhatja meg, akik már jártasak az ilyen jellegű adatok feldolgozásában és közzétételében.
A webszolgáltatások lehetővé teszik számunkra az ilyen jellegű megvalósításokat.
Példaként tekintse meg a következő WebService-t
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Részvényértéket ad egy vállalat számára.
Keressük meg a Google részvényárfolyamát (szimbólum: GOOG )
A válasz XML megadja a részvény árfolyamát.
Ezt a webszolgáltatást SOAP vagy HTTP protokollt használó szoftveralkalmazás hívhatja meg.
Web Service Protocols
A webszolgáltatások többféleképpen is megvalósíthatók, de a következő kettő a népszerű megvalósítási mód.
- SOAP (egyszerű objektum-hozzáférési protokoll)
- REST (reprezentatív állapotátviteli architektúra)
SOAP
A SOAP a W3C szabvány által meghatározott szabványos protokoll webszolgáltatási kérések és válaszok küldésére és fogadására.
A SOAP a XML formátum a kérés elküldéséhez és fogadásához és ezért az adatok platformfüggetlen adatok. A SOAP-üzenetek cseréje a szolgáltató alkalmazások és a fogadó alkalmazás között a SOAP-borítékokon belül történik.
Mivel a SOAP az egyszerű http szállítási protokollt használja, üzeneteit nem blokkolják a tűzfalak.
REST
A REST reprezentatív állapottranszfert jelent; ez egy olyan architektúra, amely általában HTTP-n fut. A REST stílus kiemeli az ügyfelek és a szolgáltatások közötti interakciókat, amelyeket a korlátozott számú művelettel javítanak. A REST a SOAP (Simple Object Access Protocol) alternatívája, és az XML kérés helyett a REST bizonyos esetekben egyszerű URL-t használ. A SOAP-tól eltérően a RESTFUL alkalmazások HTTP-fejléceket használnak a metainformációk hordozására.
Különféle kódok vannak, amelyeket a REST használ annak meghatározására, hogy a felhasználó hozzáfér-e az API-hoz vagy sem. A 200-as vagy a 201-es kód a választörzstel való sikeres interakciót jelzi, míg a 400 rossz kérést jelez, vagy a kérés URI nem egyezik a rendszerben lévő API-kkal. Minden API kérési paraméter és metódusparaméter bármelyiken keresztül elküldhető POST or GET változókat.
A Rest API támogatja az XML és a JSON formátumot a WebServices API teszteléséhez. Általában előnyben részesítik Mobil és webalkalmazásokat, mivel gyorsabbá és gördülékenyebbé teszi az alkalmazásokat
wsdl
WSDL (Webszolgáltatások Description Language) egy XML alapú nyelv, amely a webszolgáltatás által kínált szolgáltatások leírására szolgál.
A WSDL XML formátumban írja le az adott webszolgáltatás által kínált összes műveletet. Azt is meghatározza, hogy a szolgáltatások hogyan hívhatók, azaz milyen bemeneti értéket kell megadnunk, és milyen formátumú lesz a válasz, amelyet az egyes szolgáltatásfajtákra generál.
Hogyan tesztelhetek egy webszolgáltatást?
A webszolgáltatás teszteléséhez megteheti
- Teszt manuálisan
- Készítse el saját automatizálási kódját
- Használjon olyan kész automatizálási eszközt, mint a SoapUI.
A webszolgáltatások automatizálási tesztelése a következő lépéseket tartalmazza:
- Ismerje meg a WSDL fájlt
- Határozza meg az adott webszolgáltatás által biztosított műveleteket
- Határozza meg az XML kérés formátumát, amelyet el kell küldenünk
- Határozza meg a válasz XML formátumát
- Eszköz használata vagy kód írása a kérés elküldéséhez és a válasz érvényesítéséhez
Tegyük fel, hogy tesztelni akarjuk a valutaátváltási lehetőséget biztosító webszolgáltatást. Ez az aktuális átváltási árfolyam a különböző országok pénznemei között. Ezt a szolgáltatást alkalmazásainkban használhatjuk az értékek egyik pénznemről a másik pénznemre való átváltására.
Most nézzük meg a fenti lépéseket
1–4. lépés: A WSDL megértése, valamint a műveletek és az XML formátumok meghatározása
Valuta Convertor WSDL fájl látható @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl
), amely információkat ad a valutáról Convertor webszolgáltatási módszerek, amelyeket támogatni fog, a paraméter, amelyet át kell adni, és a paraméterek típusa stb.
5. lépés: Eszköz használata vagy kód írása a kérés elküldéséhez és a válasz érvényesítéséhez
Számos WebService Test eszköz áll rendelkezésre a SOAP webszolgáltatás tesztelésére. A SoapUI az egyik legnépszerűbb API eszköz amely segít a SOAP webszolgáltatások tesztelésében. Valójában bármilyen programozási nyelv használható, amely képes elküldeni az XML kérést a webszolgáltató alkalmazásnak a http-n keresztül, és képes elemezni és érvényesíteni a válasz XML-t a várt eredménnyel szemben. Ebben a webszolgáltatások tesztelése oktatóanyagban a webszolgáltatást teszteljük
- <p></p> Java
- A SoapUI használata
1. RÉSZ) WebService tesztelése Apache Axis2 API használatával (Java).
Általában a webszolgáltatás fogadja a kérést, és XML formátumban küldi el a választ.
Apache Axis2 API projekt a Java implementációs API, amely a webszolgáltatások létrehozására szolgál mind a szerveroldali (szolgáltatói), mind a kliensoldali (szolgáltatásfogyasztó) számára.
Az Axis2 képes SOAP üzeneteket küldeni és fogadni és feldolgozni a SOAP üzeneteket. Írhatunk egy kis Java program az API segítségével a webszolgáltatás létrehozásához. Axis2 generálja a WSDL-t innen Java program, amely a webszolgáltatás által kínált szolgáltatások kommunikálására szolgál. Ugyanazt az Axis2-t használhatjuk a Java osztály (csonk) WSDL fájlból, amelyet kliensprogramként használhatunk a webszolgáltatási kérés generálására, a kérés szolgáltatás végpontra való elküldésére és a válasz feldolgozására.
- Alapvetően egy egyszerűt fogunk létrehozni Java program, amelyben a csonkosztályt példányosítjuk.
- A csonk használatával meghívjuk a kérési metódust az összes szükséges információ átadásával.
- A Stub program átalakítja a kérést XML kérés formátumba, és elküldi neki a szolgáltatás végpontját, amely beolvassa a kérést, feldolgozza a kérést, és XML formátumban küldi el a választ.
- Az XML-válasz a következőre lesz konvertálva Java osztályról csonkra, és visszatértünk a tényleges programhoz.
Nézzük meg részletesen a fenti lépéseket
lépés a) Töltse le az axis2 API @ https://axis.apache.org/axis2/Java/core/download.cgi & Állítsa be az 'AXIS2_HOME' környezeti változót
b) Lépés: Hozzon létre egy mappát az összes generált műtermék tárolására
Pl.: C:\Axis\Projects\CurrencyConverter
c) lépés: Nyissa meg a parancssort, és keresse meg a mappastruktúrát, ahol a melléktermékeket szeretné előállítani, majd futtassa a következő parancsot, amely létrehozza a csonkokat
%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb –s
d) lépés) A parancs sikeres futtatása után látni fogja a szükséges fájlokat tartalmazó mappát.
e) lépés A Web Services Testing oktatóanyag következő lépésében létre kell hoznunk az ügyfélprogramot, amelyen keresztül a generált csonkok segítségével elküldjük a tényleges kérést. Nyissa meg a napfogyatkozást, és hozzon létre egy újat Java projektet, és válassza ki a fent létrehozott mappát.
f lépés) Adja hozzá az összes axis2-vel kapcsolatos jar-t a projekt összeállítási útvonalához, amely ott lesz az axis2 szoftvermappa lib mappájában
(például: C:\Axis\axis2-1.6.2\lib)
g) lépés: Hozzon létre egy újat Java osztály (pl.: kliens.Java) és példányosított csonkobjektum. A stub objektum segítségével az adott WebService összes támogatott metódusát meg tudjuk hívni.
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(); } } }
2. RÉSZ) Tesztelés a SoapUI webszolgáltatás használatával
A SoapUI-ban
- Lépjen a Fájl > Új szappanprojekt menüpontra
- Adja meg a projekt nevét és a WSDL URI helyét
- kattintson az OK gombra
- Bontsa ki az első kérést, és kattintson duplán a „Request1”-re. A SOAP kérést XML formátumban jeleníti meg.
- Adja meg a Kezdő pénznem és a Pénznem
- Kattintson a beküldés gombra
- A válasz XML megjelenik a jobb oldali ablaktáblában.
Amint arra következtethet, a WebService Test eszközök, például a SoapUI használata felgyorsítja a webszolgáltatások automatizálási tesztelését. Ezért a következő oktatóanyagokban tanulásunk középpontjában a SoapUi áll.
Összegzésként
- A szoftveralkalmazások egy WebService segítségével kommunikálnak és adatokat cserélnek egymással
- A SOAP és a REST két népszerű protokoll a WebService létrehozásához
- A SOAP támogatja az XML alapú adatcserét
- A REST támogatja az XML-t, a Json-t vagy az adatcserét egyszerű URL-címen a WebServices API teszteléséhez.
- A WSDL egy XML alapú nyelv, amely a webszolgáltatás által kínált szolgáltatások leírására szolgál. A SOAP meghatározása a WSDL használatával történik.
-
A WebService teszteléséhez megteheti
- Készítse el saját kódját. Például használja az Axis2 API-t ehhez Java
- Használjon WebService Test Automation eszközöket, például a SoapUI-t
- Az olyan automatizálási eszközök, mint a SoapUI, beindítják a webszolgáltatások automatizálási tesztelési erőfeszítéseit, és kevesebb kódolási erőfeszítést igényelnek, mint a saját kód Axis2 API használatával történő létrehozása.
FAQ
Tudjon meg többet Web API tesztelés
Ez a webszolgáltatás-tesztelési oktatóanyag Narender Reddy Nukala úr közreműködésével készült