Coder Social home page Coder Social logo

distributed-jmeter-docker's Introduction

🚨 This project is outdated/abandoned/archived and will not be updated anymore. 🚨


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.

Enjoy! :)

distributed-jmeter-docker's People

Contributors

pedrocesarti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

distributed-jmeter-docker's Issues

Port 6000 or 60000

Hi ,

Sorry I don't know much about the Jmeter, but my friend used it for web stress testing. and I'd like to see if there is a way to add this into the CICD pipeline.

I'd like to know what the point of 6000 or 60000 port

  • In the Dockerfile , it says EXPOSE 6000 1099 50000 not 60000
  • but In the README.md it says docker run -p 60000:60000 -v <TEST_PLAN_LOCAL>:<TEST_PLAN_CONTAINER> -d pedrocesarti/jmeter-docker:latest master
  • also In the helm chart, I can see the master container port is 60000

In the scripts/docker-entrypoint.sh

case $1 in
    master)
        tail -f /dev/null
        ;;

there is nothing related to this 6000/60000 port.

so I'd like to know what's the means of having this port? Is there a way to remote control the master node outside the kubernetes cluster.

Thank you so much

Log4j Vulnurability

Apache JMeter released 5.4.2 for Log4j vulnerability but the distributed-jmeter-docker image has only up to 5.0. Can you please make a docker image with 5.4.2 in your docker hub repository?

Exception on server pods

Hi,
I got 2 exceptions when i install the chart:

  1. FileNotFoundExeption and Permission denied on the jmeter-server.log
  2. Cannot create temp directory.
    I thought about set environment variables on deployment.yaml but i don't know the env variable name, like JAVA_TOOL_OPTIONS which i disable the ssl.

JMeter 5.0 Provide option to supply rmi_keystore.jks or disable ssl

Running pedrocesarti/jmeter-docker:latest works just fine. But when we use 5.0, we are getting error about missing rmi_keystore.jks.

Please setup the ssl as part of the image or provide instruction to setup.
For the helm chart, as servers and master runs within the same namespace, we could add a configmap for user.properties by disabling ssl.

Please help fixing this to work out of the box as per below expectation. Or please share your recommendation to resolve.

Hint:
https://stackoverflow.com/a/50113228/3846562

mahendran@mm-lab distributed-jmeter-docker % docker run -p 1099:1099 -p 50000:50000 -d pedrocesarti/jmeter-docker:5.0 server
Unable to find image 'pedrocesarti/jmeter-docker:5.0' locally
5.0: Pulling from pedrocesarti/jmeter-docker
802b00ed6f79: Already exists 
c93b65a61a80: Already exists 
a9885ada077a: Already exists 
a89352ec9377: Already exists 
4afde0273ed2: Already exists 
f32ac35cfe65: Already exists 
f3cf53b433e6: Pull complete 
c3f32cffbf36: Pull complete 
7bdbf78f71a5: Pull complete 
db5a40be7a83: Pull complete 
cf7563f1be76: Pull complete 
b7428079b964: Pull complete 
a981ce4facce: Pull complete 
86b6d6b69852: Pull complete 
Digest: sha256:49ab4d13bd08aae8d4fd07cc15d1020afbd5d6b9c2e3dd1b074f8f478b480e86
Status: Downloaded newer image for pedrocesarti/jmeter-docker:5.0
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
8d9477abba2c098aa9ede6ef9ae94c36a0ea5542e8199441fc51655077d5337f
mahendran@mm-lab distributed-jmeter-docker % docker logs 8d9477abba2c098aa9ede6ef9ae94c36a0ea5542e8199441fc51655077d5337f
Feb 03, 2021 10:30:45 AM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
Using local port: 50000
Server failed to start: java.rmi.server.ExportException: Listen failed on port: 50000; nested exception is: 
        java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
An error occurred: Listen failed on port: 50000; nested exception is: 
        java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
mahendran@mm-lab distributed-jmeter-docker %

Jmeter 4.0 and 5.0 servers fail to start due to rmi_keystore error

Attempting to build the docker image with apache jmeter 5.0 leads to the following error:

rmi_keystore.jks (No such file or directory)

The local_master container would come up but the server wouldn't start.

I was able to fix this issue by updating user.properties within the master container with the following line:
server.rmi.ssl.disable=true

(I also needed to add an extra line in the dockerfile for installing unzip in order for the build to succeed).

After making these changes I was able to build the dockerfile (but set the jmeter version to 5.3 in the build args in order to use a recent version of jmeter) and then docker-compose up my local image successfully, providing me with a master and server container. I was then able to successfully run my jmx tests from within the master docker container. Perhaps adding these changes to 4.0 and 5.0 will allow the servers to start for those that want to use a newer version of jmeter?

Unable to run with more than 100 threads

When we run with more than 100 threads the jmeter is showing response times more than 3 to 4 times than what the application is doing. If we run below 100 threads its working fine
Please let us know how to fix this issue with jvm paramters or any other settings
regards
Venkat
[email protected]
770-402-1851

Error message invalid remote engine

venkatpandiri@venkats-MacBook-Pro local % docker exec -it local_master_1 jmeter -n -t /tmp/example1.jmx -R local_server_1,local_server_2,local_server_3 -l results.jtl
Creating summariser


Created the tree successfully using /tmp/example1.jmx
Configuring remote engine: local_server_1
invalid authority: //local_server_1/JMeterEngine
Failed to configure local_server_1
Configuring remote engine: local_server_2
invalid authority: //local_server_2/JMeterEngine
Failed to configure local_server_2
Configuring remote engine: local_server_3
invalid authority: //local_server_3/JMeterEngine
Failed to configure local_server_3
Stopping remote engines
Remote engines have been stopped
Error in NonGUIDriver java.lang.RuntimeException: Following remote engines could not be configured:[local_server_1, local_server_2, local_server_3]
venkatpandiri@venkats-MacBook-Pro local %

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.