Einführung in die Leistungsprüfung mit JMeter

1. Überblick

In diesem Artikel verwenden wir Apache JMeter zum Konfigurieren und Ausführen von Leistungstests

2. JMeter einrichten

Lassen Sie uns https://jmeter.apache.org/download jmeter.cgi[download JMeter], entpacken Sie es, gehen Sie in den Ordner bin und führen Sie die ausführbare Datei aus ( . Bat für Windows und . Sh__ für Linux/Unix).

Als Nächstes müssen Sie diesen Ordner nur zur Pfadumgebungsvariablen hinzufügen, damit er von der Befehlszeile aus zugänglich ist.

Die stabilste Version zum Zeitpunkt des Schreibens ist die 3.3 - wir können die neueste Version überprüfen ( hier ).

3. JMeter-Skripte erstellen

Nun schreiben wir unser erstes JMeter-Skript (eine Datei mit einer technischen Beschreibung unserer Tests).

Diese API ist eine einfache Verknüpfung:/spring-boot-start[SpringBoot]-Anwendung, die eine REST-API verfügbar macht.

Lassen Sie uns den Testplan one aktualisieren und ändern Sie zuerst den Namen. Fügen Sie dann eine Thread-Gruppe hinzu.

Eine Thread Group ermöglicht es uns, den Benutzerablauf zu kennen und simuliert, wie sie mit der App interagieren. Klicken Sie mit der rechten Maustaste auf den Skriptnamen in der GUI und folgen Sie dem ausgewählten Menü:

Nun gehen wir zum Konfigurationsteil der Thread Group , in dem wir die Anzahl der Benutzer angeben, die parallel Anfragen an unsere Anwendung stellen:

Hier haben wir Parameter angegeben wie:

  • - ** Name: der Name, den wir der Thread-Gruppe geben wollen

    • Die Anzahl der Threads (Benutzer) : Die Anzahl der parallelen Benutzer

    • Ramp-up-Zeit : Zeit, die benötigt wird, um von 0 zur angegebenen Anzahl von Benutzern zu wechseln

    • Loop count : Anzahl der Wiederholungen

Fügen Sie eine __HTTP-Anfrage hinzu, da diese von jedem der 5 Benutzer simuliert wird.

Füllen Sie die Informationen aus, um unsere oben beschriebene API zu adressieren, wie im Bild unten:

Wir geben nur die Website-Adresse, den Port und den spezifischen Pfad ein.

Lassen Sie uns als Nächstes Benutzeranforderungen simulieren, nachdem Sie einen View Results Tree hinzugefügt haben (verwenden Sie View Results in Table , wenn es sich bei den Ergebnissen um eine Liste von Datensätzen handelt).

Klicken Sie oben rechts auf den grünen Pfeil, um den Test auszuführen und die Antwortdaten zu sehen:

Auf der Registerkarte Sampler result sehen Sie eine detailliertere Darstellung der Antwort.

Beenden wir mit dem Hinzufügen einer Duration Assertion in der HTTP-Anforderung . Daher wird jede Anforderung, die länger als zehn Millisekunden dauert, als fehlgeschlagener Test betrachtet:

Nach dem erneuten Ausführen des Tests sehen wir, dass es einige (hier drei) Benutzer gibt, die die Schülerlisten nicht in weniger als zehn Millisekunden erhalten:

Speichern wir nun den Test mit der Erweiterung .jmx im Ressourcenordner der API.

Weitere Elemente stehen zur Verfügung, um unsere Testdatei zu konfigurieren:

Request]: nützlich, um vorher eine JDBC-Anfrage (SQL-Abfrage) an eine Datenbank zu senden Um es zu benutzen, müssen wir ein einrichten http://jmeter.apache.org/usermanual/component reference.html#JDBC Connection Configuration[JDBC Verbindungskonfiguration]Element ** http://jmeter.apache.org/usermanual/component reference.html#XML__Assertion[XML

Assertion]: testet, ob die Antwortdaten korrekt korrekt sind dokumentieren ** http://jmeter.apache.org/usermanual/component reference.html#Size Assertion[Size

Assertion]: Bestätigt, dass die Antwort die richtige Anzahl von Bytes enthält drin ** http://jmeter.apache.org/usermanual/component reference.html#JMS Publisher[JMS

Publisher]: Zum Veröffentlichen von Nachrichten an ein bestimmtes Ziel (Thema/Warteschlange) gemäß J2EE-Spezifikation für Messaging

Alle verfügbaren Komponenten sind im user-Handbuch beschrieben.

4. JMeter-Tests ausführen

Es gibt zwei Möglichkeiten, JMeter-Tests auszuführen. Eine davon besteht darin, das verfügbare Maven-Plugin und die andere die eigenständige JMeter-App im Nicht-GUI-Modus zu verwenden.

In jedem Fall müssen beide wissen, wo sie das zuvor konfigurierte JMeter-Skript erreichen können.

4.1. JMeter Maven Plugin

http://jmeter.lazerycode.com/ ist ein Maven-Plugin, mit dem JMeter-Tests als Teil unseres Builds ausgeführt werden können. is 2.6.0 , die mit Apache JMeter 3.3 kompatibel ist

Fügen wir es dem pom.xml unseres Projekts hinzu:

<plugin>
    <groupId>com.lazerycode.jmeter</groupId>
    <artifactId>jmeter-maven-plugin</artifactId>
    <version>2.6.0</version>
    <executions>
        <execution>
            <id>jmeter-tests</id>
            <goals>
                <goal>jmeter</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <testFilesDirectory>${project.basedir}/src/main/resources</testFilesDirectory>
        <resultsDirectory>${project.basedir}/src/main/resources</resultsDirectory>
    </configuration>
</plugin>

Danach können wir alle Tests mit mvn verify oder nur mit JMeter mit mvn jmeter ausführen: jmeter ; Hier ist die Konsolenausgabe des Befehls:

Hinweis: Hier haben wir das Verzeichnis angegeben, in dem sich unsere Tests im Projekt befinden, entweder das Standardverzeichnis ( $ \ {project.basedir}/src/test/jmeter ); Das Ergebnisverzeichnis ist ebenfalls konfiguriert, ansonsten ist das Standardverzeichnis $ \ {project.basedir}/target/jmeter/results .

Die vollständige Plugin-Dokumentation finden Sie unter hier .

4.2. Nicht-GUI-Modus

Die andere Möglichkeit, dies über die ausführbare JMeter-Datei zu tun, vorausgesetzt, dass sie über die Befehlszeile verfügbar ist, können wir Folgendes tun:

jmeter -Jjmeter.save.saveservice.output format = xml__

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

Wir setzen XML als Ausgabeformat, das die exakte Testdatei und das Ergebnis füllt.

  • Hinweis: Es wird empfohlen, den GUI-Modus nicht für Auslastungstests zu verwenden, sondern nur zur Testerstellung und zum Debuggen von Tests. **

5. Fazit

In diesem kurzen Lernprogramm haben wir Apache JMeter in einer Spring Boot-App für die Ausführung von Leistungstests mit einem Maven-Plug-In eingerichtet. Dabei wird praktisch nach einem grundlegenden Leistungstest gesucht.

Den Quellcode für diesen Artikel finden Sie wie immer unter over auf GitHub .