• Stars
    star
    334
  • Rank 126,264 (Top 3 %)
  • Language
    Go
  • License
    MIT License
  • Created over 7 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simple load testing tool with real-time updated histogram of request timings

slapper

Simple load testing tool with real-time updated histogram of request timings

slapper

Interface

interface

Usage

$ ./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
$ body

The 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 body

A 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.