Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ikruglov/slapper
Simple load testing tool with real-time updated histogram of request timings
https://github.com/ikruglov/slapper
Last synced: about 2 months ago
JSON representation
Simple load testing tool with real-time updated histogram of request timings
- Host: GitHub
- URL: https://github.com/ikruglov/slapper
- Owner: ikruglov
- License: mit
- Created: 2017-05-31T09:02:43.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-09-20T14:55:21.000Z (about 3 years ago)
- Last Synced: 2024-08-05T15:05:36.002Z (4 months ago)
- Language: Go
- Homepage:
- Size: 1.39 MB
- Stars: 334
- Watchers: 9
- Forks: 33
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - slapper - Simple load testing tool with real-time updated histogram of request timings (Go)
README
# slapper
__Simple load testing tool with real-time updated histogram of request timings__
![slapper](https://raw.githubusercontent.com/ikruglov/slapper/master/img/example.gif)
## Interface
![interface](https://raw.githubusercontent.com/ikruglov/slapper/master/img/interface.png)
## Usage
```bash
$ ./slapper -help
Usage of ./slapper:
-H value
HTTP header 'key: value' set on all requests. Repeat for more than one header.
-base64body
Bodies in targets file are base64-encoded
-maxY duration
max on Y axe (default 100ms)
-minY duration
min on Y axe (default 0ms)
-rate uint
Requests per second (default 50)
-targets string
Targets file
-timeout duration
Requests timeout (default 30s)
-workers uint
Number of workers (default 8)```
## Key bindings
* q, ctrl-c - quit
* r - reset stats
* k - increase rate by 100 RPS
* j - decrease rate by 100 RPS## Targets syntax
The targets file is line-based. Its syntax is:
HTTP_METHOD url
$ bodyThe body line is optional. The rules for what is considered to be a body
line are:1. If something starts with `$ ` (dollar-sign and space), it's a body
2. If the line is literally `{}`, it's an empty bodyA missing body line is taken to mean an empty request body. Point (2) is there
for backwards-compatibility.## Acknowledgement
* Idea and initial implementation is by @sparky
* This module was originally developed for Booking.com.