Using Apache Bench for simple load testing
The following command runs 100
requests in total with 10
concurrent requests to example.com
.
ab -n 100 -c 10 http://example.com/
Note! ApacheBench (ab) is installed on macOS by default.
Output will contain a lot of useful information. However firstly it’s worth paying attention to the following values:
- Requests per second
- Failed requests
- Time per request
The -H
flag allows you to append extra headers to the request:
ab -n 100 -c 10 -H "Accept-Encoding: gzip,deflate" http://example.com/
The argument is typically in the form of a valid header line, containing a colon-separated field-value pair (ex., "Accept-Encoding: gzip,deflate"
).
The -r
flag means don’t exit if it gets an error:
ab -n 100 -c 10 -r http://example.com/
To make POST requests with a specific file used as the POST data, run the following command:
ab -n 100 -c 10 -p data.json -T application/json http://example.com/
The -T
flag allows to specify the content type header like application/json
. Default is text/plain
.
Use watch
to keep on firing ab
requests at an endpoint. Notice that watch
isn’t available by default on macOS, but can be easily installed with Homebrew:
brew install watch
and run
watch -n 1 ab -n 100 -c 10 http://example.com/
Leave a comment