Utilizarea SoapUI implementate cu Selenium pentru testarea serviciului web
⚡ Rezumat inteligent
SoapUI implementate cu Selenium permite unei suite să verifice un serviciu web și browserul care îl consumă. Groovy este podul, pentru că SoapUI ruleaza Groovy nativ și Groovy ajunge la fiecare Java bibliotecă Selenium nave.

SoapUI este cea mai populară sursă deschisă testarea funcțională instrument pentru Testare API. Oferă complet acoperirea testului și acceptă toate protocoalele și tehnologiile standard.
Ce este SAPUNUL?
SOAP este un protocol simplu bazat pe XML. Permite aplicațiilor să facă schimb de informații prin HTTP. Folosește serviciile web Descriptlimbajul ion (WSDL) pentru comunicare, iar alte aplicații pot interacționa cu servicii web prin intermediul acelei interfețe WSDL.
Servicii web SOAP vs. REST în SoapUI
SoapUI a început ca un client SOAP, iar numele său încă spune asta, dar testează și endpoint-uri REST. Cunoașterea stilului la care se face referire decide modul în care este construit testul.
| Aspect | SOAP | REST |
|---|---|---|
| cutract | Un fișier WSDL descrie fiecare operație, deci SoapUI poate genera automat cereri. | De obicei, o definiție OpenAPI sau Swagger sau nicio contravenție formală.tracdeloc. |
| Format mesaj | Numai plic XML. | De obicei JSON, deși XML și alte formate sunt permise. |
| Transport | Cel mai adesea HTTP, dar SOAP este independent de transport. | HTTP, cu metoda și URL purtând intenția. |
| Afirmații în SoapUI | XPath și XQuery se potrivesc cu plicul de răspuns. | Aserțiunile JSONPath și script se potrivesc cu sarcina utilă. |
| Utilizare tipică | Servicii bancare, telecomunicații și alte afaceritracintegrări enterprise heavy-t. | Servicii publice și mobile unde sarcinile utile rămân ușoare. |
Ghidul de mai jos folosește un serviciu meteo SOAP, dar aceeași clasă de alergători conduce un caz de testare REST fără nicio modificare a Java cod.
Ce este SOAPUI?
SOAPUI este un instrument open source de testare a serviciilor web, multiplatformă. Ediția SOAPUI-Pro are funcționalități suplimentare pentru companiile care se ocupă de servicii web critice. Serviciile web joacă un rol semnificativ în aplicațiile de internet.
⚠️ Notă privind numele produsului: SmartBear a fost întrerupt SoapUI Pro ca produs independent și l-a fuzionat, împreună cu LoadUI Pro și ServiceV Pro, în ReadyAPIEdiția gratuită păstrează SoapUI nume și este încă lansat activ. Pașii de mai jos funcționează în ambele cazuri și în cele existente SoapUI proiecte deschise în ReadyAPI.
Ce Este Selenium?
Selenium nu este un singur program, ci o familie de instrumente pentru a conduce un browser așa cum ar face-o o persoană. Doi membri contează aici:
- Selenium — un instrument de testare care automatizează browserele pe multe platforme.
- Selenium webdriver — efectuează apeluri directe către browsere, utilizând suportul nativ al fiecărui browser pentru automatizare.
De ce Combina SoapUI și Selenium într-un singur test
Verificarea serviciului și verificarea ecranului sunt de obicei două sarcini separate, gestionate de două suite separate, motiv pentru care un defect în legătura dintre ele tinde să supraviețuiască ambelor. Rularea lor împreună elimină această diferență.
- Dovediți călătoria dus-întors. O rezervare trimisă în browser ar trebui să apară în răspunsul serviciului. Doar un test combinat poate activa ambele jumătăți.
- Configurați rapid starea. Crearea unui client prin intermediul API-ului durează o secundă; crearea unuia până la doisprezece câmpuri de formular durează un minut și eșuează mai des.
- Localizați o defecțiune. Când interfața cu utilizatorul afișează un total greșit, aserțiunea API din aceeași rulare vă spune imediat dacă serviciul sau pagina este de vină.
- Reutilizați un set de date. Perechile cod poștal și oraș din exemplul de mai jos alimentează apelul de serviciu și ar putea, în egală măsură, alimenta aserțiunile browserului.
- Reduceți acoperirea duplicată. Regulile de validare deja dovedite la nivelul serviciului nu necesită fiecare test lent al browserului.
Compromisul este un test mai dificil: două instrumente, două seturi de dependențe și o durată mai lungă de funcționare. Păstrați testele combinate pentru puținele călătorii care depășesc cu adevărat granița și lăsați restul ca fiind pure. API sau verificări pure ale browserului.
Selenium implementate cu SoapUI
Cel mai simplu și mai ușor mod de integrare Selenium implementate cu SoapUI este de a folosi Groovy, Care SoapUI susține pe scară largă.
Groovy este un limbaj de scripting orientat pe obiecte care include toate Java biblioteci, deci fiecare Java cuvântul cheie și funcția pot fi utilizate într-un Groovy script direct. Rulează pe JVM (Java Mașină virtuală), care este ceea ce permite o Groovy pășește înăuntru SoapUI și Java Selenium test pentru a partaja aceleași clase.
Condiții preliminare pentru utilizare Selenium implementate cu SoapUI
Instalați următoarele înainte de a scrie orice cod:
⚠️ Notă privind versiunea: Groovy 5.0 este versiunea stabilă actuală și necesită JDK 11 sau o versiune ulterioară, așa că instalați mai întâi JDK-ul și lăsați Groovy versiunea o urmează. Selenium se adaugă la a Java proiect ca Maven sau Gradle dependență, mai degrabă decât ca un folder descărcat, și SoapUI jar trebuie să se afle pe aceeași cale de clasă ca și testul tău — acel punct este locul în care majoritatea primelor încercări eșuează.
Suna SoapUI Executor de teste în Selenium
Codul de mai jos apelează un SoapUI caz de testare. Acesta setează proprietățile pentru un oraș și codul poștal corespunzător, iar când se execută, preia valoarea fiecărui oraș și cod poștal, apoi raportează numărul de erori pentru fiecare pereche care nu se potrivește. Acest cod rulează în Selenium.
Notă: Aici se folosește usePropertyFileFlag=true în locul unui fișier de proprietăți static pentru stocarea codului poștal și a orașului. Codul poștal și orașul sunt transmise dinamic la momentul execuției prin metoda setProjectProperties().
Instrucțiuni pentru rularea codului:
- Lansare SoapUI.
- Începeți un nou caz de testare.
- Adăugați o nouă Groovy Etapa.
- Copiați și lipiți codul exemplu în pas.
- Faceți clic pe Play.
- Poti sa vezi Firefox pornirea și navigarea către GoogleDupă aceea, puteți vedea SoapUI intrări în jurnal.
- Codul rulează folosind JUnit.
Code Exemplu
@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: Acest fragment este reprodus exact așa cum a fost publicat și este un fragment mai degrabă decât o clasă compilabilă. Înainte de a fi construit, trebuie să declarați iteratorul obținut din set.iterator(), corect în timp ce (iterator, areUrmătorul)) la în timp ce (iterator.hasNext()) și intrare.getkey() la intrare.getKey(), scrieți adnotarea cu majusculă ca @Când, eliminați caracterul rătăcit de la începutul textului pasului și utilizați Şir mai degrabă decât şir în declarația Set. Textul original este păstrat, astfel încât exemplul publicat să rămână intact.
Vizualizarea consolei vă permite să aruncați o privire asupra tuturor caz de testareexecutat. Veți găsi o listă a codurilor poștale și a orașelor preluate și transmise în SoapUI Cazul de testare 1.
Vizualizare SoapUI Fișier jurnal
Fișierele jurnal înregistrează fiecare acțiune care are loc într-un sistem de operare sau într-o aplicație software. Pentru a vizualiza SoapUI fișierul jurnal, accesați directorul principal, unde veți vedea un fișier numit soapui.log.
In SoapUI, fișierul jurnal se află în folderul bin din directorul de instalare, de exemplu C:\Program Files\SmartBear\soapUI-Pro-4.0.1\bin. La o instalare curentă, folderul versiunii diferă și a ReadyAPI instalarea scrie în propriul folder bin.
Când deschideți acest fișier jurnal făcând clic pe el, acesta va arăta similar cu captura de ecran de mai jos.
Unde SoapUI și Selenium Integrarea se întrerupe frecvent
Aproape fiecare defecțiune în acest moment este o problemă de cablare, mai degrabă decât o problemă de testare. Acestea sunt cele care trebuie verificate primele.
| Simptom | Cauza probabila | Ce să verific |
|---|---|---|
| NoClassDefFoundError sau ClassNotFoundException activată SoapUITestCaseRunner | SoapUI jar nu se află pe calea de clasă de testare. | Adauga SoapUI dependență față de fișierul de compilare sau să indice calea de clasă către fișierul jar din SoapUI folderul lib. Un jar lipsă apare ca un fișier obișnuit Selenium excepție în consolă. |
| Fișierul proiectului nu a fost găsit | setProjectFile() rezolvă o cale relativă în funcție de directorul de lucru, ceea ce diferă între un IDE și un instrument de compilare. | Execută de la rădăcina proiectului sau transmite o cale absolută. |
| Suita de teste sau cazul de testare nu a fost găsit | Numele din setTestSuite() și setTestCase() trebuie să corespundă exact proiectului. | Copiați numele direct din SoapUI arborele proiectului; acestea sunt sensibile la majuscule/minuscule. |
| Proprietatea nu răspunde niciodată solicitării | Funcția setProjectProperties() a fost executată după run() sau cererea nu face referire la proprietate. | Setați fiecare proprietate înainte de run() și utilizați sintaxa substituenților de proprietate în cadrul cererii. |
| Browserul nu pornește | Driverul și browserul instalat sunt versiuni majore diferite. | Lăsa Selenium Managerul rezolvă driverul sau potrivește driverul cu versiunea browserului. |
| O funcționalitate funcționează în IDE, dar nu din runner | Pasul se bazează pe o funcție exclusivă pentru versiunea Pro, cum ar fi o sursă de date. | Confirmați licența sau reconstruiți pasul cu echivalente open-source. |
Odată ce rulerul se termină fără probleme și soapui.log afișează intrările așteptate, integrarea funcționează și poate fi inclusă într-un ansamblu mai larg. testarea automatizării pe.



