压力测试 mqtt 代理(HiveMQ CE 代理)
Posted
技术标签:
【中文标题】压力测试 mqtt 代理(HiveMQ CE 代理)【英文标题】:Stress test mqtt broker (HiveMQ CE broker) 【发布时间】:2021-06-23 19:12:17 【问题描述】:我必须在我的机器(或我的网络中的机器)上对 MQTT 代理进行压力测试(负载测试),以了解可以同时保持连接到该机器上的代理的客户端数量、消息数可以由不同的客户端同时发布到注册的主题和类似的东西。 我怎样才能做到这一点?
我对此很陌生,并且看过一些有关 Jmeter 的视频,但是我在哪里可以得到 Jmeter 中上述问题的答案?顺便说一句,Jmeter 没有内置的 MQTT 支持,人们为此制作了一些插件,即https://github.com/xmeter-net/mqtt-jmeter
附言Jmeter 不是必需品。我刚才提到它是因为我在上面找到了一些视频和资源。
【问题讨论】:
您可以通过多种方式对代理进行压力测试(构建一个运行多个应用程序实例的实验室或使用 jmeter、Gatling、mqtt-malaria 等工具)。但是,除非测试模拟您现实世界的工作负载(例如,连接的客户端数量、QOS、消息大小/体积/时间、订阅数量、加密与未加密连接等),否则我不确定测试会取得多大成就。请注意,要求工具推荐的问题是off-topic。 【参考方案1】:-
MQTT Connect 采样器打开一个连接(每个 JMeter 线程一个连接 - 虚拟用户),因此如果您在 Thread Group 中定义了 2 个线程 - 将打开 2 个连接。
MQTT Pub Sampler 通过现有连接向定义的主题发送消息。如果您想从同一用户向不同主题发送消息 - 您可以使用 CSV Data Set Config 参数化主题名称,这同样适用于消息负载
完成后,您可以致电MQTT DisConnect
如果需要,请参阅Testing the MQTT Messaging Broker for IoT - A Guide 文章了解更多详细信息。
【讨论】:
以上是关于压力测试 mqtt 代理(HiveMQ CE 代理)的主要内容,如果未能解决你的问题,请参考以下文章