https://github.com/robertoprevato/wrktoolbox
wrktoolbox is a tool to run benchmarks with wrk and wrk2, parse and store their results, and generate reports
https://github.com/robertoprevato/wrktoolbox
Last synced: 5 months ago
JSON representation
wrktoolbox is a tool to run benchmarks with wrk and wrk2, parse and store their results, and generate reports
- Host: GitHub
- URL: https://github.com/robertoprevato/wrktoolbox
- Owner: RobertoPrevato
- License: mit
- Created: 2019-07-09T20:55:36.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-01-22T13:10:09.000Z (over 4 years ago)
- Last Synced: 2025-04-13T01:19:12.399Z (6 months ago)
- Language: Python
- Size: 37.1 KB
- Stars: 6
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://dev.azure.com/robertoprevato/wrktoolbox/_build/latest?definitionId=19) [](https://pypi.org/project/wrktools/) [](https://robertoprevato.visualstudio.com/wrktoolbox/_build?definitionId=19)
# 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](https://github.com/wg/wrk) and [wrk2](https://github.com/giltene/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](https://github.com/RobertoPrevato/wrktoolbox/wiki/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](https://github.com/RobertoPrevato/wrktoolbox-xlsx) - see [Wiki](https://github.com/RobertoPrevato/wrktoolbox/wiki/Reports)
* [Docker images for Ubuntu and Alpine](https://github.com/RobertoPrevato/wrktoolbox/tree/master/docker)
* [CLI](https://github.com/RobertoPrevato/wrktoolbox/wiki/CLI)## Quick example
1. install
```bash
pip install wrktools
```2. verify that the cli works (optional)
```bash
wrktoolbox --help
```3. prepare a YAML, or JSON file with configuration.
A basic example, with a single type of benchmark, looks like this:```yaml
# 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
```4. run a suite of benchmarks using a settings file
```bash
wrktoolbox run --settings basic.yaml
```Refer to examples folder for an example of full configuration file, defining plugins for authentication and custom store.