Skip to content

tsykoduk/Mjolnir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mjölnir

A Heroku based distributed load testing tool.

Configuration variables should be set as follows:

  • BUILDPACK_URL: Specify the Heroku Ruby buildpack ("https://github.com/heroku/heroku-buildpack-ruby")
  • TARGETS: A comma delimited list of targets to hit (ex. "http://my_cool_site.com/first_action,http://my_cool_site.com/second_action")
  • WORKERS: The number of workers processes (default: 12)
  • LENGTH The number of times each worker will hit each endpoint; use 0 to run continuously (default: 10000)

Each dyno should spin up $WORKERS assaults on the endpoints provided. From my testing on 1x dyno, each worker will generate about 500 RPM, and 12 should safely fit on a 1x dyno. I have not tested on 2x or Px dynos, so YMMV.

Example

heroku config:set \
  BUILDPACK_URL="https://github.com/heroku/heroku-buildpack-ruby" \
  TARGETS="http://my_cool_site.com/first_action,http://my_cool_site.com/second_action,http://my_cool_site.com/third_action" \
  WORKERS=12 \
  LENGTH=10000

heroku scale program=5

This will assault the three action endpoints with 60 concurrent workers. Each worker will access the URLs given 10000 times, and then quietly die. You'll need to scale down and up or restart the dynos to rerun the test.

Testing with Variance

Use demoloader.rb if you want to do long term testing with variable delays between tests and slow ramp ups and downs.

Easy Button

Deploy

And - check out Stormbringer - a Golang port.

About

Heroku based distributed load testing tool

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages