Hey

  • 一、Hey介绍
  • 二、性能测试
  • 三、下载Linux 64位二进制文件(举例)
    • 1、打开步骤一链接,选择linux64位
    • 2、打开步骤一链接,选择linux安装包
  • 五、【举例并发50,1000个请求】,请求结果返回,可用于性能测试结果分析
  • 六、用法
  • 四、使用示例参考

一、Hey介绍

这是个简单的命令行工具,向Web应用程序发送一些负载,同时返回统计结果

项目地址:Hey

二、性能测试

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

负载测试和压力测试都属于性能测试,两者可以结合进行。

1、通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况
2、压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

三、下载Linux 64位二进制文件(举例)

优点:不用配置go环境,下载下来直接上传到环境上,修改文件权限就可以使用了

1、打开步骤一链接,选择linux64位

Linux 64位:hey_linux_amd64
Mac 64位:hey_darwin_amd64
Windows 64位:hey_windows_amd64

2、打开步骤一链接,选择linux安装包

修改文件权限:

chmod 777 hey_linux_amd64


使用方法,下文的举例命令hey替换成./hey_linux_amd64执行即可

五、【举例并发50,1000个请求】,请求结果返回,可用于性能测试结果分析

#并发50,1000个请求访问网址
[root@localhost tools]# ./hey_linux_amd64 -n 1000 -c 50  https://www.baidu.com/Summary:Total:        2.0508 secsSlowest:      1.1289 secsFastest:      0.0132 secsAverage:      0.1005 secsRequests/sec: 487.6142Total data:   227000 bytesSize/request: 227 bytesResponse time histogram:0.013 [1]     |0.125 [910]   |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■0.236 [30]    |■0.348 [1]     |0.459 [8]     |0.571 [0]     |0.683 [0]     |0.794 [5]     |0.906 [4]     |1.017 [0]     |1.129 [41]    |■■Latency distribution:10% in 0.0215 secs25% in 0.0279 secs50% in 0.0394 secs75% in 0.0655 secs90% in 0.1226 secs95% in 0.7304 secs99% in 1.0857 secsDetails (average, fastest, slowest):DNS+dialup:   0.0246 secs, 0.0132 secs, 1.1289 secsDNS-lookup:   0.0051 secs, 0.0000 secs, 0.3947 secsreq write:    0.0000 secs, 0.0000 secs, 0.0012 secsresp wait:    0.0631 secs, 0.0129 secs, 0.4412 secsresp read:    0.0001 secs, 0.0000 secs, 0.0010 secsStatus code distribution:[200] 1000 responses

翻译如下:

[root@localhosttools]# ./hey_linux_amd64 -n 1000 -c 50 https://www.baidu.com/简介:总:2.0508秒最低:1.1289秒最快:0.0132秒平均:0.1005秒请求/秒:487.6142总数据:227000字节尺寸/要求:227字节响应时间柱状图:0.013 [1] |0.125[910] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■0.236[30] |■0.348 [1] |0.459 [8] |0.571 [0] |0.683 [0] |0.794 [5] |0.906 [4] |1.017 [0] |1.129[41] |■■延迟分配:0.0215秒的10%0.0279秒25%50%在0.0394秒内75%在0.0655秒90%在0.1226秒95%在0。7304秒99%在1.0857秒详细信息(平均,最快,最慢):DNS+拨号:0.0246秒,0.0132秒,1.1289秒查找时间:0.0051秒、0.0000秒、0.3947秒要求写入:0.0000秒,0.0000秒,0.0012秒resp等待:0.0631秒,0.0129秒,0.4412秒resp读数:0.0001秒,0.0000秒,0.0010秒状态码地理分布:[200] 1000响应

六、用法

Usage: hey [options...] <url>Options:# -n 指定运行的总请求数。默认值为200。-n  Number of requests to run. Default is 200.# -c 客户端并发执行的请求数,默认为50。总请求数不能小于并发数。-c  Number of workers to run concurrently. Total number of requests cannotbe smaller than the concurrency level. Default is 50.# -q 客户端发送请求的速度限制,以每秒响应数QPS为单位,默认没有限制。-q  Rate limit, in queries per second (QPS) per worker. Default is no rate limit.# -z 发送请求的持续时长,超时后程序停止并退出。若指定了持续时间,则忽略总请求数(-n),例如-z 10s,-z 3m-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 输出类型。若没有提供,则打印摘要。CSV是唯一支持的格式,结果以逗号分隔各个指标项。-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方法,例GET,POST,PUT,DELETE,HEAD,OPTIONS方法-m  HTTP method, one of GET, POST, PUT, DELETE, HEAD, OPTIONS.# -H 代表HTTP请求头,可以用-H连续添加多个请求头。-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 每个请求的超时时间(以秒为单位)。默认值为20s,数值0代表永不超时。-t  Timeout for each request in seconds. Default is 20, use 0 for infinite.# -A 代表HTTP响应头-A  HTTP Accept header.# -d代表HTTP请求正文-d  HTTP request body.# -D代表HTTP请求正文文件-D  HTTP request body from file. For example, /home/user/file.txt or ./file.txt.# -T内容类型,默认为“ text / html”。-T  Content-type, defaults to "text/html".# -a代表基本身份验证,用户名:密码。-a  Basic authentication, username:password.#-x代表 HTTP代理地址作, 使用host:port格式。-x  HTTP Proxy address as host:port.# -h2启用HTTP / 2-h2 Enable HTTP/2.# -host http主机头-host HTTP Host header.# -disable-compression 禁用压缩。-disable-compression  Disable compression.# -disable-keepalive禁用保持活动状态,防止重新使用不同的HTTP请求之间的TCP连接。-disable-keepalive    Disable keep-alive, prevents re-use of TCPconnections between different HTTP requests.# -disable-redirects 禁用HTTP重定向                     -disable-redirects    Disable following of HTTP redirects# -cpus 使用的cpu内核数。当前计算机的默认值为8核。-cpus                 Number of used cpu cores.(default for current machine is 8 cores)

四、使用示例参考

指定时长的get请求:客户端(-c)并发为2, 持续发送请求2s (-c)hey -z 5s -c 2 https://www.baidu.com/指定请求总数的get请求:运行2000次(-n),客户端并发为50(-c)hey -n 2000 -c 50  https://www.baidu.com/指定host的get请求:使用的cpu核数为2 (-cpus), 压测时长为5s(-z), 并发数为2hey -z 5s -c 2 -cpus 2 -host "baidu.com" https://220.181.38.148请求带header的get接口:压测时长为5s (-z), 客户端发送请求的速度为128QPS, 请求头用-H添加hey -z 5s -q 128 -H "client-ip:0.0.0.0" -H "X-Up-Calling-Line-Id:X.L.Xia" https://www.baidu.com/post请求hey -z 5s -c 50 -m POST -H "info:firstname=xiuli; familyname=xia" -d "year=2020&month=1&day=21" https://www.baidu.com/代理模式,需额外配置proxy:因部分ip频繁发请求有风险,故可用-x设置白名单代理向服务器发请求hey -z 5s -c 10 -x "http://127.0.0.1:8001" http://baidu.com/shell for循环实现压测for i in `seq 10`; do curl -v http://baidu.com; done

【性能测试】轻量级性能测试工具Hey相关推荐

  1. 软件测试性能测试结果,软件性能测试结果分析工具的研究与设计

    摘要: 随着软件行业的发展,针对软件系统尤其是Web应用系统的性能测试技术已经成为了软件测试领域的热点.虽然许多测试工具对性能测试提供了自动化支持,但性能测试的执行过程仍具有极高的专业性和复杂度,这一 ...

  2. 【性能测试】性能测试工具选择

    转发自博客园贺满:https://www.cnblogs.com/puresoul/p/5503134.html,有删减. 本篇文章主要简单总结下性能测试工具的原理以及如何选型.性能测试和功能测试不同 ...

  3. Android 性能测试——Memory Monitor 工具

    Android 性能测试--Memory Monitor 工具 Memory Monitor能做什么? 实时查看App的内存分配情况 快速判断App是否由于GC操作造成卡顿 快速判断App的Crash ...

  4. 1 Linux系统性能测试与监测工具汇总

    综合能力 性能测试([Unixbench]) [root@localhost] $ ./Run 计算 查看当前CPU负载(uptime) [root@localhost] $ uptime 测试单cp ...

  5. 性能测试这些常用工具你一定要知道!【建议收藏!】

    目录 Jmeter Sysbench HammerDB SwingBench LoadRunner 推荐阅读 随着社会及信息技术的飞速发展,人们对计算机及网络的依赖性越来越大,与此同时,数据也更集中于 ...

  6. mongodb 性能测试_MongoDB性能测试

    mongodb 性能测试 因此,今天早上,我在mongo shell中四处乱逛. 我想出了三种不同的方式来聚合所需的数据,但是不确定随后应移植哪种代码以在应用程序中使用. 那么,我将如何决定实施哪种方 ...

  7. 【性能测试】性能测试的基础理论

    转发自博客园贺满:https://www.cnblogs.com/puresoul/p/5456855.html ,有删减. 随着软件行业的快速发展,现代的软件系统越来越复杂,功能越来越多,测试人员除 ...

  8. 【软件测试】Jmeter性能测试(性能测试,Jemeter使用与结果分析)

    文章目录 前言 一.性能测试 1. 什么是性能测试? 2. 性能测试的重要性 3. 性能指标--QPS和TPS ①QPS ②TPS 二.压测工具Jmeter 1. 什么是Jmeter? 2. Jmet ...

  9. 柠檬班学习性能测试day2_性能测试入门(0519)

    性能测试知识入门 思维差异 a.功能测试.自动化测试: 输出:找bug 预期结果与实际结果进行比较 隐藏的前提:模拟的都是1个用户的操作 b.性能测试: 不是模拟1个人-模拟多个人同时 关注:多个人操 ...

  10. 【性能测试】性能测试的基本流程

    转发自博客园贺满:https://www.cnblogs.com/puresoul/p/5463477.html,有删减. 本文主要介绍下性能测试的基本流程,性能测试从实际执行层面来看,测试的过程一般 ...

最新文章

  1. HTML中单选框的设置,和提交按钮之间的组合
  2. “妖魔化”的SaaS
  3. RAID原理及其使用方法
  4. PTA 栈 (20分)(全网首发)(实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1))
  5. oh,我的老伙计,你看看这近五十个dapr视频
  6. 【POJ - 2378】Tree Cutting(树形dp,树的重心变形)
  7. Jenkins配置钉钉通知
  8. 14.软件架构设计:大型网站技术架构与业务架构融合之道 --- 业务架构思维
  9. QA:Golang抽象nil问题
  10. java equals方法可变_java中equals方法和“==”的区别
  11. python word库_Python|利用第三方库编辑word的基本操作
  12. 怎么自己做淘宝优惠券的网站?看完这个你就全懂了
  13. 打开计算机不显示磁盘盘符,移动硬盘盘符不显示如何修复
  14. 威胁web应用安全的错误
  15. 怎样做文献综述:六步走向成功-读书笔记
  16. 在上海相亲碰到如此势利贪婪的“80后”女孩
  17. rasa算法_Rasa 聊天机器人框架使用
  18. 数据库第十四次作业 电子商城项目
  19. C语言 #include指令
  20. ehchache验证缓存过期的api_SpringBoot - 缓存的使用详解1(使用Ehcache 2.x缓存)

热门文章

  1. [论文笔记] 大型车牌检测数据集CCPD 阅读笔记
  2. JPA @PersistenceContext和@Transactional Annotation
  3. 服务器项目混淆,压缩和混淆node.js服务端代码
  4. ffmpeg实现变速播放
  5. FleaPHP 开发指南 - 3. 应用程序入口
  6. windows10安装pyltp
  7. 2022年Java秋招面试必看的 | Linux 面试题
  8. 基于ESP8266的智能家庭检测系统
  9. Review impala
  10. 超级照片美化技法:炫目的舞台光斑效果