怎么通过MQTT查看数据是否上云端_基于JMeter工具的IoT物联网平台MQTT服务性能压测实战...

beef83b3e148fe48497ba98381393043.png

 背景  

MQTT 是超轻量级消息协议,用于连接移动端与云服务双向通信,广泛应用于物联网(IoT)领域,如设备向云端上报状态、云端向设备推送消息、设备端A向设备端B发送消息等场景。

本文以充电宝机柜上报状态场景为例介绍如何使用 MQTT 插件和 JMeter 脚本压测IoT物联网平台的 MQTT 服务性能。

 准备工作  

开通IoT物联网设备接入服务。https://www.aliyun.com/product/iot-deviceconnect

安装JMeter 5.1.1版本  版本 https://jmeter.apache.org

 压测实战  

1.创建产品和注册设备

我们在IoT物联网平台设备管理中,创建一个充电宝产品,并注册10个设备,获得身份三元组。

47780462bfb69e5c135eebd0477844e3.png

2.准备设备身份信息CSV文件

每个设备和IoT物联网平台建立连接时,需要提供UserName 、 Password 、 ClientId 这 3个身份信息,上报状态数据时需要知道自身的productKey和deviceName来确定通信Topic。

依照IoT物联网平台身份认证文档,我们把三元组转换成UserName 、 Password 、 ClientId,存储到client.csv文件中。示例如下:

c16c2ac1d5724f631ece1752e81577c8.png

3.下载 Jmeter ,安装 MQTT 插件

下载 mqtt-jmeter 插件最新版本 JAR 包:mqtt-xmeter-2.0.2-jar-with-dependencies.jar 。下载地址:https://github.com/emqx/mqtt-jmeter

拷贝插件 JAR 包到 JMeter 安装目录的 lib/ext/ 子目录下。操作过程如下:

08cab530a232e1d543669ca3071006d8.png

4.编辑 JMeter 脚本

我们以 JMeter 5.1.1 英文图形界面为例。

4.1 配置客户端 CSV 数据文件

  • 打开 JMeter,并新建脚本。

  • 在 JMeter 左侧文件目录中右键单击 Test Plan ,选择 Add > Threads (Users) > Thread Group。

  • 在 JMeter 左侧文件目录中右键单击 Test Plan ,选择 Add > Listener > > View Results Tree ,添加 View Results Tree 监听器,方便本地调试测试脚本。

  • 在 Test Plan 区域右键单击 Thread Group ,选择 Add > Logic Controller > Once Only Controller。JMeter 中一个线程模拟一个 MQTT 客户端设备,使用 Once Only Controller 保证一个线程仅读取一次客户端 CSV 数据文件,绑定一条客户端信息。

  • 在 Test Plan 区域右键单击 Once Only Controller , 选择 Add > Config Element > CSV Data Set Config。并在 CSV Data Set Config 对话框中配置以下信息。

ba64b6d70dd58688e9d956bfe604f03e.png

Filename :客户端信息 CSV 文件路径 client.csv

File encoding:CSV 文件编码格式,本示例使用 UTF-8

Delimiter这里我们输入 #

Recycle on EOF:是否循环读取文件。选择 False

4.2 建立 MQTT 连接

我们使用 Once Only Controller 控制一个客户端只需执行一次建连操作。

  • 在 Test Plan 区域右键单击 Once Only Controller,选择 Add > Sampler > MQTT Connect。

  • 在 MQTT Connect 对话框中配置以下信息。

547a759f9b6e29efb11a8e475b9d4f3f.png

a2c33f5b91ec0cd59c04c7b08a13d0c9.png

4.3 配置发布消息

  • 在 Test Plan 区域右键单击 Thread Group,选择 Add > Sampler > MQTT Pub Sampler

  • 在 MQTT Pub Sampler 对话框中配置以下信息。

8a000b9a6b5b8c3903596cc994efc714.png

QoS Level:客户端向服务器发布消息的服务质量。本示例中选择 0,即只发送一次,丢失不重发,可按需选择其他级别。

Topic name:消息 topic 。MQTT topic 支持层次结构,使用 / 分割,类似文件路径,如 pts_test/jmeter 等。

Add timestamp in payload:是否添加消息头添加发送时间戳。一般勾选此项,方便测试时检查消息延迟。

Payloads:消息体。本示例中填写 this message is from jmeter ${clientId}!,即在消息体中添加客户端 ID,方便测试和调试检查。

4.4 启动压测脚本

  • 在 Test Plan 区域单击 Thread Group,配置 Loop Count 为 10(循环执行 10 次)。

  • 在 JMeter 页面左上角单击保存,然后执行脚本。

  • 在 View Results Tree 页面查看脚本执行结果:

7501fbb71a89651dbeb6720ae065cf9f.png

  • 在Summary Report 页面查看脚本执行结果:

d5db57d3c0f21bacc59f4a4574c6e133.png

  • 在Graph Results 页面查看脚本执行结果:

bb214d7766b1ea25fc82e9db64944a8d.png

4.5 IoT物联网平台控制台日志

798107e09554ec019b6a6e21142bf8a1.png

【往期回顾】

1.自建MQTT迁移上云→IoT物联网平台

2.物联网开发实战-设备引导服务

3.智能手持测温枪开发实践

4.人类从古至今,厕所演变的历史是怎样的?

5.工业Modbus,电力104规约接入IoT平台

6.M2M通信实现小程序App和IoT设备同步

73ebc322056eee2995db14935301c7ed.gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值