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/
作者
久远·卡拉
发布于
2021年9月18日
许可协议