Konfigurieren Sie Jenkins, um JMeter-Tests auszuführen und anzuzeigen

Konfigurieren Sie Jenkins zum Ausführen und Anzeigen von JMeter-Tests

1. Überblick

In diesem Artikel konfigurieren wir eine Pipeline für die kontinuierliche Bereitstellung mitJenkins undApache JMeter.

Wir werden uns auf den ArtikelJMeterals guten Ausgangspunkt stützen, um zunächst die Grundlagen von JMeter zu verstehen, da bereits einige konfigurierte Leistungstests ausgeführt werden können. Und wir werden die Build-Ausgabe dieses Projekts verwenden, um den vom JenkinsPerformance-Plugin generierten Bericht anzuzeigen.

2. Jenkins einrichten

Zunächst müssen wir die neueste stabile Version vonJenkins herunterladen, zu dem Ordner navigieren, in dem sich unsere Datei befindet, und sie mit dem Befehljava -jar jenkins.war ausführen.

Beachten Sie, dass wir Jenkins ohne die Einrichtung eines Erstbenutzers nicht verwenden können.

3. Installieren des Performance Plugins

Installieren wir das PluginPerformance, das zum Ausführen und Anzeigen von JMeter-Tests erforderlich ist:

image

Jetzt müssen wir daran denken, die Instanz neu zu starten.

4. Führen Sie JMeter-Tests mit Jenkins aus

Gehen wir nun zur Jenkins-Startseite und klicken Sie auf "Neue Jobs erstellen", geben Sie einen Namen an, wählen SieFreestyle project aus und klicken Sie auf "OK".

Im nächsten Schritt können wirGeneralTab mit den folgenden allgemeinen Details konfigurieren:

image

Als Nächstes legen wir die Repository-URL und die zu erstellenden Zweige fest:

image

Gehen Sie nun zuBuildTab, um anzugeben, wie wir das Projekt erstellen. Anstatt den Maven-Befehl zum Erstellen des gesamten Projekts direkt anzugeben, können wir einen anderen Weg wählen, um die Kontrolle über unsere Pipeline zu verbessern, da nur ein Modul erstellt werden soll.

Auf denExecute shell **Sub-tab schreiben wir ein Skript, um die erforderlichen Aktionen auszuführen, nachdem das Repository geklont wurde:

  • Navigieren Sie zum gewünschten Untermodul

  • Wir haben es zusammengestellt

  • Wir haben es bereitgestellt, da wir wissen, dass es sich um ein Spring-Boot-basiertes Projekt handelt

  • Wir warten, bis die App auf dem Port 8989 verfügbar ist

  • Am Ende geben wir einfach sowohl den Pfad unseres JMeter-Skripts (im Ressourcenordner des Modulsjmeter) an, der für Leistungstests verwendet werden soll, als auch den Pfad der resultierenden Datei (JMeter.jtl) im Ressourcenordner

Hier ist das kleine entsprechende Shell-Skript:

cd jmeter
./mvnw clean install -DskipTests
nohup ./mvnw spring-boot:run -Dserver.port=8989 &

while ! httping -qc1 http://localhost:8989 ; do sleep 1 ; done

jmeter -Jjmeter.save.saveservice.output_format=xml
  -n -t src/main/resources/JMeter.jmx
    -l src/main/resources/JMeter.jtl

Wie im folgenden Bild gezeigt:

image

Nachdem das Projekt von GitHub geklont wurde, haben wir es kompiliert, auf Port 8989 geöffnet und die Leistungstests verarbeitet. Wir müssen das Ergebnis der Anzeige des Leistungs-Plugins benutzerfreundlich gestalten.

Wir können dies tun, indem wir ein dediziertesPost-build Actions hinzufügen. Wir müssen die Ergebnisquelldatei bereitstellen und die Aktion konfigurieren:

image

Wir wählen dieStandard Mode mit den nachfolgenden Konfigurationen:

image

Klicken Sie im linken Menü des Jenkins-Dashboards aufSave,, klicken Sie auf die SchaltflächeBuild Now ** und warten Sie, bis die oben konfigurierten Vorgänge abgeschlossen sind.

Nachdem es fertig ist, sehen wir auf der Konsole alle Ausgaben unseres Projekts. Am Ende erhalten wir entwederFinished: SUCCESS ** oderFinished: FAILURE:

image

Gehen wir zum BereichPerformance Report **, auf den Sie über das Menü auf der linken Seite zugreifen können.

Hier finden Sie den Bericht aller früheren Builds, einschließlich des aktuellen, um den Unterschied in Bezug auf die Leistung festzustellen:

image

Klicken Sie auf die Anzeige oben in der Tabelle, um nur das Ergebnis des letzten Builds anzuzeigen, den wir gerade erstellt haben:

image

Über das Dashboard unseres Projekts können wir diePerformance Trend abrufen. Dies sind andere Diagramme, die die Ergebnisse der letzten Builds zeigen:

image

Hinweis: Das Anwenden derselben Sache aufPipeline project ist auch einfach wie folgt:

  1. Erstellen Sie ein anderes Projekt (Element) aus dem Dashboard und nennen Sie esJMeter-pipeline, zum Beispiel (General info Tab).

  2. Wählen SiePipeline als Projekttyp

  3. Wählen Sie aufPipelineTab in der DefinitionPipeline script ** aus und überprüfen SieUse Groovy Sandbox

  4. Füllen Sie im Bereichscript einfach die folgenden Zeilen aus:

node {
    stage 'Build, Test and Package'
    git 'https://github.com/eugenp/tutorials.git'

    dir('jmeter') {
        sh "./mvnw clean install -DskipTests"
        sh 'nohup ./mvnw spring-boot:run -Dserver.port=8989 &'
        sh "while ! httping -qc1
          http://localhost:8989 ; do sleep 1 ; done"

        sh "jmeter -Jjmeter.save.saveservice.output_format=xml
          -n -t src/main/resources/JMeter.jmx
            -l src/main/resources/JMeter.jtl"
        step([$class: 'ArtifactArchiver', artifacts: 'JMeter.jtl'])
        sh "pid=\$(lsof -i:8989 -t); kill -TERM \$pid || kill -KILL \$pid"
    }
}

Dieses Skript klont zunächst das Projekt, wechselt in das Zielmodul, kompiliert es und führt es aus, um sicherzustellen, dass die App unterhttp://localhost:8989 verfügbar ist

Als Nächstes führen wir JMeter-Tests aus, die sich im Ressourcenordner befinden, speichern die Ergebnisse als Build-Ausgabe und schließen schließlich die Anwendung.

5. Fazit

In diesem kurzen Artikel haben wir eine einfache Umgebung für die kontinuierliche Bereitstellung eingerichtet, in der ApacheJMeter-Tests auf zwei Arten inJenkins ausgeführt und angezeigt werden. erstens über einFreestyle project und zweitens über einPipeline.

Der Quellcode für diesen Artikel befindet sich wie immer inover on GitHub.