Kasutamine SoapUI koos Selenium veebiteenuste testimiseks
⚡ Nutikas kokkuvõte
SoapUI koos Selenium võimaldab ühel komplektil kontrollida veebiteenust ja seda tarbivat brauserit. Groovy on sild, sest SoapUI jookseb Groovy pärismaiselt ja Groovy jõuab igale Java raamatukogu Selenium laevad.
SoapUI on kõige populaarsem avatud lähtekoodiga funktsionaalne testimine vahend API testimine. See pakub täielikku testi katvus ja toetab kõiki standardprotokolle ja tehnoloogiaid.
Mis on SEEP?
SOAP on lihtne XML-põhine protokoll. See võimaldab rakendustel HTTP kaudu teavet vahetada. See kasutab veebiteenuseid. Descriptioonkeel (WSDL) suhtluskeeleks ja teised rakendused saavad omavahel suhelda veebiteenused selle WSDL-liidese kaudu.
SOAP vs REST veebiteenused SoapUI
SoapUI algas SOAP-kliendina ja nimi ütleb seda siiani, aga see testib ka REST-i lõpp-punkte. See, millisele stiilile osutate, määrab testi ülesehituse.
| Aspekt | SOAP | REST |
|---|---|---|
| koostract | WSDL-fail kirjeldab iga toimingut, seega SoapUI saab päringuid automaatselt genereerida. | Tavaliselt OpenAPI või Swaggeri definitsioon või puudub ametlik kinnitustract üldse. |
| Sõnumi vorming | Ainult XML-ümbrik. | Tavaliselt JSON, kuigi lubatud on XML ja muud vormingud. |
| Transport | Enamasti HTTP, aga SOAP on transpordist sõltumatu. | HTTP, meetodiga ja URL kavatsust kandes. |
| Väited SoapUI | XPath ja XQuery vastavad vastuse ümbrikule. | JSONPathi ja skripti väited vastavad kasulikule koormusele. |
| Tüüpiline kasutamine | Pangandus, telekommunikatsioon ja muud teenusedtract-rasked ettevõtte integratsioonid. | Avalikud ja mobiilile suunatud teenused, kus kasulik koormus on väike. |
Allolev läbikäik kasutab SOAP ilmateenust, kuid sama käivitajaklass käivitab REST-testi ilma muudatusteta. Java kood.
Mis on SOAPUI?
SEEBI on avatud lähtekoodiga platvormideülene veebiteenuste testimise tööriist. SOAPUI-Pro versioonil on lisafunktsionaalsus ettevõtetele, kes tegelevad kriitiliste veebiteenustega. Veebiteenused mängivad olulist rolli internetirakendustes.
⚠️ Toote nime märkus: SmartBeari tootmine lõpetatud SoapUI Pro eraldiseisva tootena ja ühendas selle koos LoadUI Pro ja ServiceV Proga üheks tervikuks. ReadyAPITasuta väljaanne säilitab SoapUI nimi ja see on endiselt aktiivselt välja antud. Allolevad sammud toimivad mõlemas ja olemasolevas SoapUI projektid avatakse ReadyAPI.
Mis on Selenium?
Selenium ei ole üks programm, vaid tööriistade perekond, mis juhib brauserit inimese kombel. Siin on olulised kaks liiget:
- Selenium — testimisvahend, mis automatiseerib brausereid paljudel platvormidel.
- Selenium Veebidraiver — see teeb otsekõnesid brauseritele, kasutades iga brauseri loomulikku automatiseerimise tuge.
Miks kombineerida SoapUI ja Selenium ühes testis
Teenuse ja ekraani kontrollimine on tavaliselt kaks eraldi tööd, millega tegelevad kaks eraldi komplekti, mistõttu nendevahelise õmbluse defekt kipub mõlemat üle elama. Nende koos käitamine täidab selle tühimiku.
- Tõesta edasi-tagasi reis. Brauseris esitatud broneering peaks teenuse vastuses ilmuma. Ainult kombineeritud test saab kinnitada mõlemat poolt.
- Seadista kiiresti olek. Kliendi loomine API kaudu võtab sekundi; ühe kuni kaheteistkümne vormivälja loomine võtab minuti ja ebaõnnestub sagedamini.
- Lokaliseeri rike. Kui kasutajaliides kuvab vale summa, annab sama käivitamise API väide kohe teada, kas viga on teenuses või lehel.
- Kasutage ühte andmekogumit uuesti. Allolevas näites olevad postiindeksi ja linna paarid edastavad teenusekutset ja võivad samamoodi edastada brauseri väiteid.
- Lõika topeltkajastus välja. Teenusekihis juba tõestatud valideerimisreeglid ei vaja iga kord aeglase brauseri testi.
Kompromiss on raskem test: kaks tööriista, kaks sõltuvuste komplekti ja pikem testimisperiood. Hoidke kombineeritud testid käputäie jaoks, mis piiri ületavad, ja jätke ülejäänu puhtaks. API või puhtad brauserikontrollid.
Selenium koos SoapUI
Lihtsaim ja lihtsaim viis integreerimiseks Selenium koos SoapUI on kasutada Groovy, Mis SoapUI toetab ulatuslikult.
Groovy on objektorienteeritud skriptimiskeel, mis sisaldab kõiki Java raamatukogud, seega iga Java märksõna ja funktsiooni saab kasutada a-s Groovy skripti otse. See töötab JVM-is (Java virtuaalmasin), mis võimaldab Groovy astu sisse SoapUI ja Java Selenium test samade klasside jagamiseks.
Eeltingimused kasutamiseks Selenium koos SoapUI
Enne mis tahes koodi kirjutamist installige järgmine:
⚠️ Versiooni märkus: Groovy 5.0 on praegune stabiilne versioon ja nõuab JDK 11 või uuemat, seega installige esmalt JDK ja laske sellel Groovy versioon järgi seda. Selenium lisatakse a-le Java projekti Mavenina või Gradle sõltuvusena, mitte allalaaditud kaustana, ja SoapUI jar peab asuma samal classpath'il kui sinu test – see üks punkt on koht, kus enamik esimesi katseid ebaõnnestub.
Helistage SoapUI Testijuhtumi käivitaja sees Selenium
Allolev kood kutsub esile a SoapUI testjuhtum. See määrab linna ja vastava postiindeksi omadused ning käivitamisel hangib iga linna ja postiindeksi väärtuse ja seejärel teatab iga mittevastava paari ebaõnnestumiste arvu. See kood töötab Selenium.
Märge: Postiindeksi ja linna salvestamiseks kasutatakse siin staatilise atribuutide faili asemel usePropertyFileFlag=true. Postiindeks ja linn edastatakse käitusajal dünaamiliselt meetodi setProjectProperties() abil.
Juhised koodi käivitamiseks:
- Käivitamine SoapUI.
- Alusta uut testijuhtumit.
- Lisa uus Groovy samm
- Kopeeri ja kleebi näidiskood etappi.
- Klõpsake nuppu Esita.
- Näete Firefox käivitamine ja sinna navigeerimine GooglePärast seda näete SoapUI logikirjed.
- Kood töötab, kasutades JUnit.
Code Näide
@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 märkused: See koodijupp reprodutseeritakse täpselt avaldatud kujul ja on pigem fragment kui kompileeritav klass. Enne selle loomist peate deklareerima iteraatori, mis on saadud set.iterator(), õige samal ajal kui (iteraator, onJärgmine) et samal ajal kui (iterator.hasNext()) ja kirje.getkey() et kirje.getKey(), suurtähtedega märkus @Millal, eemaldage sammuteksti alguses olev hulkuv märk ja kasutage nöör mitte nöör deklaratsioonis Set. Algtekst säilitatakse, seega avaldatud näide jääb puutumata.
Konsoolivaade võimaldab teil heita pilgu kõigile testjuhtums käivitatakse. Leiate nimekirja postiindeksitest ja linnadest, mis on alla laaditud ja edastatud. SoapUI Testjuhtum 1.
vaade SoapUI Logifail
Logifailid salvestavad kõik operatsioonisüsteemis või tarkvararakenduses toimuvad toimingud. Nende vaatamiseks SoapUI logifaili, minge peakataloogi, kus näete faili nimega soapui.log.
In SoapUI, asub logifail installikataloogi kaustas bin, näiteks C:\Program Files\SmartBear\soapUI-Pro-4.0.1\bin. Praeguse installi versioonikaust on erinev ja a ReadyAPI installimine kirjutab hoopis omaette prügikasti.
Kui avate selle logifaili sellel klõpsates, näeb see välja sarnane alloleva ekraanipildiga.
Kus SoapUI ja Selenium Integratsioon sageli katkeb
Peaaegu iga rike on sel hetkel pigem juhtmestiku kui testi probleem. Neid tuleks kõigepealt kontrollida.
| Sümptom | Tõenäoline põhjus | Mida kontrollida |
|---|---|---|
| NoClassDefFoundError või ClassNotFoundException on sisse lülitatud SoapUITestCaseRunner | . SoapUI jar-faili ei ole test classpath-is. | Lisa SoapUI sõltuvus ehitusfailist või osuta klassiteel JAR-failile SoapUI lib kaust. Puuduv purk ilmub tavalise Selenium erand konsoolis. |
| Projektifaili ei leitud | setProjectFile() lahendab töökataloogi suhtes suhtelise tee, mis erineb IDE ja ehitustööriista vahel. | Käivita projekti juurest või edasta absoluutne tee. |
| Testikomplekti või testijuhtumit ei leitud | Funktsioonides setTestSuite() ja setTestCase() olevad nimed peavad projektiga täpselt sobima. | Kopeeri nimed otse tabelist välja SoapUI projektipuu; need on tõstutundlikud. |
| Kinnistu ei jõua kunagi päringule | setProjectProperties() käivitati pärast run() või päring ei viita sellele atribuudile. | Määrake iga omadus enne funktsiooni run() ja kasutage päringu sees omaduse kohatäite süntaksit. |
| Brauser ei käivitu | Draiver ja installitud brauser on erinevatest põhiversioonidest. | Laskma Selenium Haldur lahendab draiveri või sobitab draiveri brauseri versiooniga. |
| Funktsioon töötab IDE-s, aga mitte jooksjast | See samm tugineb ainult Pro-le mõeldud funktsioonile, näiteks andmeallikale. | Kinnitage litsents või looge etapp uuesti avatud lähtekoodiga ekvivalentidega. |
Kui jooksja väljub puhtalt ja soapui.log kuvab oodatud kirjeid, töötab integratsioon ja seda saab laiemaks kokku voltida. automaatika testimine kohta.



