- Scenario scripting in Lua
- Live-updated statistic plots viewable through web interaface
- Persistent test history with project grouping and ACL
- HTTP support - keep-alive, chunked, gzip, automatic cookie management, basic-auth, file upload
- Parallel requests from one virtual user (e.g. like browsers act)
- Special proxy for recording HTTP requests and generating test scripts
- Scales with cores and nodes
- Extension system
- (planned) Monitoring integration
- Simple and powerful scenario scripting
- Accurate informative statistics
- High performance
Under active development but is already working. Stay tuned for docs appearance.
- Some high-priority features/improvements
- Docs
- Refactoring (i was coding in a real hurry)
- Tests
Currently I test on Debian and Ubuntu. Mistress should work on other popular Linux distributions, FreeBSD and Mac OS as well, please drop me any feedback (especially if something doesn't work smoothly, or non-platform-optimal event notification mechanism gets used).
#ubuntu:
sudo apt-get install lua-socket lua-logging
#older debian-based:
sudo apt-get install liblua5.1-socket2 liblua5.1-logging
sudo apt-get install zlib1g-dev screen
sudo apt-get install git
git clone https://github.com/fillest/mistress_load.git
cd mistress_load
sudo apt-get install python-virtualenv
virtualenv --no-site-packages venv
source venv/bin/activate
pip install --upgrade pip #debian?
pip install bold==0.3
pip install argparse #for debian
bold
First, start statistics server (or use no_stat_server = true
in script).
...Set up ssh keys (for localhost-only - just cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
)
build/dev/mistress -s <your-test-script-name>
Chech report at http://localhost:7777/report/list
Any feedback or help (especially with tests, docs and spreading the word) is highly appreciated!
Written in C(C99) and Lua/LuaJIT using libev and HTTP Parser libs
Non-blocking io + libev + lua coroutines; coroutines yield on issuing io and resume on result, so end-user code is simple and natural (threading-style), without ugly callback boilerplate.
Metrics are accumulated and periodically sent to stand-alone statictics server.
##License The MIT License