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.tldIncrease the default request count from 100 to 10.000 requests (-r for requests):
rambam -r 10000 https://domain.tldUsing the duration test for 10 seconds (-d for duration):
rambam -d 10 https://domain.tldExample using Post requests (-p for JSON Post data):
rambam -p '{"username": "melroy"}' https://domain.tld/api/v1/user/createMore advanced parameters (-v for verbose output, --debug for additional TLS debug information):
rambam -v --debug https://domain.tldYou 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:
--debugflag. - If you have a self-signed certificate try to use
-oflag to override verifcation or disable peer certificate verification using:--disable-peer-verifyflag. - Silent all output via :
-sflag.
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-essentialfor 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 rambamBinary is now located at: build/rambam.
