Automatisert testing er en kritisk komponent i testprosessen. programvarekvalitetskontroll . Men å teste REST-APIer (Representational State Transfer) kan være vanskelig. Mange av de som bruker manuell REST API-testing overser detaljene og går glipp av måter å spare tid på.
Enhver REST API-tjeneste som er vellykket testet, dekker disse områdene:
For dette trenger du de riktige verktøyene. Apache JMeter og REST Assured er to populære REST-testverktøy for testing av REST API-tjenester. Du kan lære mer om hvordan du kan bruke dem i praksis fra her Y her .
I denne artikkelen vil du lære fordeler og ulemper med disse to verktøyene og hvor de passer best i dine eksisterende REST API-prosjekter.
Det er en forutsetning: JMeter og REST Assured krever Java, så du må ha Java installert på datamaskinen din for å kunne kjøre JMeter eller REST Assured.
Installere Apache JMeter er veldig enkelt: gå til nedlastingsside , velg ZIP eller TAR, last ned filen, pakk den ut og du er klar til å gå.
Gå til mappen der du har pakket ut filen, til undermappen bin
og løp jmeter.bat
(eller lignende for operativsystemet ditt, hvis det ikke er Windows). For mer detaljert informasjon om hvordan du konfigurerer Apache JMeter, se dette side .
Installasjon av REST Assured er litt av en annen opplevelse. REST assured er ikke et frittstående verktøy. Det er et Java-bibliotek. For å bruke det, må du sette opp et nytt Java-prosjekt og inkludere det som et bibliotek for prosjektet ditt. Selvfølgelig er det støtte for mange kompileringsverktøy, så du kan bare peke avhengighetsløseren din til et offentlig depot (Maven). Du finner mer detaljert informasjon om hvordan du konfigurerer REST Assured [her] (https://semaphoreci.com/community/tutorials/testing-rest-endpoints-using-rest-assured.
Apache JMeter dokumentasjon den finnes på det offisielle JMeter-nettstedet. Tilbyr ganske omfattende dokumentasjon fra begynnelsen til komplekse funksjoner som lyttere. På det offisielle JMeter-nettstedet kan du også finne lenker til noen veldig rike ressurser, for eksempel opplæringsvideoer. Hvis du liker å lese mindre og se mer, er dette definitivt en bonus for deg.
De dokumentasjon fra REST Assured, som selve verktøyet / biblioteket, finnes i Github-depotet. Den har en stor liste over funksjoner oppført i den elektroniske dokumentasjonen med veldig detaljerte forklaringer på hvordan du kan oppnå noe. Imidlertid er all dokumentasjonen en flott webside, ikke den enkleste måten å utforske et verktøy på.
Apache JMeter, som et frittstående program med et grafisk brukergrensesnitt (GUI), lar deg lage tester fra GUI. Dette kan være nyttig, spesielt på grunn av hierarkiet over enheter introdusert fra JMeter - alt du oppretter i testen vil bli vist i en trelignende representasjon i JMeter GUI.
For å lage en test, trenger man ikke ha noen kodingsferdigheter. GUI begrenser imidlertid ikke noen av mulighetene med hensyn til testplanlegging. Hvis du fremdeles vil legge til noen egendefinert tidsplan / flyt, vil BeanShell-komponentene tillate deg å gjøre det.
Når du lagrer JMeter-prosjektet ditt, lagres alt du har opprettet i en stor XML-fil (med utvidelsen .jmx
). Generelt, selv for en liten endring av en av testene, vil du (mest sannsynlig) måtte åpne prosjektet i GUI for å gjøre endringen.
Hvis du trenger å samarbeide med andre om den samme JMeter-prosjektfilen, vil ikke denne store XML-filen være enkel å vedlikeholde ved hjelp av noen av SCM-systemene (som Git, SVN, Perforce, etc.).
REST Assured krever derimot Java-kodingsferdigheter for å lage testene. Det er ingen enkel å bruke GUI for å lage tester. Imidlertid lar REST Assured deg å skrive testene ved hjelp av Gherkin-språket (Gitt-Når-Så-syntaksen), så selv om du trenger noen Java-kodingsferdigheter, er testene ganske lesbare.
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)));
Siden REST Assured er et bibliotek og testene faktisk er skrevet i Java, kan du organisere testene dine i separate Java-filer, så når du trenger å endre en test, trenger du bare å åpne en fil. Du trenger ikke en GUI, så du kan enkelt redigere testen selv gjennom en SSH-terminal. Samarbeid med andre er ganske enkelt fordi Java-filer er enkle å vedlikeholde ved bruk av hvilken som helst SCM.
JMeter er kjent som et ytelsesprøveverktøy for testing av nettjenester og applikasjoner. Det har gode alternativer ut av boksen, som rapporter med forskjellige typer diagrammer som du kan bruke til å vise ytelsestestberegninger.
På den annen side er det heller ikke hovedbruksscenariet for JMeter. Du kan lage funksjonstester for REST API med JMeter, inkludert påstand om respons.
Det primære bruksscenariet for REST Assured er for funksjonell testing av REST API-tjenester. Det kommer til og med med sin egen påstandsmekanisme for respons (Gherkins syntaks). Siden REST Assured er et Java-bibliotek, kan det enkelt integreres med enhetstester.
Når det gjelder referanser, støtter REST Assured ikke standardverdier. Imidlertid, hvis du vil bruke den til ytelsestesting, må du utvikle ditt eget tilpassede rammeverk for ytelsestesting på REST Assured.
JMeter-tester kan påberopes på to måter.
Fra brukergrensesnittet ved å klikke på Run-knappen:
Fra kommandolinjen:
jmeter -n -t your_script.jmx
JMeters offisielle anbefaling er ikke å kjøre ytelsestestene med GUI, da testene vil gå tregere (når det gjelder antall forespørsler per sekund) sammenlignet med å kjøre dem fra kommandolinjen.
REST Assured krever derimot en egen testløper, for eksempel jUnit eller TestNG (eller på annen måte for å kjøre Java-kode).
Fra Eclipse ved bruk av TestNG:
Fra kommandolinjen ved hjelp av for eksempel Ant build-verktøyet:
ant run-tests
Apache JMeter har på grunn av hovedformålet et stort antall typer rapporter som du kan lage fra resultatene av testene. Siden du kan kjøre ytelsestester fra JMeter, vises ytelsesberegninger vanligvis ved hjelp av grafer som dette:
Du kan lære mer om JMeter-rapporter og hvilke typer rapporter du kan opprette fra her .
REST Assured oppretter ikke noen rapporter, så det er opp til deg og testrammeverket du velger. Men når du er integrert med noen enhetstestingsrammer, kan du få nyttige rapporter i HTML-, tekst- eller XML-format.
Når det gjelder kontinuerlig integrering av produkter som testes, er det veldig viktig å integrere testautomatiseringsrammeverket ditt med CI-verktøy for både kjørende tester og rapporteringsresultater.
JMeters automatiserte tester kan enkelt integreres med Jenkins ved hjelp av plugin Ytelse som lar deg konfigurere Post-build-handlinger og få en fin dashbordside fra en Jenkins-arbeidsside.
REST Assured kan også enkelt integreres med Jenkins fordi Jenkins har plugins for nesten alle testrammer; For eksempel ham plugin TestNG som igjen kan lage et robust trenddiagram for testresultatene.
Dette er en kategori som ikke lett kan måles. Samfunnsaktivitet avhenger av flere faktorer, for eksempel verktøyets utløp eller antall bidragsytere.
Apache JMeter har et større samfunn i dag. Dette skyldes hovedsakelig at JMeter ble introdusert på markedet for lenge siden og regnes som en industristandard når det gjelder ytelsestesting av webtjenester og applikasjoner. JMeter publiserer offisielle utgivelser hver 5-6 måned . hans GitHub-depot er veldig aktiv, med nye bekreftelser daglig. JMeter bruker Bugzilla som en tracker og har en liste over åpne utgaver som endres ofte. Det er mer enn 23000 resultater for JMeter i søket StackOverflow . Fra sosiale nettverkssider har JMeter en offisiell konto for Twitter . På Facebook og LinkedIn er det ingen offisiell konto for JMeter, men det er to grupper, hvorav den største er denne facebook-gruppe og dette LinkedIn-gruppe .
REST Assured når den første fasen og har blitt førstevalg, flerkildeanbefaling når det gjelder automatisering av funksjonstesting av REST API-tjenesten. REST Assured har lagt ut innlegg offisielle utgivelser en gang hver sjette måned de siste to årene. De GitHub-depot Den har mange bidragsytere og er litt mindre aktiv enn JMeter, men den er også veldig aktiv. REST Assured sporer problemer i GitHub-depotet, så alt er på ett sted. I StackOverflow , det er over 2000 søkeresultater for REST Assured, så vi kan si at det er betydelig lavere sammenlignet med JMeter-søkeresultatene. Når det gjelder grupper på sosiale medier, er det bare LinkedIn-gruppe kom over betydelig færre medlemmer sammenlignet med JMeter. Det REST-forsikrede samfunnet er kanskje ikke så stort som JMeter-samfunnet, men det er veldig aktivt.
Både JMeter og REST Assured har sine fordeler fremfor hverandre. Men avhengig av prosjektet du jobber med, vil den ene være bedre enn den andre for din REST API-testautomatisering. Begge er veldig robuste, har nyttige testalternativer, har gode rapporteringsmuligheter og kan enkelt integreres med tilpassede testrammer.
Her er et sammendrag av alle sammenligningskriteriene som er utforsket i denne artikkelen for disse to populære REST-testverktøyene:
Apache JMeter | REST forsikret | |
---|---|---|
Krever kodingsferdigheter | Nei | Ja (Java) |
Full dok | Ja | Ja |
Funksjonell testing | Ja (men overdreven) | Ja |
Test av ytelse | Ja | Nei (ut av esken) |
Egnet for SCM (Git, P4 ...) | Nei | Ja |
Testrapporter | Ja | Nei |
Integrasjon med CI-verktøy | Ja | Ja |
Integrasjon med enhetstester | Nei | Ja |
Test parallellisering | Ja | Ja |
Samfunnsaktivitet | Ja | Ja |