Dockerized JMeter with ElasticsearchBackendListener for live logging.
4.8K
Dockerized JMeter with ElasticsearchBackendListener for live logging.
Travis:
build result of build JMeter with ElasticsearchBackendListener, run Elasticsearch and run test with live logging to Elasticsearch.
- jpgc-dummy-0.2
- jpgc-casutg-2.6
https://github.com/test-stack/elasticSearchBackendListenerClient
ElasticsearchBackendListener
When you use RHEL, CentOS, or Fedora, mount volume with Z option.
-v `pwd`:/jmeter:Z
Using Volumes with Docker can Cause Problems with SELinux
jmeter --nongui --testfile testPlan.jmx
docker run --name jmeter -it --rm rdpanek/jmeter:5.3.0
docker run --name jmeter -it --rm rdpanek/jmeter:5.3.0 --help
docker run --name jmeter -it --rm -v `pwd`:/jmeter rdpanek/jmeter:5.3.0 --nongui --testfile testPlan.jmx --logfile result.jtl
docker run --name jmeter --detach --rm -v `pwd`:/jmeter rdpanek/jmeter:5.3.0 --nongui --testfile testPlan.jmx --logfile result.jtl
docker run --name jmeter -it --rm -v `pwd`:/jmeter --user $(id -u):$(id -g) rdpanek/jmeter:5.3.0 --nongui --testfile testPlan.jmx --logfile result.jtl
docker run --name jmeter -it --rm -v `pwd`:/jmeter rdpanek/jmeter:5.3.0 --nongui --testfile testPlan.jmx -j /dev/stdout
docker run --name generator1 --detach --publish 1098:1098 --rm rdpanek/jmeter:5.3.0 -Jserver.rmi.ssl.disable=true -Djava.rmi.server.hostname=192.168.1.202 -Jserver.rmi.localport=1098 -Dserver_port=1098 --server
Stopping a server after the end of the test It's possible add this option
-Jserver.exitaftertest=trueConnect to generator
docker run --name controller -it --rm --volume `pwd`:/jmeter rdpanek/jmeter:5.3.0 -Jserver.rmi.ssl.disable=true --nongui --testfile testPlan.jmx --remotestart 192.168.1.202:1098,192.168.1.202:1099 --logfile result.jtl
Go to Documentation
docker run --name controller --detach --rm --volume `pwd`:/jmeter rdpanek/jmeter:5.3.0 -Jserver.rmi.ssl.disable=true --nongui --testfile testPlan.jmx --logfile result.jtl --forceDeleteResultFile --reportatendofloadtests --reportoutputfolder report -Jjmeter.reportgenerator.overall_granularity=1000
Go to Documentation
Important The same test plan is run by all the servers. JMeter does not distribute the load between servers, each runs the full test plan. So if you set 1000 Threads and have 6 JMeter server, you end up injecting 6000 Threads.
Warning Remote mode does use more resources in client. It's reason what JMeter use Stripped mode. Check always JMeter client resources, that is not overloaded.
All nodes ( client and servers )
--serverserver.rmi.localport to control this port numbers.--remotestart. Multiple servers can bbe added, comma-delimited."-JXms2g -JXmx2g -JX:MaxMetaspaceSize=500m"-XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20Get the list of ip addresses
docker inspect --format '{{ .Name }} => {{ .NetworkSettings.IPAddress }}' $(docker ps -a -q)
Run docker image
docker run --name jmeter -it -v `pwd`:/tests --rm -p 5901:5901 rdpanek/jmeter:vnc-5.3.0
and connect via some VNC Viewer to localhost:5901 and password is secret
Create config object
kubectl -n loadtest-1 apply -f k8s/jmeter-configmap.yaml
Start Performance Stack
kubectl -n loadtest-1 create -f k8s/perf-stack.yaml
Port Forward for VNC Viewer
kubectl -n loadtest-1 port-forward controller-0 5901:5901
Now, you can connect to controller via your favorite VNC Viewer
localhost:5901
On Desktop you can use scripts
run-editor.sh Start JMeterrun-distrib-test.sh Start Distributed testingdocker run --name test-web --rm -p 8080:80 -d rdpanek/test-web:1.0
Define a run multiple containers
Content type
Image
Digest
Size
310.5 MB
Last updated
over 5 years ago
docker pull rdpanek/jmeter