HTTP - Benchmark (Download - Get / Upload - Put request)
About
Web Server benchmarking.
See also: Web - Page Load Time (Speed|Performance)
Software
Throughput
Http request
Wrk
wrk -c50 -d2m --latency -H 'Accept-Encoding: gzip, deflate, br' http://testmachine.com:8080/large Running 2m test @ http://testmachine.com:8080/large 2 threads and 50 connections Thread Stats Avg Stdev Max +/- Stdev Latency 412.75ms 123.88ms 1.20s 84.45% Req/Sec 60.65 15.89 101.00 65.26% Latency Distribution 50% 387.97ms 75% 421.85ms 90% 511.70ms 99% 858.45ms 14545 requests in 2.00m, 738.39MB read Requests/sec: 121.18 Transfer/sec: 6.15MB Plow
https://github.com/six-ddc/plow
plow http://127.0.0.1:8080/hello -c 20 Benchmarking http://127.0.0.1:8080/hello using 20 connection(s). @ Real-time charts is listening on http://[::]:18888 Summary: Elapsed 8.6s Count 969657 2xx 776392 4xx 193265 RPS 112741.713 Reads 10.192MB/s Writes 6.774MB/s Statistics Min Mean StdDev Max Latency 32µs 176µs 37µs 1.839ms RPS 108558.4 112818.12 2456.63 115949.98 Latency Percentile: P50 P75 P90 P95 P99 P99.9 P99.99 173µs 198µs 222µs 238µs 274µs 352µs 498µs Latency Histogram: 141µs 273028 ■■■■■■■■■■■■■■■■■■■■■■■■ 177µs 458955 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 209µs 204717 ■■■■■■■■■■■■■■■■■■ 235µs 26146 ■■ 269µs 6029 ■ 320µs 721 403µs 58 524µs 3 Apache Bench (ab)
Apache Bench 1) is a command line program bundled with Apache HTTP Server.
Example: 100 HTTP GET requests, processing up to 10 requests concurrently
ab -n 100 -c 10 "http://en.wikipedia.org/wiki/Main_Page" It handles HTTP 'get' requests very well, and can be made to handle HTTP 'post' requests with a little effort. Written in 'C', it performs very well, and offers good (if basic) performance reporting.
Jmeter
HttpUnit
It is a library (and therefore of more interest to developers) that can be used to perform HTTP tests/benchmarks. It is intended to be used instead of a web browser (therefore no GUI) in conjunction with JUnit .
HP Load Runner
performance testing product