https://github.com/proffapt/rewrk
Reworked wrk - Managed HTTP benchmarking tool
https://github.com/proffapt/rewrk
Last synced: about 1 month ago
JSON representation
Reworked wrk - Managed HTTP benchmarking tool
- Host: GitHub
- URL: https://github.com/proffapt/rewrk
- Owner: proffapt
- License: agpl-3.0
- Created: 2024-11-19T14:25:35.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-19T15:22:14.000Z (over 1 year ago)
- Last Synced: 2026-01-21T05:11:05.380Z (about 2 months ago)
- Language: Shell
- Homepage:
- Size: 29.3 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
[![LinkedIn][linkedin-shield]][linkedin-url]
Table of Contents
- [About The Project](#about-the-project)
- [Supports](#supports)
- [Getting Started](#getting-started)
- [Install using Homebrew](#install-using-homebrew)
- [Manual Installation](#manual-installation)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Usage](#usage)
- [Contact](#contact)
- [Acknowledgements](#acknowledgments)
- [Additional documentation](#additional-documentation)
## About The Project
Rewrk, a [wrk](https://github.com/wg/wrk) HTTP Benchmarking Wrapper Script, is designed to abstract the complexity of managing wrk processes. It provides functionality for both single benchmarking test and _sequential_ benchmarking as batch operations, provided via configuration file (.json), making load testing and benchmarking of HTTP servers straightforward.
### Supports:
1. OS(s)
* `MacOS`[`BSD` based]
* any `*nix`[`GNU+Linux` and `Unix`]
## Getting Started
To set up a local instance of the application, follow the steps below.
### Install using Homebrew
```sh
brew tap proffapt/brewtap
brew install rewrk
```
### Manual Installation
#### Prerequisites
The following dependencies are required to be installed for the project to function properly:
* `wrk`
Follow the installation instructions for your platform for [wrk](https://github.com/wg/wrk).
* `jq`
```bash
sudo apt install jq # Ubuntu/Debian
sudo yum install jq # CentOS/Fedora
brew install jq # macOS (HomeBrew)
```
#### Installation
_Now that the environment has been set up and configured to properly compile and run the project, the next step is to install and configure the project locally on your system._
1. Clone the repository
```sh
git clone https://github.com/proffapt/rewrk.git
```
2. Make the script executable
```sh
cd ./rewrk
chmod +x ./rewrk
```
3. Execute the script
```sh
./rewrk
```
## Usage
```graphql
Usage: ./rewrk COMMAND [OPTIONS]
A wrapper script to manage wrk HTTP benchmarking tool
Commands:
status Show the status of wrk process
start ARGS Start a single wrk instance with specified parameters
Arguments:
threads Number of threads to use
connections Number of connections to keep open
duration Duration of the test (e.g., 30s, 1m, 1h)
url Target URL
[timeout] Optional: Request timeout (default: 30s)
stop Stop the running wrk process
bstart ARGS Start batch wrk processes using a configuration file
Arguments:
load_pattern_file JSON file containing load patterns
url Target URL
[timeout] Optional: Request timeout (default: 30s)
bstop Stop all wrk processes in the batch
Example JSON load pattern file format:
{
[
{
"threads": 1,
"connections": 2,
"duration": "1h"
},
{
"threads": 1,
"connections": 1,
"duration": "1h"
}
]
}
Examples:
./rewrk status
./rewrk start 1 2 10m http://example.com/load/1
./rewrk bstart load.example.json http://example.com/load/1
./rewrk stop
./rewrk bstop
```
## Contact
📫 Arpit Bhardwaj ( aka proffapt ) -
## Acknowledgments
* [Choose an Open Source License](https://choosealicense.com)
* [Img Shields](https://shields.io)
## Additional documentation
- [Changelogs](/.github/CHANGELOG.md)
- [License](/LICENSE)
- [Security Policy](/.github/SECURITY.md)
- [Code of Conduct](/.github/CODE_OF_CONDUCT.md)
- [Contribution Guidelines](/.github/CONTRIBUTING.md)
[contributors-shield]: https://img.shields.io/github/contributors/proffapt/rewrk.svg?style=for-the-badge
[contributors-url]: https://github.com/proffapt/rewrk/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/proffapt/rewrk.svg?style=for-the-badge
[forks-url]: https://github.com/proffapt/rewrk/network/members
[stars-shield]: https://img.shields.io/github/stars/proffapt/rewrk.svg?style=for-the-badge
[stars-url]: https://github.com/proffapt/rewrk/stargazers
[issues-shield]: https://img.shields.io/github/issues/proffapt/rewrk.svg?style=for-the-badge
[issues-url]: https://github.com/proffapt/rewrk/issues
[license-shield]: https://img.shields.io/github/license/proffapt/rewrk.svg?style=for-the-badge
[license-url]: https://github.com/proffapt/rewrk/blob/master/LICENSE
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/proffapt