JMeter MQTT 在订阅与发布测试场景中的使用

莫问天涯路几重,轻衫侧帽且从容。这篇文章主要讲述JMeter MQTT 在订阅与发布测试场景中的使用相关的知识,希望能为你提供帮助。
通过之前的文章,相信大家已经熟悉了 JMeter 及 MQTT 插件的使用等基础知识。本文我们将介绍 JMeter MQTT 插件在订阅与发布测试场景中的使用。


订阅、发布场景介绍发布场景
使用 MQTT Connect 请求模拟设备与 ??MQTT 服务器??(本文以 EMQX 为例)建立连接,随后使用MQTT Pub Sampler 请求模拟设备发布消息到 MQTT Broker,在 MQTT Pub Sampler 后添加固定定时器模拟定时发布消息。
订阅发布场景
使用 MQTT Connect 请求模拟与 MQTT Broker 建立连接,其中订阅者订阅指定主题,发布者发布消息到指定主题。
使用 MQTT 插件编写测试脚本发布脚本

  1. 在测试计划下创建线程组。



  1. 在线程组下添加仅一次控制器及“MQTT 连接采样器”(即"MQTT Connect")。

  1. 在 MQTT 连接采样器后添加 MQTT Pub Sampler,用于发布消息。
  • QoS Level 为消息级别,支持0、1、2
  • Retained Mesages 为是否保留消息,支持 true、false
  • Topic name 为主题名称
  • Add timestamp in payload 在报文中加入时间戳
  • Message type : String 可填写自定义字符串报文
  • Message type : Hex string 可填写自定义十六进制报文
  • Message type : Randmom string with fixed length 为固定长度随机字符,后面Length为指定长度

  1. 在 MQTT Pub Sampler 下添加“固定定时器”,用于控制发布消息频率。

订阅脚本
  1. 在测试计划下增加线程组。

  1. 在线程组下添加仅一次控制器及“MQTT 连接采样器”(即"MQTT Connect")

  1. 在 MQTT Connect 后添加 MQTT Sub Sampler,模拟订阅消息。
  • Qos Level 消息级别,支持0、1、2
  • Topic name(s) 订阅主题名称,支持+/#通配符共享订阅
  • Payload includes timestamp 报文是否包含时间戳
  • Sample on : specified elapsed time(ms) 按毫秒时间统计订阅到消息
  • Sample on : number of received messages 按次数统计订阅到消息
  • Debug response 调试返回信息,即在察看结果树中显示详细订阅报文

测试的执行【JMeter MQTT 在订阅与发布测试场景中的使用】对编写好的脚本进行调试验证,确认 MQTT Broker 的连通性及脚本运行逻辑是否符合预期。
将线程组页面的线程组数分别修改为 50,设置循环次数为 1000,页面点击 Start 按钮执行测试。

查看测试结果,点击“察看结果树”可查看发布及订阅报文内容。

从汇总报告看出 Pub 和 Sub 吞吐量为 161.5/s,50 发布者与 50 订阅者消息数都是 50*1000,即发布订阅吞吐与消息数量都一致。

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

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


本系列中的其它文章
  • ??开源测试工具 JMeter 介绍 - 物联网大并发测试实战 01??
  • ??JMeter 测试组件介绍 - 物联网大并发测试实战 02??
  • ??如何在 JMeter 中使用 MQTT 插件 - 物联网大并发测试实战 03??
  • ??JMeter MQTT 在连接测试场景中的使用 - 物联网大并发测试实战 04??
版权声明: 本文为 EMQ 原创,转载请注明出处。
原文链接:??https://www.emqx.com/zh/blog/the-use-of-jmeter-mqtt-in-subscription-and-publishing-test-scenarios??

    推荐阅读