环境准备:
jmeter插件下载:
mqttxmeter1.0.1jarwithdependencies.jar
把MQTT插件放在 %JMeter_Home%/lib/ext下。重启jmeter.

MQTT连接。

Server name or IP: 被测MQTT服务器地址。
Port number: TCP连接的端口1883, SSL连接则是8883。
Timeout(s): 连接超时设置,以秒为单位。
user name: 连接MQTT的帐户名。
password: 连接MQTT的密码。(具体询问开发)
ClientId: 客户端标识,具体询问开发被模拟的客户端标识(注意一个标识快速连接多次会连接失败,并发记得参数化(经验))。
Keep alive(s): 心跳信号发送间隔。例如,300表示客户端每隔300秒向服务器发出ping请求,以保持连接活跃。(注意,不正常disconnect,连接还会继续保持。除非关掉jmeter. 正常mqtt disconnect请无视。)
Connect attempt max: 第一次连接失败后,尝试重连的最大次数。超过该次数则认为连接失败。
Reconnect attempt max: 后续连接过程中连接失败后,尝试重连的最大次数。超过该次数则认为连接失败。
好了,连接上就可以进行消息发布了。


MQTT发布

QoS Level: 服务质量,取值为0,1,2,分别代表MQTT协议规范里的至多一次(AT_MOST_ONCE),至少一次(AT_LEAST_ONCE),精确一次(EXACTLY_ONCE)(网上COPY,具体我就用了0,用1 2发送失败。)
Topic name: 做为发布方,把消息发布到所属的话题中。
Add timestamp in payload: 如果勾选,发布的消息体开头会附带当前时间戳,利用它可以在消息接收端计算消息达到的延时。不勾选则只发送实际的消息体。

  1. Message type: 目前支持三种消息类(我只用了String,其它请看网上的其它介绍。)

    1. String: 普通字符串 (如上面截图所示,你要发送的消息。具体上报什么,可找开发要相关json等。)
    2. Hex String: 以16进制数值表示的串,比如字符串Hello, 可以表示为48656C6C6F (其中,48在ascii表中对应字母H,依次类推)。通常16进制串用来构造非文本的消息体,例如描述某些私有的协议交互和控制信息等等。
    3. Random string with fixed length*: 按指定长度生成随机的串作为消息体。

此时消息发送成功了。


消息订阅


topic name(s): 想要订阅的主题。(可以订阅多个)多个主题以英文逗号分隔。
Sample on:

  1. specified elapsed time(ms): 订阅的主题每多少毫秒作为一个结果展示(个人理解)。在这些毫秒内所收到的消息全部展示在一个结果内。
  2. number of received messages: 每收到多少个消息作为一个结果展示(个人理解)。

断开连接


注意:主动支行MQTT DisConnect可以断开。若测试过程中手动停止,致使线程未运行DisConnect,则连接不会断开。(已经过验证。)

测试过程中遇到的问题:

  1. MQTT连接数未修改。连接到1W报错连接失败。
  2. 修改MQTT连接数后,成功并发到5W,后续还会再进行测试。

MQTT消息队列压力测试相关推荐

  1. 使用 WebSocket 客户端连接 MQTT 服务器/vue 项目使用mqtt消息队列实现推送

    简介 近年来随着 Web 前端的快速发展,浏览器新特性层出不穷,越来越多的应用可以在浏览器端或通过浏览器渲染引擎实现,Web 应用的即时通信方式 WebSocket 得到了广泛的应用. WebSock ...

  2. 互联网协议 — MQTT 消息队列遥测传输协议

    目录 文章目录 目录 MQTT MQTT 的设计原则 MQTT 的实现原理 MQTT 的关键术语 MQTT 的方法 MQTT 报文结构 Linux MQTT Server Android MQTT C ...

  3. MQTT - 消息队列遥测传输协议

    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级" ...

  4. jmeter性能测试--对MQTT服务做压力测试

    ·环境配置 ·压测步骤 1.MQTT是一个基于客户端-服务器的消息发布/订阅传输协议.要对MQTT协议进行测试,需要下载一个mqtt-xmeter-jar-with-dependencies.jar插 ...

  5. mqtt(4):mqtt-benchmark 对mqtt 服务进行压力测试

    前言 mqtt 相关文章分类:https://blog.csdn.net/freewebsys/article/category/8677221 本文的原文连接是: https://blog.csdn ...

  6. Kafka压力测试(写入MQ消息压测和消费MQ消息压测)

    1.测试目的 本次性能测试在正式环境下单台服务器上Kafka处理MQ消息能力进行压力测试.测试包括对Kafka写入MQ消息和消费MQ消息进行压力测试,根据10w.100w和1000w级别的消息处理结果 ...

  7. 一种MQTT客户端消息队列的设计

    MQTT 简介 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议.它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟 ...

  8. java mqtt paho_使用eclipse paho在java端实现MQTT消息的收发(客户端与服务端实例)...

    一.MQTT(消息队列)简介 MQTT(MQ Telemetry Transport)是IBM开发的一种网络应用层的协议,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信 ...

  9. System V 消息队列

    一.System V 消息队列 有一个队列,队列存放各种消息.每个进程可以把数据封存在消息中,再放入队列.每个进程都可以拿到消息队列,再从中取出/放入消息. 消息队列也有管道一样的不足,就是每个消息的 ...

最新文章

  1. 三、概念数据模型CDM(Conceptual Database Model )
  2. DHCP配置与DHCP中继代理2
  3. webservice 接口练习
  4. org.hibernate.MappingException: duplicate import异常
  5. 《算法设计编程实验:大学程序设计课程与竞赛训练教材》——2.3 构造法模拟的实验范例...
  6. AI 到底是怎么「想」的?
  7. C语言目录文件操作补充
  8. 【爬虫剑谱】二卷4章 实战篇-模拟登录铁路12306网站(滑块验证)
  9. (转)优秀的创始人不是知道一切,而是学习一切
  10. git如何移除某文件夹的版本控制
  11. 计算机的配置鼠标,电脑双鼠标怎么设置 电脑双鼠标设置方法
  12. mysql数据库的流水号生成,数据库流水号生成解决方案
  13. 毕业论文参考文献格式及引用设置
  14. html文章整体居中,html如何实现文本上下居中
  15. 编程求一元二次方程的解
  16. SQL的概述及DDL
  17. 计算机开机进不去桌面,电脑开机进不了桌面,怎么破?
  18. pytorch torchvision.datasets
  19. 树莓派3B学习资源链接——Ideas Deserve Spreading.
  20. STM32初学——OLED调试4-1 5-1/5-2

热门文章

  1. 如何登陆系统服务器,linux系统 怎么登陆服务器
  2. LLMs:《Building LLM applications for production构建用于生产的LLM应用程序》翻译与解读
  3. 高阶SQL语言VIEW(视图)
  4. 浅谈工业级4G通信模块适配流程---一个做通信模块十多年的老工程师的经验之谈
  5. 国考计算机怎么评分标准,国考评分标准
  6. 大话数据结构第九章---排序
  7. 计算机java毕业设计 SSM与VUE的汉服销售论坛系统(源码+论文)
  8. MySQL查询累计值的方法
  9. android+3d引擎,基于Android系统3D引擎的设计与实现
  10. webStorm 激活码