- Notifications
You must be signed in to change notification settings - Fork1
Simple load testing tool with real-time updated histogram of request timings
License
s-macke/SlapperX
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Slapper is a simple load testing tool written in Go, which can send HTTP requests to your server and display the results in a histogram. It provides basic performance metrics, such as request rate, response times, and error rates.
- Basic performance metrics
- Histogram visualization of response time distribution
- Adjustable request rate, timeout, and worker count
- Supports multiple request targets
- Configurable ramp-up time for gradually increasing request rate
Justdownload a release or install SlapperX via
go install github.com/s-macke/slapperx@latest
To use Slapper, you need to have Go installed on your machine. You can download Go fromthe official website.
After installing Go, clone this repository and build the binary:
git clone https://github.com/s-macke/SlapperX.gitcd SlapperXgo build
Here is an example of how to use Slapper:
./slapper -targets targets.http -workers 8 -timeout 30s -rate 50 -minY 0ms -maxY 100ms -rampup 10s
-targets
: Targets file containing the REST request data to be tested in the.http format..-workers
: Number of workers sending requests concurrently (default 50).-timeout
: Request timeout duration (default 30 seconds).-rate
: Desired request rate per second (default 50).-minY
: Minimum Y-axis value for the histogram (default 0 milliseconds).-maxY
: Maximum Y-axis value for the histogram (default 100 milliseconds).-rampup
: Duration to ramp up to the desired request rate (default 0 seconds).
q
: Quit the program.r
: Reset the statistics.k
: Increase request rate by 10j
: Decrease request rate by 10Ctrl+C
: Quit the program.
The targets file follows the same format as the Jetbrains.http
files.You can find the full specification in theJetBrains documentation.
Here is an example:
GET https://api.example.com/usersAuthorization: Bearer your_token_hereContent-Type: application/json###POST https://api.example.com/usersAuthorization: Bearer your_token_hereContent-Type: application/json{ "name": "John Doe", "email": "john.doe@example.com"}###PUT https://api.example.com/users/123Authorization: Bearer your_token_hereContent-Type: application/json{ "email": "updated.email@example.com"}
In this example, we have three HTTP requests:
- A
GET
request to retrieve a list of users. - A
POST
request to create a new user. - A
PUT
request to update an existing user's email.
Each request includes headers, such asAuthorization
andContent-Type
, and uses the###
separator to distinguish between requests.
Contributions are welcome! If you have found a bug or have a feature request, please create an issue or submit a pull request.
This project is released under theMIT License.
About
Simple load testing tool with real-time updated histogram of request timings
Topics
Resources
License
Stars
Watchers
Forks
Packages0
Languages
- Go97.3%
- Gnuplot1.6%
- Shell1.1%