A high-performance HTTP benchmarking tool that includes a real-time web UI and terminal display
A high-performance HTTP benchmarking tool that includes a real-time web UI and terminal display
Plow is an HTTP(S) benchmarking tool, written in Golang. It uses excellent fasthttp instead of Go's default net/http due to its lightning fast performance.
Plow runs at a specified connections(option -c) concurrently and real-time records a summary statistics, histogram
of execution time and calculates percentiles to display on Web UI and terminal. It can run for a set duration(
option -d), for a fixed number of requests(option -n), or until Ctrl-C interrupted.
The implementation of real-time computing Histograms and Quantiles using stream-based algorithms inspired by prometheus with low memory and CPU bounds. so it's almost no additional performance overhead for benchmarking.
…
Binary and image distributions are available through the releases assets page.
go install github.com/six-ddc/plow@latest
# brew update
brew install plow
docker run --rm --net=host ghcr.io/six-ddc/plow
# docker run --rm -p 18888:18888 ghcr.io/six-ddc/plow
…
Basic usage:
plow http://127.0.0.1:8080/ -c 20 -n 10000 -d 10s
POST a json file:
plow https://httpbin.org/post -c 20 --body @file.json -T 'application/json' -m POST
# Add the statement to their bash_profile (or equivalent):
eval "$(plow --completion-script-bash)"
# Or for ZSH
eval "$(plow --completion-script-zsh)"
See LICENSE.
No open issues yet, or sync has not completed.