/distributed-jmeter-docker

JMeter Docker image that allow distributed load testing

Primary LanguageDockerfile

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! :)