RamBam is a stress-test/benchmarking tool for HTTP, using massive parallel HTTP requests.
RamBam is written in C++ and using a Asio (also written in C++).
Help: rambam -h
Usage (default: Number of Requests GET Test of "just" 100 requests):
rambam domain.tld
Increase the default request count from 100 to 10.000 requests (-r
for requests):
rambam -r 10000 https://domain.tld
Using the duration test for 10 seconds (-d
for duration):
rambam -d 10 https://domain.tld
Example using Post requests (-p
for JSON Post data):
rambam -p '{"username": "melroy"}' https://domain.tld/api/v1/user/create
More advanced parameters (-v
for verbose output, --debug
for additional TLS debug information):
rambam -v --debug https://domain.tld
You can use multiple parameters together, except the -d
for duration test (in seconds) and -r
for request test (total requests). Just pick one of the two different tests.
- Enable debug output via:
--debug
flag. - If you have a self-signed certificate try to use
-o
flag to override verifcation or disable peer certificate verification using:--disable-peer-verify
flag. - Silent all output via :
-s
flag.
Note: We don't support transfer-encoding: chunked
(HTTP 1.1), hence we use only HTTP 1.0 requests.
- C++ Compiler (
sudo apt install build-essential
for GNU compiler, Clang is also supported) - CMake (
sudo apt install cmake
) - OpenSSL (
sudo apt install libssl-dev openssl
) - Ninja build system (optional, but recommended:
sudo apt install ninja-build
) - Ccache (optional, but much recommended:
sudo apt install ccache
)
Building the RamBam binary is very easy:
# Configure build folder (prepare)
cmake -B build
# Build it! Using make
cmake --build ./build -j 8 --config Release --target rambam
Binary is now located at: build/rambam
.