【问题标题】:Stress test mqtt broker (HiveMQ CE broker)压力测试 mqtt 代理(HiveMQ CE 代理)
【发布时间】:2023-11-28 21:49:01
【问题描述】:

我必须在我的机器(或我的网络中的机器)上对 MQTT 代理进行压力测试(负载测试),以了解可以同时保持连接到该机器上的代理的客户端数量、消息数可以由不同的客户端同时发布到注册的主题和类似的东西。 我怎样才能做到这一点?

我对此很陌生,并且看过一些有关 Jmeter 的视频,但是我在哪里可以得到 Jmeter 中上述问题的答案?顺便说一句,Jmeter 没有内置的 MQTT 支持,人们为此制作了一些插件,即https://github.com/xmeter-net/mqtt-jmeter

附言Jmeter 不是必需品。我刚才提到它是因为我在上面找到了一些视频和资源。

【问题讨论】:

  • 您可以通过多种方式对代理进行压力测试(构建一个运行多个应用程序实例的实验室或使用 jmeter、Gatlingmqtt-malaria 等工具)。但是,除非测试模拟您现实世界的工作负载(例如,连接的客户端数量、QOS、消息大小/体积/时间、订阅数量、加密与未加密连接等),否则我不确定测试会取得多大成就。请注意,要求工具推荐的问题是off-topic

标签: jmeter mqtt load-testing


【解决方案1】:
  1. MQTT Connect 采样器打开一个连接(每个 JMeter 线程一个连接 - 虚拟用户),因此如果您在 Thread Group 中定义了 2 个线程 - 将打开 2 个连接。
  2. MQTT Pub Sampler 通过现有连接向定义的主题发送消息。如果您想从同一用户向不同主题发送消息 - 您可以使用 CSV Data Set Config 参数化主题名称,这同样适用于消息负载
  3. 完成后,您可以致电MQTT DisConnect

如果需要,请参阅Testing the MQTT Messaging Broker for IoT - A Guide 文章了解更多详细信息。

【讨论】:

    最近更新 更多