Goku is a HTTP load testing tool built out of a need to drill HTTP services inspired by drill and vegeta
You can download the latest version of Goku directly to your current directory with the following command:
bash
curl -sSL https://raw.githubusercontent.com/jcaromiq/goku/1.0.2/scripts/install.sh | sh
bash
cargo install goku-bench
goku --version
Go to the Goku's GitHub Releases page and download the latest .tar.gz
file that matches your system. Currently, tarballs are available for the following:
As a requirement, you need rust
installed:
shell
$ cargo build --release
CLI is versioned with SemVer v2.0.0.
See CONTRIBUTING.md.
```console
Usage: goku [OPTIONS] --target
Options:
-t, --target
--target
-t
Specifies the operation and url to make the request, default to GET.
Format: GET https://localhost:3000
--request-body
-r
OptionalSpecifies the path of file with the body to send.
--clients
-c
Specifies the number of concurrent calls to be used, defaults to 1.
--iterations
-i
Specifies the total number of calls to be performed, default to 1.
--headers
OptionalSpecifies the headers to be sent.
--scenario
OptionalSpecifies the scenario file in yaml format.
````yaml target: POST http://localhost:3000/ clients: 50 requests: 1000 headers: - key: "bar" value: "foo" - key: "Content-Type" value: "application/json"
body: "{\"firstName\": \"Terry\", \"lastName\": \"Medhurst\", \"maidenName\": \"Smitham\", \"age\": 50}"
````
--help
Prints help.
--version
Prints version information.
goku --target "GET http://localhost:3000"
goku --target http://localhost:3000?foo=bar
goku -c 50 -i 1000 --target http://localhost:3000
goku --target "GET http://localhost:3000" --headers Content-Type:application/json --headers bar:foo
``` goku -c 50 -i 1000 -r body.json --target "POST http://localhost:3000"
```
``` goku -r body.json --target "POST http://localhost:3000" --headers Content-Type:application/json --headers bar:foo
```
Concurrency level 50
Time taken 4 seconds
Total requests 1000
Mean request time 169.90099999999998 ms
Max request time 415 ms
Min request time 5 ms
95'th percentile: 319 ms
99.9'th percentile: 367 ms
See LICENSE.
If you appreciate all the job done in this project, a small donation is always welcome: