Skip to content

EdwinWalela/rage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rage

License: MIT Go Report Card

A minimalistic load testing tool designed to help developers stress-test their infrastructure with ease

Features

rage supports passing configuration arguments as CLI flags or through YAML

./rage -url <endpoint> -method <HTTP-Method> -users <integer> -attempts <integer>

Using a YAML configuration file enables you to customize the request further

target:
  url: https://api.mydomain.com/v1/checkout
  method: POST
  successcode: 201
load:
  users: 5
  attempts: 10
headers:
  Authorization: Bearer eyJhbGciOIjp7ImlkIjoxLCJyb2iJ.eyJhbGciOiJ
body:
  content-type: application/json
  payload:
    product_uuid: 1e89b3e4567-e89b-12d3 
    quantity: 3
    colors: 
      - green
      - black
      - white
    extras:
      address:
        apartment_number: 10
        note: drop-off at reception 
      coupon_code: RAGE23!   

The above configuration models the following request body:

{
  "product_uuid": "1e89b3e4567-e89b-12d3",
  "quantity": 3,
  "colors": ["green","black","white"],
  "extras": {
    "address": {
      "apartment_number": 10,
      "note": "drop-off at reception"
    },
    "coupon_code":"RAGE23!"
  }
}

Run rage with the above YAML configurations

./rage -f config.yaml

How it works

rage makes the requests concurrently using goroutines.

  • users - Number of virtual users to spawn
  • attempts - Number of requests each user makes

Contributing

Any contribution, in the form of a suggestion, bug report or pull request, is welcomed

About

Minimalistic CLI Load Tester

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published