Introduktion til ydelsestest ved hjælp af JMeter

1. Oversigt

I denne artikel skal vi bruge Apache JMeter til at konfigurere og køre præstationstest.

2. Opsætning af JMeter

Lad os downloade JMeter, pakke det ud, gå til beholder mappe og kør den eksekverbare (*.flagermus til Windows og *.sh til Linux / Unix).

Dernæst skal vi bare tilføje denne mappe til sti-miljøvariablen, så den er tilgængelig fra kommandolinjen.

Den mest stabile version i skrivende stund er 3.3 - vi kan kontrollere den nyeste version her.

3. Oprettelse af JMeter-scripts

Nu lad os skrive vores første JMeter-script (en fil, der indeholder en teknisk beskrivelse af vores tests).

Denne API er en simpel SpringBoot-applikation, der udsætter en REST API.

Lad os opdatere Testplan en og skift navn først, og tilføj derefter en Trådgruppe.

EN Trådgruppe giver os mulighed for at kende brugerflowet og simulerer, hvordan de interagerer med appen, højreklik på vores scriptnavn i GUI og følg den valgte menu:

Nu går vi til konfigurationsdelen af Trådgruppe, hvor vi specificerer antallet af brugere, der stiller anmodninger til vores applikation parallelt:

Her specificerede vi parametre som:

Navn: det navn, vi vil give trådgruppen

Antallet af tråde (brugere): antallet af parallelle brugere

Opstartstid: den nødvendige tid til at gå fra 0 til det deklarerede antal brugere

Loop tæller: antal gentagelser

Tilføj en HTTP-anmodning da det er den, vi simulerer som kommer fra hver af 5 brugere.

Lad os udfylde informationen for at adressere vores API beskrevet deroppe som i billedet nedenfor:

Vi udfylder bare webstedsadressen, porten og den specifikke sti.

Lad os derefter simulere brugernes anmodninger efter tilføjelse af en Se resultattræ (Brug Se resultater i tabel hvis resultaterne er en liste over poster) ved at følge menuen “Tilføj> lytter ”.

Tryk på den grønne højre pileknap øverst for at køre testen og se svardataene:

Vi kan se en mere detaljeret gengivelse af svaret på Sampler-resultat fanen.

Lad os slutte med at tilføje en Påstand om varighed i HTTP-anmodning, så hver anmodning, der varer længere end ti millisekunder, betragtes som en mislykket test:

Efter at have kørt testen ser vi, at der er nogle (her er det 3) brugere, der ikke kan få listerne over studerende på mindre end ti millisekunder:

Lad os nu gemme testen med udvidelsen .jmx i ressourcemappen på API'et.

Flere elementer er tilgængelige for at konfigurere vores testfil:

  • JDBC-anmodning: nyttigt at sende en JDBC-anmodning (SQL-forespørgsel) til en database, inden vi bruger den, skal vi konfigurere et JDBC-forbindelseskonfigurationselement
  • XML-påstand: tester, at svardataene er af et korrekt korrekt XML-dokument
  • Size Assertion: hævder, at svaret indeholder det rigtige antal bytes i det
  • JMS Publisher: at offentliggøre meddelelser til et givet mål (emne / kø) efter J2EE-specifikation til messaging

Alle tilgængelige komponenter er beskrevet i brugervejledningen.

4. Kør JMeter-testene

Der er to måder at køre JMeter-tests på, den ene består i at bruge det tilgængelige Maven-plugin og den anden den uafhængige JMeter-app i ikke-GUI-tilstand.

Under alle omstændigheder skal begge vide, hvor de kan nå det JMeter-script, vi konfigurerede tidligere.

4.1. JMeter Maven-plugin

JMeter Maven-pluginer et Maven-plugin, der bringer faciliteten til at køre JMeter-tests som en del af vores build; hans sidste version lige nu er 2.6.0, der er kompatibel med Apache JMeter 3.3.

Lad os tilføje det til pom.xml af vores projekt:

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

Efter dette kan vi køre alle vores tests med mvn verificere eller bare de JMeter med mvn jmeter: jmeter; her er konsoludgangen af ​​kommandoen:

Bemærk: Her specificerede vi den mappe, hvor vores tests er placeret i projektet, enten den standard ($ {project.basedir} / src / test / jmeter) vil blive valgt ligeledes er konfigureret resultatmappen ellers vil standardindstillingen være $ {project.basedir} / target / jmeter / resultater.

Den fulde plugindokumentation er tilgængelig her.

4.2. Ikke-GUI-tilstand

Den anden måde at gøre det via den JMeter-eksekverbare, forudsat at den er tilgængelig via kommandolinjen, kan vi gøre dette:

jmeter -Jjmeter.save.saveservice.output_format = xml

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

Vi indstiller XML som outputformat, som udfylder den nøjagtige testfil og resultatet.

Bemærk: det anbefales ikke at bruge GUI-tilstand til belastningstest, kun til oprettelse af test og fejlretning af test.

5. Konklusion

I denne hurtige vejledning har vi oprettet Apache JMeter på en SpringBoot-app til at køre præstationstest med et Maven-plugin, mens vi næsten ser på, hvordan man designer en grundlæggende præstationstest.

Som altid kan kildekoden til denne artikel findes på GitHub.