Inleiding tot prestatietests met JMeter

1. Overzicht

In dit artikel gaan we Apache JMeter gebruiken om prestatietests te configureren en uit te voeren.

2. JMeter instellen

Laten we JMeter downloaden, het uitpakken en naar het bak map en voer het uitvoerbare bestand (*.knuppel voor Windows en *.sh voor Linux / Unix).

Vervolgens hoeven we deze map alleen maar toe te voegen aan de omgevingsvariabele pad, zodat deze toegankelijk is vanaf de opdrachtregel.

De meest stabiele versie op het moment van schrijven is 3.3 - we kunnen hier de nieuwste versie bekijken.

3. JMeter-scripts maken

Nu laten we ons eerste JMeter-script schrijven (een bestand met een technische beschrijving van onze tests).

Deze API is een eenvoudige SpringBoot-applicatie die een REST API blootlegt.

Laten we het Testplan one en verander eerst de naam, voeg dan een Discussiegroep.

EEN Discussiegroep stelt ons in staat om de gebruikersstroom te kennen en simuleert hoe ze omgaan met de app, klik met de rechtermuisknop op onze scriptnaam in de GUI en volg het geselecteerde menu:

Nu gaan we naar het configuratiegedeelte van het Discussiegroep, waar we het aantal gebruikers specificeren dat parallel een verzoek indient bij onze applicatie:

Hier hebben we parameters gespecificeerd zoals:

Naam: de naam die we aan de discussiegroep willen geven

Het aantal Threads (gebruikers): het aantal parallelle gebruikers

Aanlooptijd: tijd die nodig is om van 0 naar het aangegeven aantal gebruikers te gaan

Loop tellen: aantal herhalingen

Voeg een HTTP-verzoek want het is degene die we simuleren als afkomstig van elk van de 5 gebruikers.

Laten we de informatie invullen om onze API te adresseren die daar wordt beschreven, zoals in de onderstaande afbeelding:

We vullen gewoon het websiteadres, de poort en het specifieke pad in.

Laten we vervolgens de verzoeken van gebruikers simuleren nadat we een Bekijk de resultatenboom (Gebruik Bekijk resultaten in tabel als het resultaat een lijst met records is) door het menu 'Toevoegen> Luisteraar ”.

Druk op de groene pijl naar rechts bovenaan om de test uit te voeren en de responsgegevens te zien:

We kunnen een meer gedetailleerde weergave van het antwoord op de Sampler resultaat tabblad.

Laten we eindigen met het toevoegen van een Duur bewering in de HTTP-verzoek, dus elk verzoek dat langer duurt dan tien milliseconden wordt beschouwd als een mislukte test:

Nadat we de test opnieuw hebben uitgevoerd, zien we dat er enkele (hier zijn het 3) gebruikers die de lijsten met studenten niet binnen tien milliseconden kunnen ophalen:

Laten we nu de test opslaan met de extensie .jmx in de resource-map van de API.

Er zijn meer elementen beschikbaar om ons testbestand te configureren:

  • JDBC Request: handig om een ​​JDBC-verzoek (SQL-query) naar een database te sturen, voordat we het gebruiken, moeten we een JDBC-verbindingsconfiguratie-element instellen
  • XML Assertion: test of de responsgegevens van een correct correct XML-document zijn
  • Size Assertion: stelt dat het antwoord het juiste aantal bytes bevat
  • JMS Publisher: om berichten naar een bepaald doel (onderwerp / wachtrij) te publiceren volgens de J2EE-specificatie voor berichtenuitwisseling

Alle beschikbare componenten worden gedetailleerd in de gebruikershandleiding.

4. Voer de JMeter-tests uit

Er zijn twee manieren om JMeter-tests uit te voeren, een daarvan bestaat uit het gebruik van de beschikbare Maven-plug-in en de andere met de zelfstandige JMeter-app in de niet-GUI-modus.

In ieder geval moeten beide weten waar ze het JMeter-script kunnen bereiken dat we eerder hebben geconfigureerd.

4.1. JMeter Maven-plug-in

JMeter Maven-plug-inis een Maven-plug-in die de mogelijkheid biedt om JMeter-tests uit te voeren als onderdeel van onze build; zijn laatste versie is nu 2.6.0 die compatibel is met Apache JMeter 3.3.

Laten we het toevoegen aan het pom.xml van ons project:

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

Hierna kunnen we al onze tests uitvoeren met mvn verifiëren of alleen de JMeter met mvn jmeter: jmeter; hier is de console-uitvoer van het commando:

Opmerking: hier hebben we de map gespecificeerd waar onze tests zich in het project bevinden, ofwel de standaardmap ($ {project.basedir} / src / test / jmeter) wordt gekozen; op dezelfde manier is de resultatenmap geconfigureerd, anders zal de standaardmap zijn $ {project.basedir} / target / jmeter / results.

De volledige documentatie van de plug-in is hier toegankelijk.

4.2. Niet-GUI-modus

De andere manier om dit te doen is via het JMeter-uitvoerbare bestand, ervan uitgaande dat het beschikbaar is via de opdrachtregel, kunnen we dit doen:

jmeter -Jjmeter.save.saveservice.output_format = xml

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

We stellen XML in als het uitvoerformaat, dat het exacte testbestand en het resultaat vult.

Opmerking: het wordt aanbevolen om de GUI-modus niet te gebruiken voor het testen van belasting, alleen voor het maken van tests en het debuggen van tests.

5. Conclusie

In deze korte tutorial hebben we Apache JMeter ingesteld op een SpringBoot-app om prestatietests uit te voeren met een Maven-plug-in terwijl we praktisch kijken hoe je een basisprestatietest kunt ontwerpen.

Zoals altijd is de broncode voor dit artikel te vinden op GitHub.


$config[zx-auto] not found$config[zx-overlay] not found