Automaattinen testaus on kriittinen osa testausprosessia. ohjelmistojen laadunvalvonta . Mutta REST (API) -sovellusliittymien testaaminen voi olla hankalaa. Monet niistä, jotka käyttävät manuaalista REST API -testausta, unohtavat yksityiskohdat ja kaipaavat tapoja säästää aikaa.
Kaikilla onnistuneesti testatuilla REST API -palveluilla on seuraavat alueet:
Tätä varten tarvitset oikeat työkalut. Apache JMeter ja REST Assured ovat kaksi suosittua REST-testaustyökalua REST API -palvelujen testaamiseen. Voit oppia lisää siitä, miten voit käyttää niitä käytännössä tässä Y tässä .
Tässä artikkelissa opit näiden kahden työkalun edut ja haitat sekä sen, missä ne sopivat parhaiten olemassa oleviin REST API -projekteihisi.
Edellytys on: JMeter ja REST Assured edellyttävät Java-sovellusta, joten Java-tietokoneeseen on oltava asennettuna, jotta JMeter tai REST Assured voidaan suorittaa.
Apache JMeterin asentaminen on hyvin yksinkertaista: siirry kohtaan lataussivu , valitse ZIP tai TAR, lataa tiedosto, pura se ja olet valmis menemään.
Siirry kansioon, josta olet purkanut tiedoston, alikansioon bin
ja suorita jmeter.bat
(tai vastaavaa käyttöjärjestelmällesi, jos se ei ole Windows). Katso tarkempia tietoja Apache JMeterin määrittämisestä tästä sivu .
REST Assuredin asentaminen on hieman erilainen kokemus. REST Assured ei ole itsenäinen työkalu. Se on Java-kirjasto. Jos haluat käyttää sitä, sinun on määritettävä uusi Java-projekti ja sisällytettävä se projektisi kirjastoksi. Tietysti on tukea monille käännöstyökaluille, joten voit vain osoittaa riippuvuusratkaisijasi johonkin julkiseen arkistoon (Maven). Löydät tarkempia tietoja REST Assured -ohjelman määrittämisestä [täältä] (https://semaphoreci.com/community/tutorials/testing-rest-endpoints-using-rest-assured.
Apache JMeter dokumentointi se löytyy viralliselta JMeter-verkkosivustolta. Tarjoaa melko kattavan dokumentaation alusta asti monimutkaisiin toimintoihin, kuten kuuntelijat. JMeterin virallisilta verkkosivuilta löydät myös linkkejä erittäin rikkaisiin resursseihin, kuten opetusvideoihin. Jos haluat lukea vähemmän ja katsella enemmän, tämä on ehdottomasti bonus sinulle.
dokumentointi REST Assuredista, kuten itse työkalu / kirjasto, löytyy Github-arkistosta. Siinä on laaja luettelo online-dokumentaatiossa luetelluista ominaisuuksista, joissa on erittäin yksityiskohtaiset selitykset siitä, miten saavuttaa jotain. Kaikki dokumentaatio on kuitenkin loistava verkkosivu, ei helpoin tapa tutkia työkalua.
Apache JMeter, erillisenä sovelluksena, jossa on graafinen käyttöliittymä (GUI), antaa sinun luoda testisi graafisesta käyttöliittymästä. Tästä voi olla hyötyä varsinkin JMeteristä tuotujen entiteettien hierarkian vuoksi - kaikki testissä luomasi näytetään puumaisessa esityksessä JMeter-käyttöliittymässä.
Testin luomiseksi ei tarvitse olla koodaustaitoja. GUI ei kuitenkaan rajoita mitään testaussuunnittelun mahdollisuuksia. Jos haluat silti lisätä mukautettua aikataulua / kulkua, BeanShell-komponentit antavat sinun tehdä sen.
Kun tallennat JMeter-projektisi, kaikki luomasi tallennetaan suureen XML-tiedostoon (laajennuksella .jmx
). Yleensä jopa pienen muutoksen saamiseksi johonkin testeistä joudut (todennäköisesti) avaamaan projektin uudelleen käyttöliittymässä muutoksen tekemiseksi.
Jos sinun on tehtävä yhteistyötä muiden kanssa samalla JMeter-projektitiedostolla, tätä suurta XML-tiedostoa ei ole helppo ylläpitää millä tahansa lähdeohjauksen hallintajärjestelmällä (kuten Git, SVN, Perforce jne.).
REST Assured toisaalta vaatii Java-koodaustaitoja testien luomiseen. Testien luomiseen ei ole helppokäyttöistä käyttöliittymää. REST Assured -sovelluksen avulla voit kuitenkin kirjoittaa testit Gherkin-kielellä (Given-When-Then-syntaksilla), joten vaikka tarvitset Java-koodaustaitoja, testit ovat melko luettavissa.
given(http://via.placeholder.com/2000x200?text=image+placeholder). config(RestAssured.config(http://via.placeholder.com/2000x200?text=image+placeholder).jsonConfig(jsonConfig(http://via.placeholder.com/2000x200?text=image+placeholder).numberReturnType(BIG_DECIMAL))). when(http://via.placeholder.com/2000x200?text=image+placeholder). get(“/price”). then(http://via.placeholder.com/2000x200?text=image+placeholder). body(“price”, is(new BigDecimal(12.12)));
Koska REST Assured on kirjasto ja testit on kirjoitettu Java-kielellä, voit järjestää testit erillisiksi Java-tiedostoiksi, joten kun sinun on vaihdettava testiä, sinun on avattava vain yksi tiedosto. Et tarvitse graafista käyttöliittymää, joten voit muokata testiä helposti jopa SSH-päätelaitteen kautta. Yhteistyö muiden kanssa on melko yksinkertaista, koska Java-tiedostoja on helppo ylläpitää millä tahansa SCM: llä.
JMeter on tunnettu suorituskyvyn testaustyökaluna verkkopalvelujen ja -sovellusten testaamiseen. Siinä on hyvät vaihtoehdot heti, kuten raportit, joissa on erityyppisiä kaavioita, joiden avulla voit näyttää suorituskykytestitiedot.
Toisaalta, se ei ole myöskään JMeterin pääkäyttökenaario. Voit luoda toiminnallisia testejä REST-sovellusliittymälle JMeterin avulla, mukaan lukien vastauksen väittäminen.
REST Assuredin ensisijainen käyttöskenaario on REST API -palvelujen toiminnallinen testaus. Siinä on jopa oma vastausvahvistusmekanisminsa (Gherkinin syntaksit). Koska REST Assured on Java-kirjasto, se voidaan helposti integroida yksikkötesteihin.
Vertailuarvojen osalta REST Assured ei tue valmiita vertailuarvoja. Jos kuitenkin haluat käyttää sitä suorituskyvyn testaamiseen, sinun on kehitettävä oma mukautettu kehys suorituskyvyn testaamiseen REST Assured -palvelussa.
JMeter-testeihin voidaan vedota kahdella tavalla.
Napsauta käyttöliittymästä Suorita-painiketta:
Komentoriviltä:
jmeter -n -t your_script.jmx
JMeterin virallinen suositus ei ole suorittaa suoritustestejä käyttöliittymällä, koska testit suoritetaan hitaammin (pyyntöjen määrää sekunnissa) verrattuna niiden suorittamiseen komentoriviltä.
REST Assured puolestaan edellyttää erillistä testijuoksijaa, esimerkiksi jUnit tai TestNG (tai millä tahansa muulla tavalla Java-koodin suorittamiseksi).
Eclipsestä TestNG: n avulla:
Komentoriviltä esimerkiksi Ant-rakennustyökalu:
ant run-tests
Apache JMeterillä on pääasiallisen tarkoituksensa vuoksi suuri määrä raporttityyppejä, jotka voit luoda testien tuloksista. Koska suorituskykytestejä voidaan suorittaa JMeteristä, suorituskykymittarit näytetään yleensä seuraavanlaisten kaavioiden avulla:
Voit oppia lisää JMeter-raporteista ja niiden tyypeistä, joista voit luoda tässä .
REST Assured ei luo raportteja, joten se on sinun ja valitsemasi testauskehyksen tehtävä. Integroituna joihinkin yksikkötestauskehyksiin saat kuitenkin hyödyllisiä raportteja HTML-, teksti- tai XML-muodossa.
Testattavien tuotteiden jatkuvan integroinnin osalta on erittäin tärkeää integroida testausautomaatiokehyksesi CI-työkaluihin sekä testien suorittamista että tulosten raportointia varten.
JMeterin automaattiset testit voidaan integroida helposti Jenkinsin kanssa laajennuksen suorituskyky joiden avulla voit määrittää Post-build-toiminnot ja saada mukavan hallintapaneelisivun Jenkins-työsivulta.
REST Assured voidaan myös helposti integroida Jenkinsin kanssa, koska Jenkinsillä on laajennuksia melkein kaikille testikehyksille; Esimerkiksi hän laajennus TestNG mikä taas voi luoda vankan trendikaavion testituloksille.
Tämä on luokka, jota ei voida helposti mitata. Yhteisön toiminta riippuu useista tekijöistä, kuten työkalun vanhentumisesta tai osallistujien lukumäärästä.
Apache JMeterillä on nykyään suurempi yhteisö. Tämä johtuu pääasiassa siitä, että JMeter tuotiin markkinoille kauan sitten ja sitä pidetään alan standardina verkkopalvelujen ja -sovellusten suorituskyvyn testauksessa. JMeter julkaisee viralliset julkaisut 5-6 kuukauden välein . hänen GitHub-arkisto on erittäin aktiivinen, uusia vahvistuksia päivittäin. JMeter käyttää Bugzillaa ongelmanseuraajana ja sillä on luettelo avoimista asioista joita vaihdetaan usein. Haulla on yli 23000 tulosta JMeterille Pino ylivuoto . JMeterillä on sosiaalisen verkostoitumisen sivustoilla virallinen tili Viserrys . Facebookissa ja LinkedInissä ei ole virallista tiliä JMeterille, mutta on olemassa kaksi ryhmää, joista suurin on tämä facebook-ryhmä ja tämä LinkedIn-ryhmä .
REST Assured on saavuttamassa päävaiheen ja siitä on tullut ensimmäinen valinta, monilähdeinen suositus REST API -palvelun toiminnallisen testauksen automatisoinnissa. REST Assured on lähettänyt viestiä viralliset tiedotteet kerran kuussa kuukaudessa kahden viime vuoden ajan. GitHub-arkisto Sillä on paljon avustajia ja se on vähän vähemmän aktiivinen kuin JMeter, mutta se on myös erittäin aktiivinen. REST Assured seuraa ongelmia GitHub-arkistossa, joten kaikki on yhdessä paikassa. Sisään Pino ylivuoto , REST Assured -tuloksia on yli 2000, joten voimme sanoa, että se on huomattavasti alhaisempi verrattuna JMeter-hakutuloksiin. Mitä tulee sosiaalisen median ryhmiin, vain LinkedIn-ryhmä tuli huomattavasti vähemmän jäseniä kuin JMeter. REST Assured -yhteisö ei välttämättä ole yhtä suuri kuin JMeter-yhteisö, mutta se on hyvin aktiivinen.
Sekä JMeterillä että REST Assuredilla on etunsa toisiinsa nähden. Mutta projektista riippuen, jossa työskentelet, yksi on parempi kuin toinen REST API -testiautomaatiollesi. Molemmat ovat erittäin vankkoja, niillä on hyödyllisiä testausvaihtoehtoja, niillä on hyvät raportointimahdollisuudet ja ne voidaan helposti integroida mukautettuihin testauskehyksiin.
Tässä on yhteenveto kaikista tässä artikkelissa tutkituista vertailukriteereistä näille kahdelle suositulle REST-testaustyökalulle:
Apache JMeter | Vakuutan | |
---|---|---|
Edellyttää koodaustaitoja | Ei | Kyllä (Java) |
Koko asiak | Joo | Joo |
Toiminnallinen testaus | Kyllä (mutta liiallinen) | Joo |
Suorituskykytesti | Joo | Ei (pakkauksesta) |
Soveltuu SCM: lle (Git, P4 ...) | Ei | Joo |
Testiraportit | Joo | Ei |
Integrointi CI-työkaluihin | Joo | Joo |
Integrointi yksikötesteihin | Ei | Joo |
Testaa rinnakkaisuus | Joo | Joo |
Yhteisön toiminta | Joo | Joo |