Lightweight Load Test and Analysis Tool
Project description
Woodpecker is a Python package that aims to be a lightweight — but complete — load generator and analysis tool for various environments.
While other far more famous tools like HP LoadRunner(R) or Apache JMeter either propose a complex and heavy application to perform load tests or require a very expensive license to work, Woodpecker’s main focus is on easiness of use, small memory footprint and smartness in data analysis — and, most of all, it is an Open Source Software since is released under the GNU LGPL version 3 license.
This project is still in development phase, but first benchmarks shows that the memory footprint for each Virtual User (here called spawn) is about 516 Kb. When the first development phase will be completed, this package will become publicly available for download from PyPi.
Requirements
At the moment the libraries required to run Woodpecker are the following:
python-dateutil
colorama
click
psutil
requests
All of them are hosted on PyPi and can be installed using pip or easy_install:
pip install -r requirements.txt
Planned features
Command-line interface to initialize scenarios, create transactions from HAR files, start/stop controller and remote spawners and analyze results
Fully portable results storage in a single SQLite3 file
Generic load profile generation by combination of basic ramp elements
- Capability to generate load on:
Web pages using HTTP protocol
SOA services
Databases
Web Video Streams
Sockets
Powerful HTML report creation using the Jinja2 templating engine (with PDF output, too)
SLA support and real-time or a posteriori check
Easy parameters retrieval and reuse, also in different transactions
Custom transactions support
Requests result assertions
Different spawning logic (using threads or sub-processes) to optimize memory consumption different architectures
Easily switch between different load configurations by changing one parameter in command-line invocation
Embedded system monitor (CPU and memory usage) for both controller and spawners