JMeter性能测试工具
本文最后更新于 2024年6月25日 早上
Apache JMeter是一款纯JAVA的开源软件,用于进行负载测试和性能测试。
软件获取
可以通过官网获取到最新版本软件,目前版本是apache-jmeter-5.4.1.zip
该软件无需安装,只是需要java环境,这个就自己搞定了。下载完成后,解压。
在apache-jmeter-5.4.1\bin目录下找到jmeter.bat,双击打开即可
插件管理器插件(可选)将下载完成的jar文件防到lib/ext中,重启jmeter
安装MQTT插件 (可选)将下载完成的jar文件防到lib/ext中,重启jmeter
使用
首先。。。把语言选择成中文:
- Options->Choose language->Chinese
添加线程组
对测试计划点右键->添加->线程->线程组
- 线程数就理解为连接的用户数量
- Ramp-up时间就是用户从0增长到设定值需要多少时间
- 循环次数那就是测试几遍啦
http请求测试
对线程组右键->添加->取样器->HTTP请求
这里就填入个服务器地址其他默认也是可以的。此时是可以直接点上面的箭头运行,但是为了方便查看结构需要添加监听器。
测试当然用百度啦,在地址输入www.baidu.com,线程组的用户数量别填多了,听说要被封IP,就写个5吧
添加监听器
对线程组右键->添加->监听器
- 查看结果树
- 聚合报告
- 样本:请求数,表示这次测试中一共发出了多少个请求
- 平均值:响应时间,默认情况下是单个 Request 的平均响应时间(ms)。
- 中位数:也就是 50% 用户的响应时间
- 90%百分位:90% 用户的响应时间
- 最小值:最小相应时间
- 最大值:最大响应时间
- 异常:错误率,错误请求数/请求总数
- 吞吐量:默认情况下表示每秒完成的请求数(Request per Second)
- 发送KB/Sec:每秒从服务器端接收到的数据量
MQTT测试
在安装了上面的插件后,会在对线程组右键->添加->取样器中多出几个MQTT选项。
先选择建立一个连接测试
- Server name or IP:指向被测MQTT服务器地址。
- Port number:通常TCP连接的端口时1883, SSL连接则是8883
- Timeout(s):连接超时设置,以秒为单位。
- Protocols:客户端与服务器通过SSL加密通道连接时,可以选择单向或者双向认证(Dual)。双向认证时,您还需要指定相应的信任秘钥库(Trust Key Store), 客户端证书,以及对应的文件保护密码(Secret)。
- User authentication:如果服务器配置了用户认证,您需要提供相应的用户名和口令。
- ClientId prefix:标识客户端的固定前缀,每个连接(虚拟用户)再添加一个uuid串,整个作为客户标识。
- Keep alive(s):心跳信号发送间隔。例如,300表示客户端每隔300秒向服务器发出ping请求,以保持连接活跃。
- Connect attempt max:第一次连接过程中,尝试重连的最大次数。超过该次数则认为连接失败。
- Reconnect attempt max:后继连接过程中,尝试重连的最大次数。超过该次数则认为连接失败。
发布测试:
- QoS Level:服务质量,取值为0,1,2,分别代表MQTT协议规范里的至多一次(AT_MOST_ONCE),至少一次(AT_LEAST_ONCE),精确一次(EXACTLY_ONCE)
- Topic name:发布消息所属的话题 (订阅方可以根据话题不同选择订阅)
- Add timestamp in payload:如果勾选,发布的消息体开头会附带当前时间戳,利用它可以在消息接收端计算消息达到的延时。不勾选则只发送实际的消息体。
- Message type:消息类型
订阅测试:
- QoS Level:服务质量,含义与发布操作取样器相同。
- Topic name:订阅消息所属的话题。
- Payload includes timestamp:如果勾选,会从消息体开头处解析发送时间戳,用于计算消息的接收延时。
- Debug response:如果勾选,消息内容会打印在JMeter的响应结果中,用于调试目的。正式运行测试建议不勾选。
JMeter性能测试工具
https://blog.kala.love/posts/4678a4f5/