通过之前的文章,相信大家已经熟悉了 JMeter 及 MQTT 插件的使用等基础知识。从本文开始,我们利用这些测试工具进行测试实战。本文将介绍 MQTT 连接的测试。

连接场景分析

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

如何使用 MQTT 插件编写测试脚本

  1. 在测试计划下创建线程组。
    JMeter 创建线程组
  2. 在线程组下添加“MQTT 连接采样器”(即"MQTT Connect")
    JMeter 添加 MQTT 连接采样器
  3. 在 MQTT 连接采样器下添加“同步定时器”,确保所有线程在同一时间开始建立连接。
    JMeter 添加同步定时器
  4. 在线程组下添加“测试活动”,用于控制建立连接后连接保持的时间。
    JMeter 添加测试活动
  5. 在线程组下添加“MQTT 断开连接采样器” (即"MQTT DisConnect"),模拟设备同时断开连接。
    JMeter 添加 MQTT 断开连接采样器
  6. 在测试计划下创建“汇总报告”和“察看结果树”监听器,用于检查 JMeter 请求结果。
    JMeter 汇总报告
    JMeter 察看结果树

测试的执行

对编写好的脚本进行调试验证,确认 MQTT Broker 的连通性及脚本运行逻辑符合预期后,将线程组页面的线程组数修改为 400,页面点击 Start 按钮执行测试。
JMeter Start

查看连接结果,从汇总报告看出吞吐量为 394.9/s,即 400 客户端在 1 秒内同时连接。
JMeter 汇总报告2

JMeter 查看采样器结果

登录 EMQX Dashboard 页面,显示如下:

EMQX Dashboard

附件:样例脚本

读者可下载测试脚本运行并查看结果。

版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:https://www.emqx.com/zh/blog/test-mqtt-connection-with-jmeter


EMQX
336 声望436 粉丝

EMQ(杭州映云科技有限公司)是一家开源物联网数据基础设施软件供应商,交付全球领先的开源 MQTT 消息服务器和流处理数据库,提供基于云原生+边缘计算技术的一站式解决方案,实现企业云边端实时数据连接、移动、...