Detailliertes Tutorial zum verteilten Betrieb von JMeter in der Docker-Umgebung

Detailliertes Tutorial zum verteilten Betrieb von JMeter in der Docker-Umgebung

1. Erstellen Sie das Basisimage von jmeter

Das Dockerfile sieht wie folgt aus:

# Verwenden Sie Java 8 Slim JRE
VON openjdk:8-jre-slim
WARTUNGSPARTNER QJP

# JMeter-Version
ARG JMETER_VERSION=5.1.1

# Installieren Sie einige Dienstprogramme
Führen Sie apt-get clean && \ aus.
  apt-get update && \
  apt-get -qy installieren \
        wget \
        telnet \
        iputils-ping \
        entpacken
# JMeter installieren
Führen Sie den Befehl mkdir /jmeter \ aus.
   && cd /jmeter/ \
   && wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-$JMETER_VERSION.tgz \
   && tar -xzf apache-jmeter-$JMETER_VERSION.tgz \
   && rm apache-jmeter-$JMETER_VERSION.tgz
   
WORKDIR /jmeter/apache-jmeter-$JMETER_VERSION/bin
#Kopieren Sie eine jmeter.properties-Datei aus dem aktuellen Ordner und stellen Sie sicher, dass server.rmi.ssl.disable=true aktiviert ist.
KOPIEREN Sie jmeter.properties.
# Alle Plugins hinzufügen
ADD jmeter-plugins/lib /jmeter/apache-jmeter-$JMETER_VERSION/lib

# Füge den Beispieltest hinzu
ADD Beispiel-Test Beispiel-Test

# JMeter-Home festlegen
ENV JMETER_HOME /jmeter/apache-jmeter-$JMETER_VERSION/

# JMeter zum Pfad hinzufügen
ENV-PFAD $JMETER_HOME/bin:$PATH

Erstellen des Images

Dockerbuild -t jmbase.

Paket-Upload

Docker-Tag jmbase Dockername/jmbase
Docker Push Dockername/JMBase

2. Erstellen Sie das Master-Maschinen-Image von jmeter

Die Dockerfile-Datei lautet wie folgt

# Verwenden Sie das jmbase-Basisimage VON qjpdsg/jmbase
MAINTAINER TestAutomationGuru

# Ports, die vom Container für JMeter-Slaves/Server freigegeben werden sollen
# Ports, die vom JMeter Slaves/Server-Container freigegeben werden sollen EXPOSE 1099 50000

# Anwendung, die beim Starten des Containers ausgeführt werden soll
# Starten Sie den Container, um die Anwendung ENTRYPOINT $JMETER_HOME/bin/jmeter-server \ auszuführen.
            -Dserver.rmi.localport=50000 \
            -Dserver_port=1099

Erstellen des Images

Docker-Build -t jmmaster.

Paket-Upload

Docker-Tag jmmaster Dockername/jmmaster
Docker Push Dockername/JMMaster

3. Erstellen Sie das JMeter-Client-Image

Die Dock- und Dateidateien sind wie folgt

# JMBase-Basisimage verwenden
VON qjpdsg/jmbase

WARTUNGSPARTNER QJP

# Ports, die vom Container für JMeter Master freigegeben werden sollen
60000 ausstellen

Erstellen des Images

Docker-Build -t jmslave.

Paket-Upload

Docker-Tag jmmaster Dockername/jmslave
Docker Push Dockername/JM-Slave

4. Führen Sie den JMeter-Client aus und rufen Sie die IP-Adresse ab:

Starten Sie den Client-Container:

docker run -dit --name slave01 jmserver /bin/bash
docker run -dit --name slave02 jmserver /bin/bash
docker run -dit --name slave03 jmserver /bin/bash

Client-IP abrufen

docker inspect --format '{{ .Name }} => {{ .Netzwerkeinstellungen.IP-Adresse }}' $( docker ps -a -q )

Konfigurieren Sie die IP-Adresse für die jmeter.properties des JMeter-Mastercomputers. Beachten Sie, dass der Serverport des Clients mit dem Serverport des Masters übereinstimmen muss.

wie:

Legen Sie die Adresse fest:

remote_hosts=172.17.0.2:1099,172.17.0.3:1099

In den jmmaster-Container kopieren:

docker cp ./jmeter.properties jmmaster:/jmeter/apache-jmeter-5.1.1/bin/

5. Starten Sie das verteilte Testen:

Rufen Sie den Client-Container auf und führen Sie den JMeterServer-Dienst aus:

docker exec -it slave10 /bin/bash
JMeter-Server

Rufen Sie den Mastercontainer auf und führen Sie verteilte Tests durch:

jmeter -n -t mywh.jmx -R172.17.0.2,172.17.0.3

Dies ist das Ende dieses Artikels über die verteilte Ausführung von JMeter in einer Docker-Umgebung. Weitere verwandte Inhalte über die verteilte Ausführung von JMeter in Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Verwendung der Elasticsearch-Visualisierung Kibana unter Docker
  • Detaillierte Erläuterung des Aufbaus des visuellen Überwachungszentrums für Docker-Container
  • Detailliertes Tutorial zum Erstellen einer JMeter+Grafana+Influxdb-Überwachungsplattform mit Docker
  • Verwenden Sie Grafana, um Überwachungsdiagramme von Docker-Containern anzuzeigen und E-Mail-Benachrichtigungsregeln festzulegen (Abbildung)
  • So überwachen Sie Docker mit Grafana unter Ubuntu
  • Detailliertes Tutorial zur Installation von InfluxDB in Docker (Leistungstest)
  • Allgemeine Befehle zum Bereitstellen von InfluxDB und Mongo mit Docker
  • Tutorial zum Erstellen einer visuellen Leistungsüberwachungsplattform mit JMeter+Grafana+InfluxDB in einer Docker-Umgebung

<<:  Ein Artikel zeigt Ihnen, wie Sie mit React ein Rezeptsystem implementieren

>>:  So konvertieren Sie MySQL horizontal in vertikal und vertikal in horizontal

Artikel empfehlen

Tutorial zur Installation und Konfiguration von MySQL für Mac

In diesem Artikel finden Sie das MySQL-Installati...

So leiten Sie eine PC-Adresse in Vue an eine Mobiladresse um

Anforderungen: Die PC-Seite und die mobile Seite ...

Detaillierte Erläuterung des Prozesses der Zabbix-Überwachung von SQLServer

Werfen wir einen Blick auf die Zabbix-Überwachung...

Lösung zum Vergessen des MySQL-Passworts unter Linux

Das Problem ist folgendes: Ich habe den Befehl my...

js implementiert Array-Abflachung

Inhaltsverzeichnis So reduzieren Sie ein Array 1....

Einige Indikatoren für exzellentes Web-Frontend-Design

Die Barrierefreiheit von Webseiten scheint etwas z...

Detaillierte Installation und Verwendung von SSH in der Ubuntu-Umgebung

SSH steht für Secure Shell, ein sicheres Übertrag...

Beispielcode zur Implementierung einer Upload-Komponente mit Vue3

Inhaltsverzeichnis Allgemeine Entwicklung von Upl...

5 Möglichkeiten, Docker-Container auf andere Server zu migrieren

Migration ist in vielen Fällen unvermeidlich. Har...

Installieren Sie ein CentOS-System basierend auf WindowsX Hyper-V

Derzeit nutzen die meisten Linux-Benutzer entwede...

Vuex implementiert einfache Warenkorbfunktion

In diesem Artikelbeispiel wird der spezifische Co...