Ha egy webes szolgáltatás hibás értékeket ad, akkor nagyon sok problémánk kerekedhet belőle. Tehát ha webes szolgáltatást akarunk használni/publikálni, a szolgáltatás tesztelését is fel kell vennünk az eszköztárunkba, hogy megbizonyosodjunk a funkcionálisan megfelelő működésről. Amennyiben a szoftver fejlesztési folyamatunk elején alkalmazzuk a web service-ek funkcionális tesztelését, az felgyorsítja magát a fejlesztési folyamatot és növeli az alkalmazás minőségét.
3 éve kezdtem web service-eket tesztelni a semmiből, és nagyon sok dolgot tanultam azóta a webes alkalmazásteszteléssel, és úgy gondoltam eljött az ideje, hogy megosszam a szerzett tudásomat ezen a területen, hogy segíthessek a tesztelő társaimon, akik először találkoznak a web service teszteléssel. Egy kezdő szintű ismertetőt fogok bemutatni ebben e részben, a SOAP/REST re is egyenként.
Az eviware nyílt forráskódú SoapUI eszközével dolgozok, mert könnyen használható/megérthető, részletesen kidolgozott dokumentáció is áll a rendelkezésünkre hozzá, és nem utolsó sorban ingyenes.
Az alábbi menetrendet fogjuk követni ebben a részben:
- Létrehozunk egy egyszerű Web Service projektet a SoapUI-ban, végrehajtunk egy request-et, és elemezzük a választ.
- A fejlett Web Service tesztelési technikák SoapUI-t használnak, például betölteni egy változót, állítani értékeket a Test-Properties fájlból stb.
- Web Service-ek automatizálása SoapUI projekten keresztül.
- Hudson CIS (Continous Integration Server)en keresztül automatizált SoapUI projekt feladatának beállítása ellenőrzéshez.
Kezdjük az eszköz bevezetésével, amit a Web Service teszteléséhez használtam, ez a SoapUI:
A SoapUI egy ingyenes és nyílt forráskódú cross-platform-os funkcionális tesztelési megoldás. Egy könnyen használható grafikus interfésszel, és előre gyártott funkciókkal van ellátva. A SoapUI segítségével könnyen, és gyorsan tudsz létrehozni, és végrehajtani automatizált funkcionális, regressziós, megfeleltetési, és terheléses teszteket. Egy egyszerű tesztkörnyezetben, a SoapUI teljeskörű tesztlefedettséget ad, valamint támogat minden szabványos protokollt, és technológiát.
Nem fogom az összes funkcióját a SoapUI-nak elmagyarázni, ezért kérlek nézd át a SoapUI részletes dokumentációját, ami elérhető az eviware weboldalán: http://www.eviware.com/soapUI/what-is-soapui.html
Töltsd le a SoapUI-t a következő weboldalról (a legújabb verziók visszafelé kompatibilisek): http://sourceforge.net/projects/soapui/files/soapui/
Egy nyilvánosan hozzáférhető WSDL -t (Bing) fogok felhasználni az oktatóhoz, hogy mindannyian ugyanazt láthassuk, ezért jegyezzük fel a WSDL url-jét: http://api.bing.net/search.wsdl
Innen is kaphatsz segítséget a következő dokumentációban (Bing API alapok): http://www.bing.com/developers/s/API%20Basics.pdf
Szükséged lesz még egy AppId-re hogy használhasd a Bing AOI-t, mert ez egy szükséges mező lesz a WSDL-ben, ehhez itt tudsz feliratkozni: http://www.bing.com/developers/createapp.aspx
Indítsunk azzal, hogy létrehozunk egy új projektet a SoapUI-ban:
- Kattints ide: File > New SoapUI Project
- Írd be a projekt nevét.
- Másold be a WSDL végpontját a WSDL Text mezőbe (http://api.bing.net/search.wsdl)
- Hagyd a checkbox-okat üresen, kivéve a “Create sample requests for all operations”-nél.
- Kattints az OK-ra.
Ahogy betöltődött, minden WS funkció elérhetővé válik ami a WSDL-ben szerepel, egy navigációs ablakban a projekt neve alatt:
Már készen állsz a használatra, és a Web Service tesztelésére. Mivel a Bing API szintén egy művelet a WSDL-ben (Search()) nyisd ki, és látni fogsz egy Request opciót alatta, ami dupla-kattintással megnyithatsz, és megjelenik egy szerkesztő ablak:
Request:?
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:sear=”http://schemas.microsoft.com/LiveSearch/2008/03/Search”>?
<soapenv:Header>?
<soapenv:Body>?
<sear:SearchRequest>?
<sear:parameters>?
<sear:Query>bing
</sear:Query>?
<sear:AppId>INSERT YOUR APPID HERE
</sear:AppId>?
<sear:Sources>?
<!–Zero or more repetitions:–>
<sear:SourceType>web</sear:SourceType>?
</sear:Sources>?
<!–Optional:–>
<sear:Web>?
<!–Optional:–>
<sear:Offset>0
</sear:Offset>?
<!–Optional:–>
<sear:Count>1
</sear:Count>?
</sear:Web>?
</sear:parameters>?
</sear:SearchRequest>?
</soapenv:Body>?
</soapenv:Header>
</soapenv:Envelope>
A futtatás után a következő választ fogod kapni:
Response:?
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>?
<soapenv:Body>?
<SearchResponse>?
<parameters>?
<Version>2.2</Version>?
<Query>?
<SearchTerms>bing</SearchTerms>?
</Query>?
<Web>?
<Total>911000</Total>?
<Offset>0</Offset>?
<Results>?
<WebResult>?
<Title>Bing</Title>?
<Description>Bing is a search engine that finds and organizes the answers you need so you can make faster, more informed decisions.</Description>?
<Url>http://www.bing.com/</Url>;?
<CacheUrl>http://cc.bingj.com/cache.aspx?q=bing&d=4523786176561420&am…;?
<DisplayUrl>Hiba! A hiperhivatkozás érvénytelen.;?
<DateTime>2011-04-24T16:32:00Z</DateTime>?
<DeepLinks>?
<DeepLink>?
<Title>Search History</Title>?
<Url>http://www.bing.com/profile/history?FORM=Z9LH12</Url>;?
</DeepLink>?
<DeepLink>?
<Title>Bing Search History</Title>?
<Url>http://www.bing.com/profile/history</Url>;?
</DeepLink>?
<DeepLink>?
<Title>United States</Title>?
<Url>http://www.bing.com/worldwide.aspx?FORM=WHLH</Url>;?
</DeepLink>?
<DeepLink>?
<Title>Local – Bing News</Title>?
<Url>http://www.bing.com/news/search?q=&p1=%5bNewsVertical+Categ…;?
</DeepLink>?
<DeepLink>?
<Title>Maps</Title>?
<Url>http://www.bing.com/maps/</Url>;?
</DeepLink>?
<DeepLink>?
<Title>Entertainment</Title>?
<Url>http://www.bing.com/entertainment?FORM=Z9LH11</Url>;?
</DeepLink>?
<DeepLink>?
<Title>Business – Bing News</Title>?
<Url>http://www.bing.com/news/search?q=&p1=%5bNewsVertical+Categ…;?
</DeepLink>?
<DeepLink>?
<Title>Bing Community</Title>?
<Url>http://www.bing.com/community/blogs/search/archive/2009/08/17/welco…;?
</DeepLink>?
<DeepLink>?
<Title>Sports – Bing Videos</Title>?
<Url>http://www.bing.com/videos/browse/sports?q=browse:sports</Url>;?
</DeepLink>?
<DeepLink>?
<Title>Bing Maps For India</Title>?
<Url>http://www.bing.com/mapindia/?FORM=Z9LH3</Url>;?
</DeepLink>?
<DeepLink>?
<Title>Bing ???????</Title>?
<Url>http://www.bing.com/settings.aspx?sh=5&ru=%2f&FORM=…;?
</DeepLink>?
<DeepLink>?
<Title>Travel</Title>?
<Url>http://www.bing.com/travel/</Url>;?
</DeepLink>?
<DeepLink>?
<Title>Bing Preferences</Title>?
<Url>http://www.bing.com/settings.aspx?sh=5&ru=%2f&FORM=…;?
</DeepLink>?
</DeepLinks>?
</WebResult>?
</Results>?
</Web>?
</parameters>?
</SearchResponse>?
</soapenv:Body>?
</soapenv:Envelope>
Siker! Ahogy megkapjuk a választ, és úgy tűnik érvényes lefutással, ellenőrizzük is le manuálisan hogy valóban érvényes-e.
Egy egyszerű kérést hajtottam végre, használva egy Bing szavas keresést a Bing-en, korlátozva találatszámot 1-re, ami azt jelenti, hogy csak egy eredményt fog mutatni. Figyeljük meg, hogy vannak bizonyos értékek elem alatt, és vannak számos egyéb elemek, mint a Title, Description, URL, stb. és mindegyiknek megvan a maga értéke.
Ez volt a legalapvetőbb oktatóanyag, hogy hogyan hozzunk létre SoapUI segítségével egy új Web-Service projektet, és hogyan futtassunk egy Request-et, majd ellenőrizzünk egy Response-t. Szeretném megosztani a Alapok Haladóknak részeket, hogy a kezdők is okulhassanak belőle.
Találkozunk a következő részben, ahol majd meglátjuk, hogyan adhatunk meg pár hasznos kérést, hogy érvényesítsük a választ.
Boldog tesztelést!!!
Forrás:https://zuhaibahmed.wordpress.com/2011/04/25/testing-the-web-services-part-one/
Szerző: Zuhaib Ahmed
A szerző
- 6 éve aktív IT tapasztalat szoftver tesztelésben és minőségbiztosításban. Webes alkalmazások tesztelésének koordinálása, web szolgáltatások, adatbázisok, az összes tesztelési szinten, úgymint integrációs regressziós, smoke és terheléses tesztelések. Különböző szerepkörökben szerzett tapasztalatok, mint csapatvezető, minőségbiztosítási vezető. Automata tesztelésben szerzett tapasztalatok különböző platformokon: Selenium, Soap UI Linuxon, Mac-on és Windows-on.