Go语言开发的Web应用压力测试工具:Boom
jopen
10年前
Go编写的HTTP(S)负载生成器,ApacheBench(AB)的替代工具。Boom是一个微型程序,能够对Web应用程序进行负载测试。它类似于 Apache Bench (ab),但在不同的平台上有更好的可用性,安装使用也比较简单。
Usage
Boom 支持自定义headers,请求body和基本身份验证。它运行在所提供的并发级别的请求,并打印统计提供的数字。
Usage: boom [options...] <url> Options: -n Number of requests to run. -c Number of requests to run concurrently. Total number of requests cannot be smaller than the concurency level. -q Rate limit, in seconds (QPS). -o Output type. If none provided, a summary is printed. "csv" is the only supported alternative. Dumps the response metrics in comma-seperated values format. -m HTTP method, one of GET, POST, PUT, DELETE, HEAD, OPTIONS. -h Custom HTTP headers, name1:value1;name2:value2. -d HTTP request body. -T Content-type, defaults to "text/html". -a Basic authentication, username:password. -allow-insecure Allow bad/expired TLS/SSL certificates.
This is what happens when you run Boom:
% boom -n 1000 -c 100 https://google.com 1000 / 1000 ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ 100.00 % Summary: Total: 21.1307 secs. Slowest: 2.9959 secs. Fastest: 0.9868 secs. Average: 2.0827 secs. Requests/sec: 47.3246 Speed index: Hahahaha Response time histogram: 0.987 [1] | 1.188 [2] | 1.389 [3] | 1.590 [18] |∎∎ 1.790 [85] |∎∎∎∎∎∎∎∎∎∎∎ 1.991 [244] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ 2.192 [284] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ 2.393 [304] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ 2.594 [50] |∎∎∎∎∎∎ 2.795 [5] | 2.996 [4] | Latency distribution: 10% in 1.7607 secs. 25% in 1.9770 secs. 50% in 2.0961 secs. 75% in 2.2385 secs. 90% in 2.3681 secs. 95% in 2.4451 secs. 99% in 2.5393 secs. Status code distribution: [200] 1000 responses