Giter Club home page Giter Club logo

docker-ubuntu-locust's Introduction

docker-ubuntu-locust

Docker image for locust.io. Locust Documentation.

Previously tested Locust.io

standalone

where TARGET_URL is the site domain name you want to test i.e. TARGET_URL=http://domain.com. Setup target variable.

target=http://domain.com
docker run -d -p 8089:8089 --name locust -e LOCUST_MODE=standalone -e TARGET_URL=${target} centminmod/docker-ubuntu-locust

use native host network to lower network overhead

target=http://domain.com
docker run -d -p 8089:8089 --net=host --name locust -e LOCUST_MODE=standalone -e TARGET_URL=${target} centminmod/docker-ubuntu-locust

distributed

master

where TARGET_URL is the site domain name you want to test i.e. TARGET_URL=http://domain.com

target=http://domain.com
docker run -d -p 8089:8089 --name locustmaster -e LOCUST_MODE=master -e TARGET_URL=${target} centminmod/docker-ubuntu-locust

use native host network to lower network overhead

target=http://domain.com
docker run -d -p 8089:8089 --net=host --name locustmaster -e LOCUST_MODE=master -e TARGET_URL=${target} centminmod/docker-ubuntu-locust

slave

Where <master-server-ip is IP address for locust.io master assigned to variable masterhost and TARGET_URL is the site domain name you want to test i.e. TARGET_URL=${target} and first slave named --name locustslave1. For second slave name --name locustslave2, third slave name --name locustslave3 etc.

target=http://domain.com
masterhost=<master-server-ip>
docker run -d -p 8090:8089 --name locustslave1 -e LOCUST_MODE=slave -e MASTER_HOST=${masterhost} -e TARGET_URL=${target} centminmod/docker-ubuntu-locust

use native host network to lower network overhead

target=http://domain.com
masterhost=<master-server-ip>
docker run -d -p 8090:8089 --net=host --name locustslave1 -e LOCUST_MODE=slave -e MASTER_HOST=${masterhost} -e TARGET_URL=${target} centminmod/docker-ubuntu-locust

slave scripting

you can script starting X number of slaves i.e. start 3 slave instances with sequence 1, 2, 3.

for i in $(seq 1 3); do
  port=8089
  port=$(($port+$i))
  target=http://domain.com
  masterhost=<master-server-ip>
  docker run -d -p $port:8089 --name locustslave${i} -e LOCUST_MODE=slave -e MASTER_HOST=${masterhost} -e TARGET_URL=${target} centminmod/docker-ubuntu-locust
done

removal of the locust slaves

for i in $(seq 1 3); do
  docker stop locustslave${i}; docker rm locustslave${i};
done

removal of locust master

docker stop locustmaster; docker rm locustmaster

example of 1x master + 3x slave locust.io configuration

inspecting logs

docker logs locust -f

example run for named locust image:

target=http://domain.com
docker run -d -p 8089:8089 --name locust -e LOCUST_MODE=standalone -e TARGET_URL=${target} centminmod/docker-ubuntu-locust

example run log inspection for docker image named locust

docker logs locust -f
=> Starting locust
/usr/local/bin/locust -f /locust/scripts/locust0.py --host=http://domain.com
[2017-07-06 03:43:59,718] 9ba173c41ae7/INFO/locust.main: Starting web monitor at *:8089
[2017-07-06 03:43:59,718] 9ba173c41ae7/INFO/locust.main: Starting Locust 0.7.5
[2017-07-06 03:45:25,073] 9ba173c41ae7/INFO/locust.runners: Hatching and swarming 1000 clients at the rate 100 clients/s...
[2017-07-06 03:45:42,760] 9ba173c41ae7/INFO/locust.runners: All locusts hatched: MyLocust: 1000
[2017-07-06 03:45:42,760] 9ba173c41ae7/INFO/locust.runners: Resetting stats

tips

setup a SSH alias commands

to remove docker image locust standalone

alias rmlocust='docker stop locust; docker rm locust; docker rmi centminmod/docker-ubuntu-locust;'

to remove docker image locustmaster master

alias rmlocustmaster='docker stop locustmaster; docker rm locustmaster; docker rmi centminmod/docker-ubuntu-locust;'

to remove docker image locustslave1 slave #1

alias rmlocustslave1='docker stop locustslave1; docker rm locustslave1; docker rmi centminmod/docker-ubuntu-locust;'

to remove docker image locustslave2 slave #2

alias rmlocustslave2='docker stop locustslave2; docker rm locustslave2; docker rmi centminmod/docker-ubuntu-locust;'

to remove docker image locustslave3 slave #3

alias rmlocustslave3='docker stop locustslave3; docker rm locustslave3; docker rmi centminmod/docker-ubuntu-locust;'

to remove docker image locustslave4 slave #4

alias rmlocustslave4='docker stop locustslave4; docker rm locustslave4; docker rmi centminmod/docker-ubuntu-locust;'

to remove docker image locustslave5 slave #5

alias rmlocustslave5='docker stop locustslave5; docker rm locustslave5; docker rmi centminmod/docker-ubuntu-locust;'

to remove docker image locustslave6 slave #6

alias rmlocustslave6='docker stop locustslave6; docker rm locustslave6; docker rmi centminmod/docker-ubuntu-locust;'

to remove docker image locustslave7 slave #7

alias rmlocustslave7='docker stop locustslave7; docker rm locustslave7; docker rmi centminmod/docker-ubuntu-locust;'

to remove docker image locustslave8 slave #8

alias rmlocustslave8='docker stop locustslave8; docker rm locustslave8; docker rmi centminmod/docker-ubuntu-locust;'

docker-ubuntu-locust's People

Contributors

centminmod avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

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.