An experiment to make ultra scalable and fast load testing tool for HTTP.
It's based on: ØMQ, python and gevent.
proof of concept
- As user I shall be able to test real traffic on remote website
- As user I shall be able to distribute traffic among huge cluster
- As user I shall be able to easily use scenarios from tsung, preferably whole configurations
- As user I shall be able to run test on clusters within minutes (simple deployment)
Clone git repo:
$ git clone https://github.com/munhitsu/loadparrot.git
- Create and enter virtual env. My favourite method is by using virtualenv wrapper. See: gist
Install all C dependencies. In case of osx homebrew seems to be a reliable package manager. :
$ brew install libevent $ brew install zeromq
Install all python dependencies:
$ cd loadparrot $ pip install -r requirements.txt $ add2virtualenv .
- Repeat on all hosts that you want to run workers
Start workers pointing to kings ip:
$ python loadparrot/worker.py --king (king_ip)
- As a temporary hack edit scenario in loadparrot/scenario.py
Start the king:
$ python loadparrot/king.py
Sphinx based. To build execute make within docs directory.
- unit tests
- real configuration instead of stubs
- read real metrics
- spawn http stats interface
- print charts (preferably in browser)
- update user events execution to be based on a Poisson Distribution or other :)
- optimize scenarios
- client should pull all scenarios from server on start
- we shall request execution of scenario with specific version
- if client uses different scenario version than it shall pull a latest version
- each execution of parent should generate unique version so we can run workers and restart king
- flush queues (handbrake) so that king can restart and we don't need to restart workers
- fab + buildout/virtualenv for easy remote deploy and start
- rename king to... queen