利用JMeter的IoT平台性能压测实战——实践类

使用JMeter进行MQTT压力测试 准备工作 MQTT插件 JMeter本身没有MQTT压力测试功能需要下载插件进行压力测试 下载地址 将下载好的mqtt-xmeter-2.0.2-jar-with-dependencies.jar放在\lib\ext下面重新启动就OK了 编写脚本 创建线程组(每一个线程组就是一个MQTT客户端) 创建链接 由于链接每个线程只用创建一次,所以需要添加逻辑控制器 - 仅一次控制器 在仅一次控制器下方添加逻辑取样器 MQTTConnect 填写链接相关属性 在ClientId这里如果需要con 阅读详情

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

 

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

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

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

 准备工作  
开通IoT物联网设备接入服务。物联网平台_设备接入_设备管理_监控运维_数据分析-阿里云
安装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物联网平台控制台日志 

物联网平台产品介绍详情:物联网平台_设备接入_设备管理_监控运维_数据分析-阿里云

​​​​​​​

阿里云物联网平台客户交流群

jmeter性能试--对MQTT服务做压力测试 ·JDK安装(JMeter运行需要java环境,安装JMeter前需要安装配置好Java) ·Jmeter安装 1.jdk安装及配置环境变量 ①安装 由于jmeter运行是基于java的,所以需要下载1.7以上的jdk:地址jdk8下载-JDK 8下载8u291 官方正式版-jdk832位和64位西西软件下载 ②检验 安装时最好在C盘根目录下建立一个目录如C:\java8-jmeter 之后设置系统变量 JAVA_HOME=C:\java8-jmeter Path=C:\Java8\b 阅读详情

相关推荐

mqtt服务器压力测试实战(Jmeter5.5+xmeter插件)

mqtt压力测试jmeter5.5-xmeter插件包

淘淘小窝 1878

RSA 与 ElGamal 算法解析:3 个核心例题详解与 Python 实现避坑

本文深入解析RSA与ElGamal算法,通过3个核心例题详解其数学原理与Python实现避坑技巧。内容涵盖公钥密码学基础、大数运算陷阱、模逆计算优化,以及实际应用中的安全性考量和性能优化建议,帮助开发者掌握现代密码学核心算法。

weixin_33835103的博客 434

物联网试_JMeter插件_MQTT协议_WebSocket支持_性能_消息队列_负载试_分布式系统_服务器压力测试_自动化试工具_开源项目_持续集成_质量保障_协议分析_网络通信_.zip

物联网项目资源

JMeter MQTT 消息

简介:## 背景信息 MQTT 是专为移动互联网(Mobile Internet)、物联网IoT)设计的超轻量级消息协议,连接移动端与云服务双向通信,广泛应用于各种应用领域,如端向云汇报状态、云向端推送消息、端向端发送消息(即时聊天)等场景MQTT 服务性能指标包括支撑同时在线移动端设备数量、消息收发量级、消息延迟等。 &nbs 背景信息 MQTT 是专为移动互联网(Mobile Internet)、物联网IoT)设计的超轻量级消息协议,连接移动端与云服务双向通信,广泛...

johnhuster的专栏 5314

Jmeter 物联平台MQTT 分布式多客户端压力测试----实战

一)Windows下安装Jmeter5.1.1 安装JDK 1、登录官网:www.oracle.com 2、登录用户 3、 4、 5、 6、 7、 8、运行该程序 9、配置环境变量 安装Jmeter 1、官网下载 jmeter 安装 zip 包 打开链接:https://jmeter.apache.org/download_jmeter.cgi 找到:Apache JMeter 5.1.1 找到:Binaries 下载Apache JMeter 5.1.1.zip 2、配置系统环境变量 电脑搜索“高级

weixin_44487337的博客 1512

IoT 】国内云厂商 IoT 物联网平台性能评估

JMeter 是 Apache 基金会旗下一款主流性能试工具,通过模拟并发来实现对目标服务器性能试。我们引入支持 MQTT 协议的JMeter 的插件库,即可实现对国内主流云厂商的IoT物联网服务的性能试。JMeterMQTT工具JMeter安装JMeter 是基于 Java 开发的,因此需要预先安装 Java 8+ 环境,目前 JMeter 最新稳定版...

5299

RocketMQ - 性能:工具选型与指标分析(JMeter/LoadRunner)

RocketMQ性能指南 摘要 本文介绍了如何使用JMeter和LoadRunner对RocketMQ消息中间件进行专业性能。文章首先通过电商平台故障案例说明的重要性,详细对比了JMeter、LoadRunner和自研脚本三种工具的优缺点,并推荐JMeter作为首选工具。 主要内容包括: 两种JMeter方案:JSR223 Sampler(Groovy)和Java Request Sampler 详细代码示例展示如何实现RocketMQ Producer脚本 关键配置建议:线程组设置

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

jmeter中没有sampler_基于JMeter工具的IoT物联网平台MQTT服务性能实战

背景 MQTT 是超轻量级消息协议,用于连接移动端与云服务双向通信,广泛应用于物联网(IoT)领域,如设备向云端上报状态、云端向设备推送消息、设备端A向设备端B发送消息等场景。本文以充电宝机柜上报状态场景为例介绍如何使用 MQTT 插件和 JMeter 脚本IoT物联网平台MQTT 服务性能。 准备工作 开通IoT物联网设备接入服务。https://www.aliyun.com/prod...

weixin_39995943的博客 351

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

背景MQTT 是超轻量级消息协议,用于连接移动端与云服务双向通信,广泛应用于物联网(IoT)领域,如设备向云端上报状态、云端向设备推送消息、设备端A向设备端B发送消息等场景。本文以充电宝机柜上报状态场景为例介绍如何使用 MQTT 插件和 JMeter 脚本IoT物联网平台MQTT 服务性能。准备工作开通IoT物联网设备接入服务。https://www.aliyun.c...

weixin_39618597的博客 432

如何入门做物联网系统

物联网系统在架构、网络模式、通信协议等方面与传统的互联网系统有所区别。因此,传统的性能试方法不能直接套用到物联网系统中。

7DGroup,让技术更有价值! 3023

16进制发送 mqtt客户端调试工具_基于JMeter工具的IoT物联网平台MQTT服务性能实战...

背景 MQTT 是超轻量级消息协议,用于连接移动端与云服务双向通信,广泛应用于物联网(IoT)领域,如设备向云端上报状态、云端向设备推送消息、设备端A向设备端B发送消息等场景。本文以充电宝机柜上报状态场景为例介绍如何使用 MQTT 插件和 JMeter 脚本IoT物联网平台MQTT 服务性能。 准备工作 开通IoT物联网设备接入服务。https://www.aliyun.com/prod...

weixin_34208400的博客 222

Jmeter 保姆级入门教程

如果看的每个请求结果响应似GUI界面那样,可以在jmeter的GUI界面的查看结果树组件的浏览那里导入结果文件即可。

hlsxjh的博客 1193

JmeterMQTT

JmeterMQTT 1,下载Jmeter-MQTT试需要的jar包,下载地址:mqtt-xmeter-1.0.1-jar-with-dependencies.jar 2,将下载的jar文件放到JMeter安装主目录的lib/ext下,重启JMeter,即可看到关于MQTT的取样器。 MQTT Connect:连接操作取样器; MQTT DisConnect:断开连接操作取样器; MQTT Pub Sampler:消息发布取样器; MQTT Sub Sampler:消息订阅取样..

weixin_45380416的博客 1034

JMeter MQTT 在连接场景中的使用

插件中 MQTT Connect 请求主要模拟设备与 MQTT 服务器(本文以 EMQX 为例)建立连接,并按指定间隔发送 MQTT keep alive 报文,在物联网实际场景中经常需要海量设备连接并保持在线,大量设备同时上线及下线;本文脚本将模拟 400 个设备同时与 EMQX 建立连接,并保持连接 30 分钟后同时下线。...

weixin_41885542的博客 698

Jmeter 试 MQ 接口

MQ(message queue)消息队列,是基础数据结构 先进先出 的一种典型数据结构。一般用来解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。

软件自动化测试技术交流、资源分享 396

mqtt服务器性能H3,运用 MQTT-JMeter 插件MQTT 服务器性能

MQTT 简介MQTT(Message Queuing Telemetry Transport,消息队列遥传输)是 IBM 开发的一个即时通讯协议,它比较适合于在低带宽、不可靠的网络的进行远程传感器和控制设备通讯等,正在日益成为物联网通信协议的重要组成部分。MQTT 是目前最流行的物联网协议之一,主要用于移动 Push,移动 IM,物联网 M2M,物联网采集等,这些应用场景的特点是客户端的连接设...

weixin_39747807的博客 852

利用jmeterMQTT

可将该选项设为 true,MQTT 服务器端将会存储插件发布的保留消息及其 QoS,并在相应 topic 上发生订阅时,直接将最后一条保留消息投递给订阅端,使得订阅端不必等待即可获取发布端的最新状态值。如果勾选,发布的消息体开头会附带当前时间戳,配合消息订阅采样器的 Payload includes timestamp 选项,可以在消息接收端计算消息达到的延时。后继连接过程中,尝试重连的最大次数。消息发布采样器复用连接采样器中建立的 MQTT 连接,从目标 MQTT 服务器上订阅消息。

dayao21的博客 2783
上一篇: 设备端零改动迁移实战——实践类
下一篇: IoT设备与手机App之间如何实现实时消息通信——业务场景最佳实践
阿里云AIoT
博客等级 码龄4年 130粉丝 2原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值