写点什么

使用 JMeter 模拟设备通过 MQTT 发送数据

作者:石云升
  • 2022-12-13
    广东
  • 本文字数:929 字

    阅读完需:约 3 分钟

使用JMeter模拟设备通过MQTT发送数据

需求: 需要一个工具能够支持 MQTT 协议发送各种不同的数据。

目的: 模拟小型温室设备反馈,搭建一个测试环境,根据测试的数据显示硬件的状态和数值。

工具:JMeter

环境:需要配置 Java 运行环境。

操作步骤:

1. 下载 JMeter 运行包

下载地址:https://jmeter.apache.org/download_jmeter.cgi,下载后可以解压到任意目录

2. 安装 JDK,配置 Java 的运行环境(请自行用谷歌或必应搜索)

3. 启动 jmeter 的执行程序

打开解压文件的 bin 目录,执行命令:sh jmeter

打开后如下图,在新增测试计划的具体事例时,我们是找不到 MQTT 协议的。所以我们还需要安装 MQTT 的插件包



4. 安装 MQTT 插件

  1. 从 GitHub 上下载最新版本插件 mqtt-xmeter-2.0.2-jar-with-dependencies.jar,该插件支持 JMeter 3.2 及以上版本。

  2. 将插件 jar 包拷贝到 JMeter 的插件目录:$JMETER_HOME/lib/ext

  3. 重新启动 JMeter。

这时候在去创建测试事例,就能看到支持 MQTT 协议的测试入口了



5. 切换到中文

默认是英文,可以手动切换成中文。



如果想修改默认的语言配置,打开 bin 目录下的 jmeter.properties 文件,搜索 language,把 #language=en 改成 language=zh_CH



重启后,默认打开就是中文了。接下来我们开始创建一个 MQTT 的测试。

6. 创建测试用例

a. 创建线程组

主要设置线程数、Ramp-Up 时间和循环次数。下面表示的 1 秒钟内启动 2 个线程,发送 1 次请求数据。如果循环次数勾选永远,就会一直发送。



b. 创建 MQTT 连接

  1. 先创建一个 Connect 连接 MQTT




注意超时时间,这里默认的是 10 毫秒,如果 MQTT 服务不稳定,可能会出现偶尔连不上的问题,建议 1000 毫秒

  1. 创建 MQTT pub Sampler 录入要发送 MQTT 的 topic,如果需要发送不同数据,可以创建一个 CVS,从表里获取数据。这时候在 Pub sampler 里就需要使用 ${}来获取数据,字符串要加“”。



如果想要重复获取数据,在遇到文件结束符再次循环要选 true,停止线程那里要选 false。



  • 最好设置一个定时器,控制发送的频率。比如设置 10 毫秒一次,相当于 1 个线程 1 秒发送 100 次数据



最后,创建一个查看结果数,可以查看发送的明细。看汇总就创建一个汇总报告。

如果要模拟多个设备,那就创建多个线程组即可。如果想要测试 MQTT 服务能承受多大的并发, 可以根据需要设置线程数和间隔时间,不过这个数量如果特别大的话,并发量会不精准,但总体上还是可以达到我们的测试目的。

发布于: 刚刚阅读数: 6
用户头像

石云升

关注

做时间的朋友,用文字记录成长。 2017-11-30 加入

🏆 InfoQ首批签约作者 🏆、荣获2021年度社区共建奖 微信公众号:石云升 微信:shiys1121 凡是过往,皆为序章。正在找寻可以一起做事业的合作伙伴!

评论

发布
暂无评论
使用JMeter模拟设备通过MQTT发送数据_测试_石云升_InfoQ写作社区