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).
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
docker run -p 60000:60000 -v <TEST_PLAN_LOCAL>:<TEST_PLAN_CONTAINER> -d pedrocesarti/jmeter-docker:latest master
docker run -p 1099:1099 -p 50000:50000 -d pedrocesarti/jmeter-docker:latest server
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
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.
For the Kubernetes support, also have a look at the official helm/chart repository.
Enjoy! :)