A simple CLI tool
Project description
๐งช wrknoob โ Noob-Friendly Load Testing CLI for wrk
wrknoob is a Python CLI tool that helps you run structured load tests using wrk, visualize results with pretty graphs and tables, and export reports โ all with zero setup fuss.
Whether you're benchmarking a Quarkus app or a Flask toy server, wrknoob gives you insight into latency and throughput over varying concurrency levels.
โจ Features
- ๐ Run batch load tests with customizable
wrkparameters - ๐ Pretty CLI output using rich
- ๐ Plot requests/sec and latency graphs using matplotlib
- ๐งพ Save results to CSV
- ๐ค Render tabular report directly in the terminal
- ๐พ Export charts as image files
โ๏ธ Installation
Prerequisites
- Python 3.8+
wrkinstalled and available in your$PATH
Install
wrkvia Homebrew if you're on macOS:brew install wrk
1. Clone the Repository
git clone https://github.com/sitasp/wrknoob.git
cd wrknoob
2. Set Up a Virtual Environment
python3 -m venv .venv
source .venv/bin/activate
3. Install Python Dependencies
pip install -r requirements.txt
๐ Usage
python wrknoob.py
Youโll be prompted to enter:
- Target URL (e.g.,
http://localhost:8080/hello) - Duration per test
- Number of threads
- List of concurrent connection levels (e.g.,
10,25,50,100) - Whether to show graph or table
- Whether to export report to CSV or save plot as PNG
๐ Output
- Terminal report with colored stats
- Graphs showing performance trends
- Optional:
report.csvandplot.pngsaved in current directory
๐งโ๐ป Example
python wrknoob.py
Target URL: http://localhost:8080/hello
Test Duration (e.g., 10s): 10
Threads: 4
Concurrent Connections (comma-separated): 10,25,50,100
Show Graph? [y/n]: y
Save Report to CSV? [y/n]: y
๐งโ๐ป Actual Output in my PC
(wrknoob-env) satishpatra@Satishs-MacBook-Pro documents % python wrknoob.py
Matplotlib is building the font cache; this may take a moment.
Enter the target URL (http://localhost:8080/hello): http://localhost:8080/hello
Number of threads (8): 8
Test duration (in seconds) (15): 15
List of concurrent connections (comma-separated) (25,50,100,150,200): 25,50,75,100,125,150
Running test with 25 connections...
Running test with 50 connections...
Running test with 75 connections...
Running test with 100 connections...
Running test with 125 connections...
Running test with 150 connections...
wrk Load Test Results
โโโโโโโโโโโโโโโโณโโโโโโโโโโณโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโ
โ Requests/sec โ Latency โ Latency Unit โ Connections โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ 78319.3 โ 335.03 โ us โ 25 โ
โ 83496.36 โ 565.02 โ us โ 50 โ
โ 84455.19 โ 840.47 โ us โ 75 โ
โ 83904.85 โ 1.14 โ ms โ 100 โ
โ 82508.58 โ 1.44 โ ms โ 125 โ
โ 82327.44 โ 1.73 โ ms โ 150 โ
โโโโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโ
Do you want to save the results as CSV? [y/n]: y
Saved results to wrk_results.csv
Do you want to plot the results? [y/n]: y
2025-05-13 21:53:05.667 Python[84411:5633002] +[IMKClient subclass]: chose IMKClient_Modern
2025-05-13 21:53:05.667 Python[84411:5633002] +[IMKInputSession subclass]: chose IMKInputSession_Modern
Saved plot to wrk_results.png
๐ License
MIT ยฉ 2025 [sitasp]
๐ค Contributing
PRs welcome! If you have ideas like JSON output, REST API integration, or plotting percentiles โ open an issue or fork away. ๐
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wrknoob-1.0.11.tar.gz.
File metadata
- Download URL: wrknoob-1.0.11.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e79061f8f236892ffa07340d24c859f6cc75238ff468562712b7ac616222487e
|
|
| MD5 |
4272233e1d32602b7d17e770d099671d
|
|
| BLAKE2b-256 |
b9eb494baa49f736a3036c06735a224ef3769529b54c6e1c7b29d03f982821a4
|
File details
Details for the file wrknoob-1.0.11-py3-none-any.whl.
File metadata
- Download URL: wrknoob-1.0.11-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afe32d395e7d1803455ff75b118afbb171dfee6e0ad09df60f0052af648408c2
|
|
| MD5 |
81424262ef627db00d488f83e887fd48
|
|
| BLAKE2b-256 |
a699cc35efab20602ad3f5df8e337a29be22bb86d3471062352aa841cba04c81
|