bombardier
v1.2.6
Bombardier는 HTTP(S) 벤치마킹 도구입니다. Go 프로그래밍 언어로 작성되었으며 매우 빠른 성능으로 인해 Go의 기본 http 라이브러리 대신 뛰어난 fasthttp를 사용합니다.
bombardier v1.1
이상에서는 이제 HTTP/2.x 서비스를 테스트해야 하거나 보다 RFC 호환 HTTP 클라이언트를 사용하려는 경우 net/http
클라이언트를 사용할 수 있습니다.
go1.18 이상에서 테스트되었습니다.
릴리스 섹션에서 바이너리를 얻을 수 있습니다. 또는 최신 및 최고의 실행을 얻으려면 다음을 수행하십시오.
Go 1.18+: go install github.com/codesenberg/bombardier@latest
bombardier [<flags>] <url>
플래그에 대한 자세한 내용은 GoDoc을 참조하세요.
AFAIK, fasthttp
사용하여 호스트 헤더를 올바르게 전달하는 것은 불가능합니다. net/http
( --http1
/ --http2
플래그)를 사용하여 이 문제를 해결할 수 있습니다.
이 서버에 대해 bombardier
실행하는 예:
> bombardier -c 125 -n 10000000 http://localhost:8080
Bombarding http://localhost:8080 with 10000000 requests using 125 connections
10000000 / 10000000 [============================================] 100.00% 37s Done!
Statistics Avg Stdev Max
Reqs/sec 264560.00 10733.06 268434
Latency 471.00us 522.34us 51.00ms
HTTP codes:
1xx - 0, 2xx - 10000000, 3xx - 0, 4xx - 0, 5xx - 0
others - 0
Throughput: 292.92MB/s
또는 실제 서버에 대해(대기 시간 분포 포함):
> bombardier -c 200 -d 10s -l http://ya.ru
Bombarding http://ya.ru for 10s using 200 connections
[=========================================================================] 10s Done!
Statistics Avg Stdev Max
Reqs/sec 6607.00 524.56 7109
Latency 29.86ms 5.36ms 305.02ms
Latency Distribution
50% 28.00ms
75% 32.00ms
90% 34.00ms
99% 48.00ms
HTTP codes:
1xx - 0, 2xx - 0, 3xx - 66561, 4xx - 0, 5xx - 0
others - 5
Errors:
dialing to the given TCP address timed out - 5
Throughput: 3.06MB/s