Linux下 搭建轻量HTTP压力测试工具hey的使用介绍

前言

hey是一款使用Golang开发的轻量HTTP压力测试工具,可作为ApacheBench (ab)的替代品。一开始这个工具叫boom,但和https://github.com/tarekziade/boom有冲突,所以就命名为hey(嘿)。 这篇文章来详细说明下hey的安装和使用。


原工具地址详见:https://github.com/rakyll/hey

Linux下 搭建轻量HTTP压力测试工具hey的使用介绍,22-40-25-025.png,分享,教程,建站,百度,技术,压力,第1张

安装

以下使用Linux 64位系统,如果您是其它操作系统,请自行前往hey项目地址下载对应客户端。

作者已经提供编译好的二进制包,可直接下载使用:

#下载hey  wget https://hey-release.s3.us-east-2.amazonaws.com/hey_linux_amd64  #赋予执行权限  chmod +x hey_linux_amd64  #移动文件到sbin目录  mv hey_linux_amd64 /usr/sbin/hey

如果需要其他系统版本的二进制文件,请对号入座下载:

Linux 64-bit: https://hey-release.s3.us-east-2.amazonaws.com/hey_linux_amd64  Mac 64-bit: https://hey-release.s3.us-east-2.amazonaws.com/hey_darwin_amd64  Windows 64-bit: https://hey-release.s3.us-east-2.amazonaws.com/hey_windows_amd64

命令帮助

输入hey -h查看帮助信息:

flag needs an argument: -h  Usage: hey [options...]     Options:    -n Number of requests to run. Default is 200.    -c Number of workers to run concurrently. Total number of requests cannot        be smaller than the concurrency level. Default is 50.    -q Rate limit, in queries per second (QPS) per worker. Default is no rate limit.    -z Duration of application to send requests. When duration is reached,        application stops and exits. If duration is specified, n is ignored.        Examples: -z 10s -z 3m.    -o Output type. If none provided, a summary is printed.        "csv" is the only supported alternative. Dumps the response        metrics in comma-separated values format.      -m HTTP method, one of GET, POST, PUT, DELETE, HEAD, OPTIONS.    -H Custom HTTP header. You can specify as many as needed by repeating the flag.        For example, -H "Accept: text/html" -H "Content-Type: application/xml" .    -t Timeout for each request in seconds. Default is 20, use 0 for infinite.    -A HTTP Accept header.    -d HTTP request body.    -D HTTP request body from file. For example, /home/user/file.txt or ./file.txt.    -T Content-type, defaults to "text/html".    -a Basic authentication, username:password.    -x HTTP Proxy address as host:port.    -h2 Enable HTTP/2.      -host HTTP Host header.      -disable-compression Disable compression.    -disable-keepalive Disable keep-alive, prevents re-use of TCP                          connections between different HTTP requests.    -disable-redirects Disable following of HTTP redirects    -cpus Number of used cpu cores.                          (default for current machine is 2 cores)

使用举例

hey -n 10000 -c 100 -m GET https://www.xxxx.com/

-n:请求总数

-c:客户端连接数

-m:请求方法,比如GET/POST等

上面例子的含义就是对https://www.xxxx.com/发起100个GET并发请求,请求总数为10000个,执行完毕后hey还会打印统计信息,如下:

Summary:    Total: 9.9769 secs    Slowest: 0.3740 secs    Fastest: 0.0350 secs    Average: 0.0971 secs    Requests/sec: 1002.3120    Response time histogram:    0.035 [1] |    0.069 [894] |■■■■■■    0.103 [6193] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■    0.137 [2158] |■■■■■■■■■■■■■■    0.171 [464] |■■■    0.205 [118] |■    0.238 [84] |■    0.272 [56] |    0.306 [29] |    0.340 [2] |    0.374 [1] |    Latency distribution:    10% in 0.0702 secs    25% in 0.0802 secs    50% in 0.0917 secs    75% in 0.1056 secs    90% in 0.1266 secs    95% in 0.1510 secs    99% in 0.2334 secs    Details (average, fastest, slowest):    DNS+dialup: 0.0016 secs, 0.0350 secs, 0.3740 secs    DNS-lookup: 0.0008 secs, 0.0000 secs, 0.1045 secs    req write: 0.0001 secs, 0.0000 secs, 0.0716 secs    resp wait: 0.0896 secs, 0.0320 secs, 0.2326 secs    resp read: 0.0054 secs, 0.0014 secs, 0.1429 secs    Status code distribution:    [200] 10000 responses

更多用法请自行执行hey -h查看帮助使用。


总结

总体来说使用方法和结果都和apache的ab命令很相似,具体有什么区别没有详细比较。hey可以很方便的对网站做压力测试,是除了ab外的一个很好工具。

相关文章

您需要 登录账户 后才能发表评论

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注