通过模拟真实设备的上报协议进行压力测试,可以有效地检测整个系统链路的性能,及时发现潜在的性能瓶颈和薄弱环节。这种测试方法在系统开发和维护中发挥着重要作用,有助于确保系统稳定运行,提高用户体验。通过预先暴露问题,可以在系统投入实际运行前进行优化和调整,从而降低故障风险,提高系统的可靠性和效率。
这里参考涂鸦智能物联网平台的【涂鸦智能设备属性、动作与事件】、【功能定义】 、【MQTT.fx标准协议接入示例】和阿里云物联网平台的【阿里云物联网平台使用MQTT.fx接入物联网平台】、【基于Alink协议自主开发】、【单个添加物模型】、【设备使用物模型通信】,使用Jmeter各模拟一个温湿度传感器的上报数据。
模拟涂鸦智能平台设备上报


- 配置好变量:设备的id,MQTT连接时候需要用到的用户名密码,这里先简化了用户名和密码的处理,实际涂鸦平台连接MQTT时使用的用户名密码生成方式更为复杂。
- MQTT连接:首先,在Jmeter中配置MQTT采样器,包括服务器地址、端口、客户端ID等信息,确保能够成功连接到物联网平台。参考涂鸦智能的协议接入文档进行配置。
- 订阅TOPIC:根据测试需求,在Jmeter中设置订阅特定的主题(Topic),这些主题对应于想要模拟的设备数据上报或命令下发的通道。这包括了设备状态变化、控制命令反馈等,涂鸦智能平台支持的Topic格式可以在设备模型文档中找到。
- 获取初联网信息:模拟设备初次连接到物联网平台时,通常需要获取一些基础信息,如服务器时间、夏令时设置、设备物模型等信息。相关的操作和数据格式,可以参考涂鸦智能的功能定义文档。
- 上报只需上报一次的数据:设备在初次连接需要上报的数据,如固件版本号、设备配置信息或离网期间积累的历史数据等。
- 定期上报数据:在Jmeter中设置定时器,以模拟设备定期上报温湿度数据、WiFi信号强度等信息。这些信息可以是通过函数助手生成的随机数据,也可以是预定义的模拟数据。在这里,模拟设备使用随机函数生成数据。
- 随机上报数据:一些设备事件(如报警、状态变更)的上报是基于特定条件触发的。这种情况下,可以在Jmeter中使用条件逻辑控制器来模拟这种随机事件的数据上报。
模拟阿里物联网平台设备上报
阿里物联网平台和涂鸦云平台的设备上报流程类似,总体流程都是连接MQTT,上报数据,但是一些细节点两个平台之间还是有区别的,比如阿里云平台的MQTT TOPIC中会包含产品类型,涂鸦云平台的设备唯一标识叫【DeviceID】,阿里云平台叫【DeviceName】等等。


- 配置好变量:设置设备的唯一标识符、产品类型,以及MQTT连接时所需的用户名和密码。
- MQTT连接:在Jmeter中添加MQTT采样器,并配置服务器地址、端口、客户端ID等信息,确保能成功连接到阿里云物联网平台。参考阿里云物联网平台文档进行详细配置。
- 订阅TOPIC:在Jmeter中设置订阅到特定的主题,这些主题对应于模拟的设备数据接收控制命令的通道。
- 获取初联网信息:模拟设备初次连接物联网平台时获取的基础信息,例如同步服务器时间,获取影子数据等。
- 上报只需上报一次的数据:如设备标签、固件版本信息等。这些信息一般在设备首次连接或有重大更新时上报。
- 定期上报数据:设置Jmeter中的定时器,模拟设备定期(例如每10秒)上报关键数据,如温湿度和WiFi信号强度。可通过Jmeter函数助手生成随机数据,模拟实际环境中的数据变化。
- 随机上报数据:对于某些根据特定条件触发的设备事件(如报警),在Jmeter中使用条件逻辑控制器来模拟这类数据的随机上报。
JMX文件:
📎 参考资料
- 作者:Yibin
- 链接:https://yibin.dev/article/7fc24b0d-e740-443e-bd87-f03f32b9e6b2
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章







