HTTP(S) Benchmark Tools / Toolkit for testing/debugging HTTP(S) and restAPI (RESTful)
Located in alphabetical order (not prefer)
ab – slow and single threaded, written in C
apib – most of the features of ApacheBench (ab
), also designed as a more modern replacement, written in C
baloo – Expressive end-to-end HTTP API testing made easy, written in Go (golang
)
bombardier – Fast crossplatform HTTP benchmarking tool, written in Go (golang
)
curl-loader – performance loading of various application services and traffic generation, written in C
gatling – High performance load testing framework based on Scala, Akka and Netty, write in Scala
goad – Goad is an AWS Lambda powered, highly distributed, load testing tool, write in Go (golang
)
gobench – HTTP/HTTPS load testing and benchmarking tool, write in Go (golang
)
gohttpbench – ab
-like benchmark tool run on multi-core cpu, write in Go (golang
)
hey – HTTP(S) load generator, ApacheBench (ab
) replacement, formerly known as rakyll/boom, written in Go (golang
)
htstress – multithreading high-load bechmarking services (>5K rps), written in C
/Linux
httperf – difficult configuration, slow and single threaded, written in C
inundator – A simple and high-throughput HTTP flood program, written in C
/Linux
jmeter – Apache JMeter™, pure application designed to load test performance both on static and dynamic resources, written in Java
mgun – A modern tool for load testing HTTP servers, written in Go (golang
)
pounce – evented, but results fluctuate, it's sometimes faster than htstress
, written in C
siege – slow and single threaded, written in C
sniper – powerful & high-performance http load tester, written in Go (golang
)
tsung – Simulate stress users in order to test the scalability and performance of IP based client/server applications HTTP
, WebDAV
, SOAP
, PostgreSQL
, MySQL
, LDAP
and Jabber
/XMPP
servers, written in Erlang
vegeta – HTTP load testing tool and library, written in Go (golang
)
weighttp – multithreaded, but slower than htstress without keepalive, written in C
wrk – multithreaded, but doesn't offer concurrent connections and a keepalive switch, written in C
/Lua
wrk2 – constant throughput, correct latency recording variant of wrk, written in C
/Lua
Concurrent connections are enabled with:
-c, --connections <N> Connections to keep open
And keepalive (which is default) can be disabled using:
-H "Connection: close"
yandex-tank – Load and performance benchmark tool, written in Python
/C|C++|Asm
(phantom)
golang
)C
Python
C
Mac
, Windows
, and Linux
)