SoapUI – výkonný open-source tool na testovanie webových služieb

Testovanie API je neoddeliteľnou súčasťou takmer každého analytika kvality v softvérovom priemysle. Dnes si predstavíme výkonný nástroj vhodný na automatizáciu API testovania – SoapUI.

Ak už poznáš SoapUI, prečítaj si náš ďalší článok: SoapUI – 13. najčastejších chýb.

Čo je SOAPUI?

SoapUI je výkonný open-source nástroj široko využívaný na testovanie webových služieb. Je to multiplatformový nástroj vyvinutý v jazyku Java, podporuje Eclipse, NetBeans a IDEA. Používa sa na testovanie aplikácií s architektúrou orientovanou na služby (SOA) alebo REST. Umožňuje testerom testovať funkčné, nefunkčné testovanie, výkonnostné testovanie, regresné testovanie, kompiláciu a záťažové testovanie rôznych webových služieb a rozhraní API.

Podporuje viacero protokolov, napríklad SOAP, REST, HTTP, JMS a JDBC. Pre nového používateľa môže predstavovať stredne strmú krivku učenia, pretože rozhranie nie je vždy najintuitívnejšie.

Testovacie prípady možno zadávať pomocou grafického používateľského rozhrania (GUI). Môžu sa vykonávať buď pomocou grafického používateľského rozhrania, alebo vstavaným spôsobom pomocou Apache Ant alebo Apache Maven.

SoapUI – aké funkcie nám ponúka?

  • Jednoduché generovanie testov pomocou funkcie drag & drop, point &
  • Výkonné testovanie založené na údajoch s údajmi zo súborov a databáz.
  • Skripty sa dajú ľahko opakovane použiť.
  • Mocking služieb pomocou RESTful mocking.
  • Asynchrónne testovanie.
  • Poskytuje jednoduché a prehľadné používateľské rozhranie pre technické aj netechnické osoby.
  • Podporuje všetky štandardné protokoly a technológie na testovanie rôznych API a webových služieb.
  • Poskytuje testovanie bezpečnosti alebo zraniteľnosti systému proti škodlivým príkazom SQL, skenovaniu hraničných obmedzení alebo pretečeniu zásobníka.
  • Umožňuje vytvárať vlastné pluginy pre rôzne open-source prostredia.
  • Môže rozšíriť protokol HTTP o zasielanie správ XML.
  • Môže si vymieňať kompletné dokumenty alebo volať vzdialenú procedúru.
  • Môže sa použiť na vysielanie správy.
  • Umožňuje klientskym aplikáciám jednoduché pripojenie k vzdialeným službám a volanie vzdialených metód.

SoapUI a typy testovania

1) Functional testing – funkčné testovanie

  • Výkonný nástroj umožňuje testerom písať funkčné testy API v SoapUI.
  • Podporuje funkciu Drag-Drop, ktorá urýchľuje vývoj skriptu.
  • Podporuje ladenie testov a umožňuje testerom vyvíjať testy založené na údajoch.
  • Podporuje viacero prostredí – jednoduché prepínanie medzi prostrediami QA, Dev a Prod.
  • Umožňuje pokročilé skriptovanie (tester môže vyvíjať vlastný kód v závislosti od scenára).

2) Security testing – testovanie bezpečnosti

  • Má možnosť vykonať kompletnú sadu skenovania zraniteľností.
  • Zabraňuje SQL Injection na zabezpečenie databáz.
  • Skenuje pretečenie zásobníka, ktoré spôsobujú dokumenty obrovskej veľkosti.
  • Skenuje na Cross Site Scripting, ktorý sa zvyčajne vyskytuje, keď sú v správach vystavené parametre služieb.
  • Vykonáva kontrolu Fuzzing a kontrolu hraníc, aby sa zabránilo nepravidelnému správaniu služieb.

3) Load testing – testovanie zaťaženia

  • Rozdeľuje testy zaťaženia medzi ľubovoľný počet agentov loadUI.
  • Jednoducho simulujte veľký objem a reálne záťažové testy.
  • Umožňuje pokročilé vlastné reportovanie na zachytenie výkonnostných parametrov.
  • Umožňuje monitorovanie výkonu systému od konca do konca.

4) Schema compliance assertion – testovanie zhody

Testovanie zhody pozostáva z licenčného certifikátu na overovanie zdrojov a údajov a rôznych dohôd o službách na overenie webovej služby alebo webového rozhrania API. Okrem toho tieto certifikáty overovania údajov a testovacie skripty volajú pred a po testovaní zhody nástroj SoapUI na kontrolu, či je posledná prijatá správa spojená s definíciou schémy WSDL alebo WADL.

5) Regression testing – regresné testovanie

Regresné testovanie je funkčné testovanie používané v nástroji SoapUI na analýzu chýb alebo porúch webovej služby. A tiež revertuje webovú službu po nových zmenách v aktuálnej verzii nástrojov. Inými slovami môžeme povedať, že je zodpovednosťou testera vykonať testovacie garnitúry a osvedčiť, či sa existujúce funkcionality po nových zmenách v nástrojoch SoapUI nerozbijú a či jej fungovanie s nástrojmi je v poriadku.

6) SoapUI a podporované protokoly, technológie

SoapUI má najkomplexnejšiu podporu protokolov: SOAP, WSDL, REST, http, https, AMF, JDBC, JMS.

Podporované protokoly a technológie SoapUI

7) SopaUI – integrácia s inými automatizačnými nástrojmi

Nástroje, s ktorými SoapUI integruje.

SoapUI sa veľmi dobre integruje s populárnymi nástrojmi:

Maven

Apache Maven je nástroj na správu softvérových projektov, ktorý dokáže spravovať zostavovanie projektu, podávanie správ a dokumentáciu z centrálneho úložiska. Aplikácia Maven dokáže vykonávať testy SOAPUI aj v rámci nástroja Maven Build pomocou jednoduchých príkazov.

Hudson

HUDSON, nástroj na kontinuálnu integráciu založený na jazyku Java a integruje sa s nástrojmi, ako sú CVS, Subversion, Git, Perforce, Clearcase a RTC. SOAPUI sa tiež integruje s HUDSON, čo nám pomáha rýchlo odhaliť chyby pri každej revízii zo strany vývojárov.

JUnit

JUnit je framework Unit Testing vytvorený v jazyku Java, ktorý dokáže riadiť tok testov aj zo SOAPUI.

Apache – Ant

Apache Ant, knižnica jazyka Java, ktorá je nástrojom príkazového riadka, ktorý pomáha pri zostavovaní softvéru. Pomocou príkazového riadka SOAP UI môžeme vykonávať testy v rámci automatizovaného zostavenia ANT.

Výhody SoapUI

  • Poskytuje jednoduché a používateľsky prívetivé grafické používateľské rozhranie (GUI).
  • Multiplatformová aplikácia na báze počítača.
  • Podporuje všetky štandardné protokoly a technológie, ako sú HTTP, HTTPS, AMF, JDBC, SOAP, WSDL atď.
  • SoapUI stojí menej ako všetky ostatné testovacie nástroje dostupné na trhu.
  • Poskytuje rýchly a dobre organizovaný framework, ktorý generuje množstvo testov webových služieb.
  • Vytvára mock-y, na ktorých môžu testeri testovať skutočné aplikácie.
  • Podporuje funkcie drag and drop na prístup k vývoju skriptov.
  • Prenos údajov z jednej odpovede alebo zdroja do rôznych volaní API bez manuálnej interakcie v nástroji SoapUI.
  • Uľahčuje spoluprácu tímov testerov a vývojárov.
  • Nástroj SOAPUI poskytuje možnosť získavať údaje z rôznych zdrojov webových služieb bez toho, aby bolo potrebné vyvíjať akýkoľvek kód.
  • Je to veľmi komplexná aplikácia s mnohými funkciami, ktoré môžu byť niekedy trochu zložitejšie na to, čo potrebujeme.
  • Má lepšiu integráciu ako Postman na prácu s protokolom SOAP (keďže na to bol pôvodne určený).
  • Je to vyspelejší produkt a je na trhu dlhšie.
  • Je to aplikácia, ktorá je viac orientovaná na testovanie a nie len na vyvolanie API, jeho zdokumentovanie a publikovanie. Umožňuje štruktúrovať testy do testovacích balíkov, testovacích prípadov a testovacích krokov.
  • Vykonávanie testov je možné integrovať s nástrojmi, ako sú Maven a CI/CD engine.
  • Umožňuje pridávať skripty v jazyku Groovy, čo znamená, že môžete pridávať validácie, konfigurovať a/alebo automatizovať testy.

Nevýhody nástroja SoapUI

  • Testovanie bezpečnosti si vyžaduje vylepšenia.
  • Modul Mock response by mal byť viac vylepšený a zjednodušený.
  • Vyžiadanie veľkého množstva údajov a duálnych úloh na testovanie webových služieb trvá dlhšie.

Kedy používať verziu SoapUI PRO?

Na základe údajov: PRO verzia nám pomáha pracovať s externým zdrojom údajov, ako sú textové súbory, XML, Groovy, Excel, súbor a databázy. To nám pomáha škálovať naše testy s celým radom vstupov riadených prostredníctvom uvedených zdrojov.

Pokrytie testov: Verzia PRO umožňuje testerom získať štatistický report, ktorý zobrazuje funkcionality, ktoré sú dobre otestované, a tiež oblasti, ktoré NIE sú dôkladne otestované. Rozbaľovacie reporty dokonca presne určujú, čo NEBOLO testované a čo sa NEpotvrdilo.

Debuggovanie testov: Potom môžeš spustiť test na daný bod prerušenia a zobraziť aktuálnu hodnotu parametrov SoapUI. Rozhranie ladenia testov zjednodušuje sledovanie toku testov, premenných, vlastností, požiadaviek, kontextu a mnohých ďalších, čím sa zjednodušuje vytváranie a zlepšovanie testov.

Podpora viacerých prostredí: Práca s viacerými prostrediami, ako napríklad DEV, QA, Pre-PROD prostredie, môže byť v prípade open source verzie náročnou úlohou, keďže testeri musia meniť endpointy, aby sa mohli vykonávať v rôznych prostrediach. Verzia PRO nám pomáha bezproblémovo prepínať medzi prostrediami.

Reportovanie: Verzia PRO je vybavená mnohými možnosťami prispôsobenia reportov, ktoré generujú podrobné reporty na úrovni Project, TestSuite, TestCase alebo LoadTest. Taktiež vytvára reporty v rôznych formátoch, ako napríklad PDF, HTML, Word alebo Excel.

Testovanie bezpečnosti: Obidve verzie SoapUI majú možnosti testovania bezpečnostných zraniteľností, ako sú XML bombs, SQL injection, fuzzing, cross-site scripting. Avšak iba SOAP UI PRO dokáže vykonávať skenovanie zraniteľností pomocou generátora bezpečnostných testov pomocou kliknutia myšou.

SQL Builder : Pre netechnických testerov môže byť písanie zložitých dotazov SQL ťažkopádne. Nástroj SQL Builder v SOAP UI PRO im môže pomôcť pri vytváraní SQL dotazov pomocou grafického rozhrania nástroja SQL Builder. Táto funkcia nám pomáha urýchliť realizáciu testovania založeného na údajoch.

Podpora: Súčasťou licenčnej zmluvy SOAP UI Pro je okrem podpory na online fóre aj exkluzívna podpora.

Architektúra SoapUI

Architektúra SoapUI

  • Testovacie konfiguračné súbory (Test Configuration Files): Testovacie konfiguračné súbory sú konfiguračné súbory, ktoré obsahujú testovacie údaje, databázové pripojenie, premenné, očakávané výsledky a všetky ostatné podrobnosti o nastavení prostredia alebo teste.
  • Selenium: Je to Selenium JAR, ktorý používa automatizáciu používateľského rozhrania.
  • Groovy: Groovy je knižnica, ktorá umožňuje používateľom SoapUI poskytovať Groovy ako skriptovací jazyk.
  • Rozhranie API tretej strany (Third party API): Je to API tretej strany, ktoré sa používa na vytváranie vlastných rámcov automatizácie testovania.
  • Vlastnosti (Properties): Sú to súbory s požadovanými vlastnosťami testu, ktoré sa používajú na uchovávanie akýchkoľvek dynamicky generovaných údajov. Testovacie vlastnosti sa používajú aj pri konfigurácii SSL a iných bezpečnostných konfigurácií pre testovacie požiadavky.
  • SoapUI Runner : Slúži na spustenie projektu SoapUI.
  • Testovacia správa (Test Report): Testovacia správa sa používa ako testovacia správa: SoapUI generuje správu v štýle Junit testov a používateľský nástroj na podávanie správ o výsledkoch testov.

SaopUI download, pricing

Nástroj si môžeš stiahnuť z oficiálnej stránky tu: SoapUI download. Ceny s využitím ReadyAPI nájdeš tu: SoapUI pricing.

SaopUI tutoriál

Ak sa chceš v SoapUI zlepšiť a rozširiť si svoje obzory, odporúčam tento Udemy tutoriál pre začiatočníkov. Ak si pokročilejší, môžeš si pozrieť tutoriál pre pokročilých.

Ak vieš po nemecky a si IT tester alebo automatizovaný tester, pozri si naše firemné benefity a reaguj na voľné pracovné miesta.

O autorovi

Michaela Kojnoková

Agile Test Engineer

Po štúdiu informatiky na ŽU a TUKE som sa najviac ponorila do oblasti automatizácie testovania. Okrem toho sa venujem tvorbe webov, databázam, dátovej analytike, umelej inteligencii a strojovému učeniu. Mám rada cestovanie, šport a najviac si užívam čas strávený v prírode s mojimi blízkymi. LinkedIn

Daj nám o sebe vedieť