我想将 MQTT 连接设置为 Jmeter 属性,并在其他线程中使用此连接,该线程将同时向 MQTT 代理发布消息。我想要实现的是
到目前为止,我所做的是在同一线程组中使用 MQTT 连接、发布采样器和 MQTT 断开连接。但是,当运行多个线程时,除了线程 1 之外,消息发布失败。
如果有任何方法可以实现这一点,请告诉我。
我不这么认为:
是一个好主意,因为行为良好的 JMeter 测试必须代表应用程序的实际使用情况,并且每个 JMeter 线程(虚拟用户)必须代表一个支持 MQTT 的设备,该设备建立自己与代理的连接。如果“消息发布失败”,则表明您的测试设置(参数化、相关性等)或您的 MQTT 代理存在问题,所以首先我会检查:
请参阅测试 IoT 的 MQTT 消息代理 - 指南文章了解更多详细信息。
如果您仍在寻找在线程组之间传递 MQTT 连接的方法,您可以使用 JSR223 Test Elements 和以下代码来完成此操作:
将连接保存到属性中:
props.put('connection', vars.getObject('conn'))
从属性中获取连接对象:
vars.putObject('conn', props.get('connection'))
Efficient MQTT Connect 和 Mqtt-Jmeter 插件中的 MQTT Connect 有什么区别?
如果是,请提供来源/参考资料,以便我也可以阅读。
我不明白为什么这些相同的元素出现在 mqtt-jmeter 插件中,但它们却执行相同的工作。