MQTT X 1.9.0 发布:开箱即用的 bench 命令,MQTT 性能测试更便捷

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 近日,MQTT 5.0客户端工具MQTT X 1.9.0正式发布:命令行客户端新增bench命令,帮助用户轻松完成MQTT服务的性能测试。

近日,MQTT 5.0 客户端工具 MQTT X 1.9.0 正式发布。

新版本针对桌面客户端优化了一些细节上的 UI 样式与交互方式,新增了一个可以帮助用户更加快速和系统学习 MQTT 协议相关知识的页面,同时也修复了一些已知问题;针对命令行客户端新增了 bench 命令,帮助用户创建、订阅和发布自定义数量的连接、主题与消息,轻松完成 MQTT 服务的性能测试。

MQTT 客户端 图1.png

命令行客户端

新增开箱即用的 bench 命令

在 1.9.0 版本中,MQTT X CLI 提供了一个内置、开箱即用的性能测试命令工具 -- mqttx bench,可以帮助用户快速进行简单的性能和压力测试。用户只需简单安装或更新 MQTT X CLI 后,即可快速使用该命令,无需额外操作,方便易用。

如需大规模场景、深度定制化的测试服务推荐使用全托管 MQTT 负载测试云服务 XMeter

用户使用 bench 命令可以使用规定速率,创建自定义数量的连接,订阅自定义数量的 MQTT 主题,向单个或多个主题中发送自定义数量的消息,通过一行命令即可简单地测试单个或集群下的 MQTT 服务器的连接性能、消息吞吐量等。例如:

  1. 以每 10 毫秒创建一个连接的速率,创建 10000 个连接,客户端 ID 为 mqttx-bench-%i%i 为索引占位符,即第 N 个客户端连接的客户端 ID 就 mqttx-bench-n

    mqttx bench conn -c 10000 -i 10 -I "mqttx-bench-%i"
  2. 启动 5000 个订阅客户端连接,同时订阅主题 mqttx/bench/t

    mqttx bench sub -c 5000 -t mqttx/bench/t
  3. 最后启动 200 个发布客户端连接,向主题 mqttx/bench/t 发布消息,消息速率为每秒 200 条,消息内容为 mqttx/bench/test

    mqttx bench pub -c 200 -im 1000 -t mqttx/bench/t -m "mqttx bench test"

通过以上简单的性能测试中的连接、订阅和发布命令,就可以轻松实现一些简单自定义场景下的 MQTT 性能基准测试,并通过其结果来调试和优化您的 MQTT 服务与系统环境,从而进一步提升您的物联网应用与服务。

MQTT X CLI 的 bench 命令不仅使用简单易上手,其内容输出也非常简洁。对于大量的连接、订阅和发布的输出内容,我们优化了其显示方式,通过动态更新实时的数量,避免在使用过程中被大量输出日志刷屏。

MQTT Bench 图2.png

添加 Retain 消息标识

此外,MQTT X CLI 新增了 MQTT Retain 消息标识,用户可以通过查看接收到的消息中是否包含有 retain: true 来判断是否为 Retain 消息。Retain 消息标识可以帮助用户更好地理解消息的来源为实时消息还是保留消息,从而验证消息的正确性。

MQTT Retain 图3.png

桌面客户端

脚本功能增强

在之前的版本中,MQTT X 只能对于收发消息进行简单的静态数据处理,例如使用随机函数模拟数据,对于特定数据格式的消息模版做一些格式转化或提取关键数据等。

在 v1.9.0 中,我们增强了脚本功能,让用户可以实现一些动态的数据的模拟操作。例如当用户在定时发送中,需要动态地切换两种消息内容,分别为开关指令的打开和关闭,此时可以使用脚本中新增的 index 的参数,通过发送的步长判断,来动态地将两个消息内容进行交替切换,帮助用户来快速测试不同命令切换时其系统的稳定性。除此之外我们还为脚本函数新增了一个 msgType 参数,通过消息类型参数,可以扩展更多的消息转换能力。

注意:index 参数仅在使用定时消息发送时可以接收到。

脚本功能增强 图4.png

MQTT 协议帮助页面

除了提供强大的测试客户端工具帮助开发者快速开发和调试 MQTT 服务与应用,我们也希望开发者能在这一过程中更加深入地理解 MQTT 协议并充分运用其相关特性。

因此,MQTT X 1.9.0 为用户新增了一个帮助页面,提供包括基础知识、快速使用、连接参数说明、客户端编程教程等 MQTT 协议相关的各类内容,帮助用户快速搭建自己的 MQTT 物联网应用。MQTT X 通过满足用户测试需求的各项功能,以及系统知识与实用案例详解参考,成为用户搭建和设计 MQTT 物联网应用的坚实后盾。

MQTT 协议帮助页面 图5.png

UI 与交互优化

我们对于 MQTT X 的 UI 与交互也进行了一些细节上的调整与优化,以提升用户体验。

在左侧连接列表的顶部,我们将新建分组按钮修改为了一个单一的添加按钮,通过点击新建按钮,我们可以选择快速新建一个连接,或为连接快速创建一个分组,避免了用户混淆创建分组与创建连接;同时优化了连接按钮样式显示等。

新建 MQTT 连接 图6.png

在交互方面,我们新增了一些更加实用的快捷键,例如在连接列表中可以通过 Ctrl or Cmd + N 快捷键来新建一个连接,通过使用 Ctrl or Cmd + B 快捷键来快速跳转到关于页面,查看 MQTT X 的一些基础信息。这些快捷键将使用户操作变得更加方便。

其它

  • 客户端顶部的系统菜单栏中,进行了国际化显示,而非纯英文显示
  • 修复了在重新连接后,无法接收到已订阅过主题的消息的问题
  • 移除了一些不正确的配置项单位

未来规划

MQTT X 还在持续增强完善中,以期为用户带来更多实用、强大的功能,为物联网应用与服务的测试和开发提供便利。接下来我们将重点关注以下方面,敬请期待:

  1. MQTT X CLI 支持自动重连
  2. 接收消息和存储时的性能优化,大量消息不卡顿
  3. CLI 支持使用配置文件来进行连接、发布和订阅
  4. MQTT Debug 功能
  5. 支持 Sparkplug B 格式
  6. 接收到的消息可以进行自动图表绘制
  7. 插件功能
  8. 脚本测试自动化(Flow)
版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:https://www.emqx.com/zh/blog/mqttx-v-1-9-0-release-notes

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
7月前
|
网络协议 Shell Linux
【Shell 命令集合 网络通讯 】⭐⭐⭐Linux 测试与目标主机之间的网络连接ping 命令 使用指南
【Shell 命令集合 网络通讯 】⭐⭐⭐Linux 测试与目标主机之间的网络连接ping 命令 使用指南
208 1
|
2月前
|
弹性计算 安全 Linux
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法
|
2月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
48 1
|
7月前
|
NoSQL 关系型数据库 MySQL
涉及rocketMQ,jemeter等性能测试服务器的安装记录
涉及rocketMQ,jemeter等性能测试服务器的安装记录
82 1
|
3月前
|
关系型数据库 MySQL 数据库
6-2|测试连接数据库的命令
6-2|测试连接数据库的命令
|
4月前
【Application Insights】使用Powershell命令向Application Insgihts发送测试数据
【Application Insights】使用Powershell命令向Application Insgihts发送测试数据
|
4月前
|
JSON Kubernetes Linux
【Application Insights】使用CURL命令向Application Insgihts发送测试数据
【Application Insights】使用CURL命令向Application Insgihts发送测试数据
|
4月前
|
缓存 NoSQL 测试技术
【Azure Redis 缓存 Azure Cache For Redis】使用Redis自带redis-benchmark.exe命令测试Azure Redis的性能
【Azure Redis 缓存 Azure Cache For Redis】使用Redis自带redis-benchmark.exe命令测试Azure Redis的性能
|
6月前
|
消息中间件 测试技术 Apache
消息队列 MQ产品使用合集之在测试环境中拥有大量的topic会有什么影响
阿里云消息队列MQ(Message Queue)是一种高可用、高性能的消息中间件服务,它允许您在分布式应用的不同组件之间异步传递消息,从而实现系统解耦、流量削峰填谷以及提高系统的可扩展性和灵活性。以下是使用阿里云消息队列MQ产品的关键点和最佳实践合集。
123 1
|
6月前
|
关系型数据库 应用服务中间件 nginx
docker基础,docker安装mysql,docker安装Nginx,docker安装mq,docker基础命令
docker基础,docker安装mysql,docker安装Nginx,docker安装mq,docker基础命令