Skip to content

Instantly share code, notes, and snippets.

@smarigowda
Last active September 23, 2016 15:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save smarigowda/df9993b02306c35f14dd to your computer and use it in GitHub Desktop.
Save smarigowda/df9993b02306c35f14dd to your computer and use it in GitHub Desktop.
JMeter Cloud Setup Using Docker and Weave
-- JMeter Cloud Setup Using Docker and Weave --
-----------------------------------------------
# Create three docker hosts for jmeter servers
# Use Virtual Box
docker-machine create --driver virtualbox jmServer1
docker-machine create --driver virtualbox jmServer2
docker-machine create --driver virtualbox jmServer3
# open three terminals
# ssh to jmServer1, jmServer2 and jmServer3
docker-machine ssh jmServer1
docker-machine ssh jmServer2
docker-machine ssh jmServer3
# Install Weave on all the three hosts
sudo curl -L git.io/weave -o /usr/local/bin/weave
sudo chmod a+x /usr/local/bin/weave
# Launch Weave containers on jmServer1
weave launch
weave status
# Set the DOCKER_HOST environment variable
eval $(weave env)
# Launch Weave on jmServer2 and jmServer3 and connect to weave network of jmServer1
weave launch <public ip of jmServer1>
# Set the DOCKER_HOST environment variable on jmServer2 and jmServer3
eval $(weave env)
# On jmServer1, Run three JMeter Slaves
docker run --name=jmserver1 -d -v /home/docker:/logs santosharakere/jmeter-server -Djava.rmi.server.hostname=jmserver1
docker run --name=jmserver2 -d -v /home/docker:/logs santosharakere/jmeter-server -Djava.rmi.server.hostname=jmserver2
docker run --name=jmserver3 -d -v /home/docker:/logs santosharakere/jmeter-server -Djava.rmi.server.hostname=jmserver3
# On jmServer2, Run three JMeter Slaves
docker run --name=jmserver4 -d -v /home/docker:/logs santosharakere/jmeter-server -Djava.rmi.server.hostname=jmserver4
docker run --name=jmserver5 -d -v /home/docker:/logs santosharakere/jmeter-server -Djava.rmi.server.hostname=jmserver5
docker run --name=jmserver6 -d -v /home/docker:/logs santosharakere/jmeter-server -Djava.rmi.server.hostname=jmserver6
# On jmServer3
# Run a JMeter Master
mkdir /home/docker/jmeterCloud
cd /home/docker/jmeterCloud
git clone https://github.com/smarigowda/jmeter-driver.git
docker run --rm --name=jmMaster -v /home/docker/jmeterCloud/jmeter-driver:/jmeter-driver -v /home/docker/jmeterCloud/jmeter-driver/logs:/logs santosharakere/jmeter -n -t /jmeter-driver/test_google.jmx -Djava.rmi.server.hostname=jmMaster -l /logs/results.jtl -LDEBUG -Rjmserver1,jmserver2,jmserver3
# JMeter master executes the jmeter test plan on all the Six jmeter slaves containers, results are stored in a jtl file
# jtl file can be located at /home/docker/jmeterCloud/jmeter-driver/logs/results.jtl
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment