设备接入 IoTDA
设备接入 IoTDA
- 最新动态
- 功能总览
- 服务公告
- 计费说明
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
-
API参考
- 应用侧API参考
- 设备侧MQTT/MQTTS接口参考
- 设备侧HTTPS接口参考
- 设备侧LwM2M接口参考
- 安全隧道WebSocket接口参考
- 模组AT指令参考
- 修订记录
- SDK参考
- 场景代码示例
-
常见问题
- 热门问题
-
方案咨询
- 连接IoT平台的业务场景有哪些?
- 设备管理服务和设备接入服务合一后的差异点是什么?
- IAM子用户或子项目是否可以开通物联网平台服务?
- 物联网平台支持在华为云的哪些区域开通?
- 华为是否提供模组/硬件终端/应用软件等?
- IAM用户访问API提示没有权限?(是否区分版本?)
- 创建规则或者设置资源文件存储时候提示赋予Security Administrator权限
- 物联网平台设置默认资源空间的规则是什么?
- 设备接入服务如何获取设备数据?
- 物联网平台的资源空间和设备可以无限创建吗?
- 物联网平台支持批量注册设备吗?
- 物联网平台对应用侧和设备侧在开发或使用时有限制吗?
- 物联网平台支持的DTLS加密算法有哪些?
- 物联网平台支持二进制大小端模式切换吗?
- 什么是NB-IoT?
- 物联网平台支持的硬件架构和使用的相关组件有哪些?
- 如何获取平台接入地址?
- 设备集成相关问题
- 设备侧SDK相关问题
- 设备发放相关问题
- LWM2M/CoAP接入相关问题
- MQTT接入相关问题
- 泛协议接入相关问题
- 物模型相关问题
- 消息通信相关问题
- 订阅推送相关问题
- 编解码插件相关问题
- OTA升级相关问题
- 应用集成相关问题
- 实例管理相关问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
基于Jmeter工具进行MQTT性能测试
场景说明
随着物联网技术的发展,全球物联网设备连接规模与日俱增。大量设备接入和设备管理对网络带宽、通信协议以及平台服务架构都带来了很大挑战。IoT架构选型时,对平台进行性能测试显得尤为重要。本文介绍如何使用JMeter工具对平台的MQTT协议接入能力进行性能压测。
本文描述的测试方案如下:
测试场景:
- 模拟1万个设备同时在线,验证平台长连接的稳定性。
- 模拟设备每秒发起100次消息上报,验证平台消息处理能力。
测试环境:
- 压测目标平台:华为云设备接入服务低频单元S1(1万设备在线、200TPS消息上下行)。
- 压测执行机:Jmeter执行机1台,规格如下:
实例类型 |
规格名称 |
vCPUs |
内存 |
---|---|---|---|
通用计算型s6 |
s6.xlarge.2 |
4vCPUs |
8GiB |
前提条件
前期准备
业务流程
使用Jmeter工具对平台进行MQTT协议进行性能压测的具体流程如下:
- 创建产品。创建一个MQTT协议的产品。
- 批量注册设备。采用批量导入的方式注册1万个用于性能测试的设备。
- 导入测试计划。导入已经创建的用于IoT性能测试的测试计划。
- 发起压测。根据业务规格发起对平台的性能压测。
- 查看压测结果。在IoT平台上根据监控指标检查压测结果是否符合预期。
创建产品
- 登录管理控制台,单击左侧导航栏“产品”,单击页面左侧的“创建产品”。
- 根据页面提示填写参数,然后单击“确定”。
表2 参数说明 基本信息
所属资源空间
平台自动将新创建的产品归属在默认资源空间下。如需归属在其他资源空间下,下拉选择所属的资源空间。如无对应的资源空间,请先创建资源空间。
产品名称
自定义。支持字母、数字、下划线(_)、连字符(-)的字符组合。
协议类型
选择MQTT。
数据格式
选择JSON。
所属行业
请根据实际情况选择。
设备类型
请根据实际情况选择。
高级配置
产品ID
定制ProductID,用于唯一标识一个产品。如果携带此参数,平台将产品ID设置为该参数值;如果不携带此参数,产品ID在物联网平台创建产品后由平台分配获得。
导入测试计划
- 下载用于JMeter测试的测试计划。
- 打开JMeter,选择“Open”导入下载的测试计划。
- 在 JMeter左侧文件目录中单击 “User Defined Variables”,在“User Defined Variables”对话框中配置以下信息。
表4 参数说明 参数名
参数说明
server
MQTT协议服务端地址。获取方式参考获取接入地址。
port
MQTT协议端口,填写为8883。
productId
产品ID,创建产品时生成的产品ID。
password
MQTT连接密码。为使用“HMACSHA256”算法以时间戳为密钥对secret进行加密后的值。secret为批量注册设备时填写的密钥。可以通过工具获取加密后的值。
timeStamp
为对password进行加密的时间戳。时间格式为YYYYMMDDHH。
图2 参考样例
发起压测
- 在 JMeter 左侧文件目录中单击 “Thread Group”,配置“Number of Threads”为10000(一个线程对应一个设备在线,配置为10000表示设备与平台间保持1万个设备在线)。
图3 配置设备
- 在 JMeter 左侧文件目录“Thread Group”目录下单击"Delay between sampler" ,配置“Thread Delay(in milliseconds)”为100000(每设备每100秒发布一次消息)。
图4 配置设备
- 在Jmeter工具栏图表中单击
(开始)按钮,启动性能测试。
图5 性能测试 - 在 JMeter 左侧文件目录中单击 “Summary Report”,可以看到“Connect”、"Publish Message"的吞吐量。可以通过调整“Number of Threads”和“Thread Delay(in milliseconds) ” 来调整Jmeter发起的吞吐量。
图6 性能测试
- JMeter测试计划调试正常后,可以将测试计划导入到华为云的CodeArts PerfTest服务,进行分布式部署以满足更高规格的性能测试 。
父主题: 设备接入