基于JMeter工具的IoT物联网平台MQTT服务性能压测实战

简介: 没事儿跑个分

基于Jmeter压测IoT物联网平台的性能


 背景  


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个设备,获得身份三元组。

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

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


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

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/ 子目录下。操作过程如下:



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 对话框中配置以下信息。


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 对话框中配置以下信息。





4.3 配置发布消息

  • 在 Test Plan 区域右键单击 Thread Group,选择 Add > Sampler > MQTT Pub Sampler
  • 在 MQTT Pub Sampler 对话框中配置以下信息。




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 页面查看脚本执行结果:

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

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




4.5 IoT物联网平台控制台日志
image.png
image.png

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
4050 42
|
11月前
|
测试技术 UED 开发者
性能测试报告-用于项目的性能验证、性能调优、发现性能缺陷等应用场景
性能测试报告用于评估系统性能、稳定性和安全性,涵盖测试环境、方法、指标分析及缺陷优化建议,是保障软件质量与用户体验的关键文档。
|
消息中间件 存储 Java
招行面试:10Wqps场景,RocketMQ 顺序消费 的性能 如何提升 ?
45岁资深架构师尼恩在其读者群中分享了关于如何提升RocketMQ顺序消费性能的高并发面试题解析。面对10W QPS的高并发场景,尼恩详细讲解了RocketMQ的调优策略,包括专用方案如增加ConsumeQueue数量、优化Topic设计等,以及通用方案如硬件配置(CPU、内存、磁盘、网络)、操作系统调优、Broker配置调整、客户端配置优化、JVM调优和监控与日志分析等方面。通过系统化的梳理,帮助读者在面试中充分展示技术实力,获得面试官的认可。相关真题及答案将收录于《尼恩Java面试宝典PDF》V175版本中,助力求职者提高架构、设计和开发水平。
招行面试:10Wqps场景,RocketMQ 顺序消费 的性能 如何提升 ?
|
物联网 数据挖掘 BI
基于阿里云物联网平台(IoT)的智能家居系统开发与部署
随着物联网技术的发展,智能家居成为提升生活品质的重要方向。阿里云物联网平台提供设备接入、数据管理及应用开发能力,支持亿级设备接入、高效数据管理和灵活应用开发,确保系统安全。本文通过实战案例展示如何基于该平台构建智能家居系统,涵盖设备接入、远程控制、场景联动与数据分析等功能,助力企业快速部署智能家居解决方案。
|
安全 物联网 物联网安全
揭秘区块链技术在物联网(IoT)安全中的革新应用
揭秘区块链技术在物联网(IoT)安全中的革新应用
|
消息中间件 Kafka 测试技术
消息队列 MQ 性能大揭秘
本文对比了RabbitMQ、RocketMQ、Kafka和Pulsar四款消息队列的性能。RabbitMQ的吞吐量为万级,延迟在低吞吐量时可低至微秒级;高吞吐量下延迟显著上升。RocketMQ官方宣称支持万亿级吞吐量,实际测试中可达百万级TPS,延迟为毫秒级。Kafka和Pulsar的吞吐量均为百万级,Kafka延迟低至2ms,Pulsar延迟约10ms。总体来看,Kafka在高吞吐量下表现最优,而RabbitMQ适合对速度与可靠性要求高的低吞吐量场景。
1725 0
消息队列 MQ 性能大揭秘
|
安全 物联网 网络安全
智能设备的安全隐患:物联网(IoT)安全指南
智能设备的安全隐患:物联网(IoT)安全指南
1580 12
|
传感器 存储 物联网
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点,广泛应用于嵌入式系统开发、通信协议实现及后端服务构建等领域,成为推动物联网技术进步的重要力量。
667 1
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
747 1
|
存储 安全 物联网
C# 在物联网 (IoT) 应用中的应用
本文介绍了C#在物联网(IoT)应用中的应用,涵盖基础概念、优势、常见问题及其解决方法。重点讨论了网络通信、数据处理和安全问题,并提供了相应的代码示例,旨在帮助开发者更好地利用C#进行IoT开发。
775 3

热门文章

最新文章

相关产品

  • 物联网平台