Korištenje SoapUI sa Selenium za testiranje web usluga
⚡ Pametni sažetak
SoapUI sa Selenium omogućuje jednom paketu provjeru web servisa i preglednika koji ga koristi. Groovy je most, jer SoapUI pokreće Groovy izvorno i Groovy doseže svaki Java knjižnica Selenium brodovi.
SoapUI je najpopularniji otvoreni kod funkcionalno ispitivanje alat za API testiranje. Pruža potpunu pokrivenost testom te podržava sve standardne protokole i tehnologije.
Što je SOAP?
SOAP je jednostavan protokol temeljen na XML-u. Omogućuje aplikacijama razmjenu informacija putem HTTP-a. Koristi web servise Descriptionski jezik (WSDL) za komunikaciju, a druge aplikacije mogu komunicirati s web usluge putem tog WSDL sučelja.
SOAP vs REST web servisi u SoapUI
SoapUI Započeo je kao SOAP klijent, i njegovo ime to i dalje govori, ali testira i REST krajnje točke. Poznavanje stila na koji pokazujete određuje kako će se test graditi.
| Aspekt | SOAP | OSTALO |
|---|---|---|
| stract | WSDL datoteka opisuje svaku operaciju, tako da SoapUI može automatski generirati zahtjeve. | Obično OpenAPI ili Swagger definicija ili bez formalnog sporazumatract uopće. |
| Format poruke | Samo XML omotnica. | Obično JSON, iako su dopušteni XML i drugi formati. |
| prijevoz | Najčešće HTTP, ali SOAP je neovisan o transportu. | HTTP, s metodom i URL noseći namjeru. |
| Tvrdnje u SoapUI | XPath i XQuery podudaraju se s ovojnicom odgovora. | JSONPath i tvrdnje skripte podudaraju se s korisnim teretom. |
| Tipična upotreba | Bankarstvo, telekomunikacije i ostale uslugetract-teške integracije poduzeća. | Javne i mobilne usluge gdje korisni tereti ostaju lagani. |
Donji vodič koristi SOAP uslugu vremenske prognoze, ali ista klasa trkača pokreće REST testni slučaj bez ikakvih promjena u Java kodirati.
Što je SOAPUI?
SOAPUI je alat za testiranje web usluga otvorenog koda za više platformi. SOAPUI-Pro izdanje ima dodatne funkcionalnosti za tvrtke koje se bave kritičnim web uslugama. Web usluge igraju značajnu ulogu u internetskim aplikacijama.
⚠️ Napomena o nazivu proizvoda: SmartBear ukinut SoapUI PRO kao samostalni proizvod i spojio ga, zajedno s LoadUI Pro i ServiceV Pro, u ReadyAPIBesplatno izdanje zadržava SoapUI ime i još uvijek je aktivno objavljeno. Koraci u nastavku funkcioniraju u oba slučaja, i postojećim SoapUI projekti otvoreni u ReadyAPI.
Što je Selenium?
Selenium nije jedan program već obitelj alata za upravljanje preglednikom onako kako bi to činila osoba. Ovdje su važna dva člana:
- Selenium — alat za testiranje koji automatizira preglednike na mnogim platformama.
- Selenium webdriver — upućuje izravne pozive preglednicima, koristeći izvornu podršku svakog preglednika za automatizaciju.
Zašto kombinirati SoapUI i Selenium u jednom testu
Provjera usluge i provjera zaslona obično su dva odvojena zadatka kojima se bave dva odvojena paketa, zbog čega nedostatak u spoju između njih obično preživi oba. Njihovo zajedničko pokretanje zatvara taj jaz.
- Dokažite kružno putovanje. Rezervacija poslana u pregledniku trebala bi se pojaviti u odgovoru usluge. Samo kombinirani test može potvrditi obje polovice.
- Brzo postavite stanje. Stvaranje kupca putem API-ja traje sekundu; stvaranje od jednog do dvanaest polja obrasca traje minutu i češće ne uspijeva.
- Lokalizirajte kvar. Kada korisničko sučelje prikazuje pogrešan ukupan iznos, API tvrdnja u istom pokretanju odmah vam govori je li problem u usluzi ili stranici.
- Ponovno upotrijebite jedan skup podataka. Parovi poštanskog broja i grada u donjem primjeru hrane poziv usluge i mogli bi jednako tako hraniti tvrdnje preglednika.
- Izbrišite duplicirano pokrivanje. Pravila validacije koja su već dokazana na servisnom sloju ne zahtijevaju sporo testiranje preglednika.
Kompromis je teži test: dva alata, dva skupa ovisnosti i dulje trajanje. Zadržite kombinirane testove za nekoliko putovanja koja zaista prelaze granicu, a ostalo ostavite kao čiste... API ili čiste provjere preglednika.
Selenium sa SoapUI
Najjednostavniji i najlakši način integracije Selenium sa SoapUI je koristiti Groovy, Koji SoapUI opsežno podržava.
Groovy je objektno orijentirani skriptni jezik koji uključuje sve Java knjižnice, tako da svaki Java Ključna riječ i funkcija mogu se koristiti u Groovy skriptu izravno. Izvodi se na JVM-u (Java Virtualni stroj), što omogućuje Groovy uđi unutra SoapUI a Java Selenium test za dijeljenje istih klasa.
Preduvjeti za korištenje Selenium sa SoapUI
Instalirajte sljedeće prije pisanja bilo kakvog koda:
⚠️ Napomena o verziji: Groovy 5.0 je trenutno stabilno izdanje i zahtijeva JDK 11 ili noviji, stoga prvo instalirajte JDK, a zatim pustite Groovy verzija slijedi ga. Selenium dodaje se Java projekt kao Maven ili Gradle ovisnost, a ne kao preuzeta mapa, i SoapUI jar mora biti na istoj putanji klase kao i vaš test - ta jedna točka je mjesto gdje većina prvih pokušaja ne uspijeva.
Nazovite SoapUI Izvršitelj testnog slučaja u Selenium
Donji kod poziva SoapUI testni slučaj. Postavlja svojstva za grad i njegov odgovarajući poštanski broj, a kada se izvrši, dohvaća vrijednost svakog grada i poštanskog broja, a zatim izvještava o broju neuspjeha za svaki par koji se ne podudara. Ovaj kod se izvršava u Selenium.
Bilješka: Ovdje se umjesto statičke datoteke svojstava za pohranjivanje poštanskog broja i grada koristi usePropertyFileFlag=true. Poštanski broj i grad se dinamički prenose u vrijeme izvođenja metodom setProjectProperties().
Upute za pokretanje koda:
- Pokrenuti SoapUI.
- Započnite novi testni slučaj.
- Dodavanje novog Groovy korak.
- Kopirajte i zalijepite primjer koda u korak.
- Kliknite na Play.
- Možete vidjeti Firefox pokretanje i navigacija do GoogleNakon toga možete vidjeti SoapUI zapisi u dnevniku.
- Kod se izvršava pomoću JUnit.
Code Primjer
@when("<I use the weather service to get the weather information") public void i_use_the_weather_service_to_get_the_information() { Set<Entry<String, string>> set = zipAndCities.entrySet(); while (iterator,hasNext)) { Entry<String, String> entry = iterator.next(); String zipCode = entry.getkey(); String city = entry.getValue(); String[] prop = {"usePropertyFileFlag=true","zipCode=" +zipCode, "city=" +city}; try{ SoapUITestCaseRunner soapUITestCaseRunner = new SoapUITestCaseRunner(); soapUITestCaseRunner.setProjectFile("src/test/resources/WeatherSoapTest-soapui-project.xml"); soapUITestCaseRunner.setProjectProperties(prop); soapUITestCaseRunner.setTestSuite("TestSuite1"); soapUITestCaseRunner.setTestCase("TestCase1"); soapUITestCaseRunner.run(); } catch (Exception e) { System.err.println("checking" + zipCode + " failed!"); failureCount++; zipCodes.append(zipCode + " [" + city +"] "); e.printStackTrace(); }finally{ totalCount++; } } } }
⚠️ Code note: Ovaj isječak je reproduciran točno onako kako je objavljen i fragment je, a ne kompajlirana klasa. Prije nego što se izgradi, morate deklarirati iterator dobiven iz set.iterator(), točno dok (iterator,imaSljedeće)) do dok (iterator.imaSljedeće()) i unos.dobi_ključ() do unos.uzmiKljuč(), napišite napomenu velikim slovom kao @Kada, uklonite zalutali znak na početku teksta koraka i upotrijebite Niz više nego niz u deklaraciji Set. Izvorni tekst se čuva kako bi objavljeni primjer ostao netaknut.
Prikaz konzole omogućuje vam pregled svih testni slučajs izvršeno. Naći ćete popis poštanskih brojeva i gradova koji su dohvaćeni i proslijeđeni u SoapUI Testni slučaj 1.
Pogled SoapUI Log datoteka
Datoteke zapisnika bilježe svaku radnju koja se dogodi u operativnom sustavu ili softverskoj aplikaciji. Za pregled SoapUI log datoteku, idite u glavni direktorij, gdje ćete vidjeti datoteku pod nazivom soapui.log.
In SoapUI, datoteka zapisnika nalazi se u mapi bin unutar instalacijskog direktorija, na primjer C:\Program Files\SmartBear\soapUI-Pro-4.0.1\bin. Na trenutnoj instalaciji mapa verzije se razlikuje i ReadyAPI Instalacija umjesto toga zapisuje u vlastitu mapu "bin".
Kada otvorite ovu datoteku dnevnika klikom na nju, izgledat će slično kao na slici ispod.
Gdje SoapUI i Selenium Integracija često prekida
Gotovo svaki kvar u ovom trenutku je problem s ožičenjem, a ne problem s testiranjem. Ovo je prvo što treba provjeriti.
| Simptom | Vjerojatni uzrok | Što provjeriti |
|---|---|---|
| NoClassDefFoundError ili ClassNotFoundException na SoapUITestCaseRunner | The SoapUI jar nije na testnoj klasnoj putanji. | Dodaj SoapUI ovisnost od datoteke za izgradnju ili usmjerite putanju klase na jar u SoapUI lib mapa. Nedostajuća jar datoteka pojavljuje se kao obična Selenium izuzetak u konzoli. |
| Datoteka projekta nije pronađena | setProjectFile() razrješuje relativnu putanju prema radnom direktoriju, što se razlikuje između IDE-a i alata za izgradnju. | Pokreni se iz korijena projekta ili proslijedi apsolutnu putanju. |
| Testni paket ili testni slučaj nije pronađen | Imena u setTestSuite() i setTestCase() moraju točno odgovarati projektu. | Prepišite imena direktno iz SoapUI stablo projekta; razlikuju velika i mala slova. |
| Nekretnina nikada ne ispunjava zahtjev | Funkcija setProjectProperties() se pokrenula nakon funkcije run() ili zahtjev ne referencira svojstvo. | Postavite svako svojstvo prije run() i koristite sintaksu rezerviranog mjesta za svojstvo unutar zahtjeva. |
| Preglednik se ne pokreće | Upravljački program i instalirani preglednik su različitih glavnih verzija. | Dopustite da vas Selenium Upravitelj rješava upravljački program ili ga usklađuje s verzijom preglednika. |
| Funkcija radi u IDE-u, ali ne i iz samog runnera. | Korak se oslanja na značajku samo za Pro, kao što je izvor podataka. | Potvrdite licencu ili ponovno izgradite korak s ekvivalentima otvorenog koda. |
Nakon što trkač završi čisto i soapui.log prikaže očekivane unose, integracija radi i može se sklopiti u širi ispitivanje automatizacije o.



