Distributed JMeter - Docker
Apache Jmeter™ is an open source tool that helps creating and running load test plans. And this Docker image was created to help you running different versions of JMeter in a Docker container, also helping you running in a distributed fashion (master -> server approach).
Supported tags
The Dockerfile here is managed and built with arguments what helps building and pushing our JMeter images for all versions of JMeter available. If you want more information, have a look on the Makefile.
- 3.3, latest
- 2.6
- 2.7
- 2.8
- 2.9
- 2.10
- 2.11
- 2.12
- 2.13
- 3.0
- 3.1
- 3.2
- 4.0
- 5.0
Running Master or Server
Master
docker run -p 60000:60000 -v <TEST_PLAN_LOCAL>:<TEST_PLAN_CONTAINER> -d pedrocesarti/jmeter-docker:latest master
Server
docker run -p 1099:1099 -p 50000:50000 -d pedrocesarti/jmeter-docker:latest server
Running Master and Server (Docker Compose)
You can also create a whole stack with master and servers to run a distributed JMeter tests locally or in a Docker Swarm Cluster. Check out this docker-compose.yml to see one example of this infra running locally. This example is going to create a master and a server container running locally, and you can also scale up and down the number servers instancesrunning.
docker-compose up -d
docker-compose scale server=5
Volumes
Another good point to mention here is that we suggest that you use volumes to share your test plans with the master container and once you have your test plans on your master container, you only going to need exec:
jmeter -n -t script.jmx -R server1,server2,…
You can also use this docker-compose to deploy in a Docker Swarm cluster defining better techniques to scale the number of replicas you want for each service and add all power of the internal discovery service.
K8s
For the Kubernetes support, also have a look at the official helm/chart repository.
helm 打包和安装
# 打包指令
make helm_package
# 或者手动打包
# helm package k8s distributed-jmeter-5.2.1.tgz
# 安装helm到制定namespace
helm install -n jmeter distribute-jmeter distributed-jmeter-5.2.1.tgz
Enjoy! :)