wrkloadgeneratortoolbox

A tool to run wrk and wrk2 benchmarks and store their output.


Keywords
wrk, runner, benchmarks, load, performance, tests
License
MIT
Install
pip install wrkloadgeneratortoolbox==0.1.5

Documentation

Build status pypi Test coverage

wrktoolbox

A tool to run wrk and wrk2 benchmarks, store their output, and generate reports.

Features

  • Support for YAML and JSON configuration files, to define benchmark suites
  • Parses the output of wrk and wrk2 HTTP benchmarking tools
  • Possibility to define performance goals, which are evaluated and stored with results
  • Strategy to store benchmarks results and whole suite configuration
  • Support for plugins, loaded dynamically to define new types of stores, performance goals, and reports writers
  • Strategy to produce reports of results, for example to XLSX, with wrktoolbox-xlsx - see Wiki
  • Docker images for Ubuntu and Alpine
  • CLI

Quick example

  1. install
pip install wrktools
  1. verify that the cli works (optional)
wrktoolbox --help
  1. prepare a YAML, or JSON file with configuration. A basic example, with a single type of benchmark, looks like this:
# the array of benchmarks contains the configuration of benchmarks to run
benchmarks:
  - url: https://this-is-an-example.it/api/alive
    threads: 10  # threads count
    concurrency: 100  # concurrent users
    duration: 30  # test duration in seconds

# the type of stores to use, to collect benchmark results
# it is possible to define custom stores, using plugins;
# for example to store results in a database, or send them to an API
stores:
  - json
  1. run a suite of benchmarks using a settings file
wrktoolbox run --settings basic.yaml

Refer to examples folder for an example of full configuration file, defining plugins for authentication and custom store.