开源HTTP压力测试工具hey安装使用教程
扫描二维码,手机下载APP
hey是一款使用Golang开发的HTTP压力测试工具,可作为ApacheBench (ab)替代品,在之前的文章中《socat与Brook端口转发测试对比哪个更好?》有提到hey这个工具,这篇文章来详细说明下hey的安装和使用。
安装hey
以下使用Linux 64位系统,如果您是其它操作系统,请自行前往hey项目地址下载对应客户端。
作者已经提供编译好的二进制包,可直接下载使用:
#下载heywget 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的使用
输入hey -h
查看帮助信息:
flag needs an argument: -hUsage: hey [options...] <url>Options:-n Number of requests to run. Default is 200.-c Number of workers to run concurrently. Total number of requests cannotbe 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 responsemetrics 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 TCPconnections 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.qq.com/
-n
:请求总数-c
:客户端连接数-m
:请求方法,比如GET/POST
等
上面例子的含义就是对https://www.qq.com/
发起100个GET并发请求,请求总数为10000个,执行完毕后hey还会打印统计信息,如下。
Summary:Total: 9.9769 secsSlowest: 0.3740 secsFastest: 0.0350 secsAverage: 0.0971 secsRequests/sec: 1002.3120Response 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 secs25% in 0.0802 secs50% in 0.0917 secs75% in 0.1056 secs90% in 0.1266 secs95% in 0.1510 secs99% in 0.2334 secsDetails (average, fastest, slowest):DNS+dialup: 0.0016 secs, 0.0350 secs, 0.3740 secsDNS-lookup: 0.0008 secs, 0.0000 secs, 0.1045 secsreq write: 0.0001 secs, 0.0000 secs, 0.0716 secsresp wait: 0.0896 secs, 0.0320 secs, 0.2326 secsresp read: 0.0054 secs, 0.0014 secs, 0.1429 secsStatus code distribution:[200] 10000 responses
更多用法请自行执行hey -h
查看帮助使用。
最后
hey可以很方便的对网站进行压测,并返回详细统计结果