Introduksjon til ytelsestesting ved bruk av JMeter

1. Oversikt

I denne artikkelen skal vi bruke Apache JMeter til å konfigurere og kjøre ytelsestester.

2. Sette opp JMeter

La oss laste ned JMeter, pakke den ut, gå til søppel mappen og kjør den kjørbare filen (*.flaggermus for Windows og *.sh for Linux / Unix).

Deretter trenger vi bare å legge til denne mappen i banen miljøvariabelen slik at den er tilgjengelig fra kommandolinjen.

Den mest stabile versjonen i skrivende stund er 3.3 - vi kan sjekke den nyeste versjonen her.

3. Opprette JMeter-skript

la oss skrive vårt første JMeter-skript (en fil som inneholder en teknisk beskrivelse av testene våre).

Denne API-en er en enkel SpringBoot-applikasjon som avslører en REST API.

La oss oppdatere Testplan en og endre navnet først, og legg deretter til et Trådgruppe.

EN Trådgruppe lar oss kjenne brukerflyten og simulerer hvordan de samhandler med appen, høyreklikk på skriptnavnet vårt i GUI og følg den valgte menyen:

Nå går vi til konfigurasjonsdelen av Trådgruppe, der vi spesifiserer antall brukere som sender forespørsler til applikasjonen vår parallelt:

Her spesifiserte vi parametere som:

Navn: navnet vi vil gi til trådgruppen

Antall tråder (brukere): antall parallelle brukere

Opprullingstid: tiden som trengs for å gå fra 0 til det oppgitte antall brukere

Loop count: antall repetisjoner

Legg til en HTTP-forespørsel da det er den vi simulerer som kommer fra hver av fem brukere.

La oss fylle ut informasjonen for å adressere API-en vår beskrevet der oppe som på bildet nedenfor:

Vi fyller bare nettadressen, porten og den spesifikke banen.

La oss deretter simulere brukernes forespørsler etter å ha lagt til en Vis resultattrær (Bruk Se resultatene i tabell hvis resultatene er en liste over poster) ved å følge menyen “Legg til> lytter ”.

Trykk på den grønne pilknappen til høyre for å kjøre testen og se svardataene:

Vi kan se en mer detaljert fremstilling av svaret på Prøveresultat fanen.

La oss avslutte med å legge til en Påstand om varighet i HTTP-forespørsel, så hver forespørsel som varer lenger enn ti millisekunder vil bli betraktet som en mislykket test:

Etter å ha kjørt testen ser vi at det er noen (her er det 3) brukere som ikke kan få elevlistene på mindre enn ti millisekunder:

La oss nå lagre testen med utvidelsen .jmx i ressursmappen til API.

Flere elementer er tilgjengelige for å konfigurere testfilen vår:

  • JDBC-forespørsel: nyttig for å sende en JDBC-forespørsel (SQL-spørring) til en database, før vi bruker den, må vi sette opp et konfigurasjonselement for JDBC-tilkobling
  • XML-påstand: tester at responsdataene er av et riktig riktig XML-dokument
  • Size Assertion: hevder at svaret inneholder riktig antall byte i den
  • JMS Publisher: å publisere meldinger til et gitt mål (emne / kø) etter J2EE-spesifikasjon for meldinger

Alle tilgjengelige komponenter er beskrevet i brukerhåndboken.

4. Kjør JMeter-testene

Det er to måter å kjøre JMeter-tester på, den ene består av å bruke det tilgjengelige Maven-pluginet og den andre den frittstående JMeter-appen i ikke-GUI-modus.

I alle fall trenger begge å vite hvor du kan nå JMeter-skriptet vi konfigurerte tidligere.

4.1. JMeter Maven Plugin

JMeter Maven Pluginer et Maven-plugin som bringer anlegget til å kjøre JMeter-tester som en del av byggingen vår; hans siste versjon akkurat nå er 2.6.0 som er kompatibel med Apache JMeter 3.3.

La oss legge det til pom.xml av prosjektet vårt:

 com.lazerycode.jmeter jmeter-maven-plugin 2.6.0 jmeter-tester jmeter $ {project.basedir} / src / main / resources $ {project.basedir} / src / main / resources 

Etter dette kan vi kjøre alle testene våre med mvn bekrefte eller bare JMeter-ene med mvn jmeter: jmeter; her er konsollutgangen til kommandoen:

Merk: Her spesifiserte vi katalogen der testene våre ligger i prosjektet, enten den som er standard ($ {project.basedir} / src / test / jmeter) vil bli valgt; på samme måte er konfigurert resultatkatalogen, ellers vil den standard være $ {project.basedir} / target / jmeter / resultater.

Den komplette plugin-dokumentasjonen er tilgjengelig her.

4.2. Ikke-GUI-modus

Den andre måten å gjøre det på er JMeter-kjørbar, forutsatt at den er tilgjengelig via kommandolinjen, kan vi gjøre dette:

jmeter -Jjmeter.save.saveservice.output_format = xml

-n -t src / main / resources / JMeter.jmx -l src / main / resources / JMeter.jtl

Vi setter XML som utdataformat, som fyller den nøyaktige testfilen og resultatet.

Merk: det anbefales å ikke bruke GUI-modus for belastningstesting, bare for testoppretting og feilsøking av test.

5. Konklusjon

I denne raske opplæringen har vi satt opp Apache JMeter på en SpringBoot-app for å kjøre ytelsestester med et Maven-plugin mens vi ser praktisk hvordan du designer en grunnleggende ytelsestest.

Som alltid kan kildekoden for denne artikkelen finnes på GitHub.