使用 MQTT 发布者通过 Jmeter 连接到 TLS

时间:2021-06-14 04:13:48

标签: jmeter mqtt tls1.2

我正在尝试通过 MQTT 发布者发布事件。在提供程序 URL 中提到了 tls://URL:Port

当我尝试执行它时出现以下错误:。我正在使用 apache jmeter 5.0 和 MQTT jar 版本:mqtt-jmeter-0.0.1-SNAPSHOT

java.lang.IllegalArgumentException: tls://...:1887 在 org.eclipse.paho.client.mqttv3.MqttConnectOptions.validateURI(MqttConnectOptions.java:470) [org.eclipse.paho.client.mqttv3-1.0.2.jar:?] 在 org.eclipse.paho.client.mqttv3.MqttAsyncClient.(MqttAsyncClient.java:273) [org.eclipse.paho.client.mqttv3-1.0.2.jar:?] 在 org.eclipse.paho.client.mqttv3.MqttAsyncClient.(MqttAsyncClient.java:167) ~[org.eclipse.paho.client.mqttv3-1.0.2.jar:?] 在 org.eclipse.paho.client.mqttv3.MqttClient.(MqttClient.java:224) ~[org.eclipse.paho.client.mqttv3-1.0.2.jar:?] 在 org.apache.jmeter.protocol.mqtt.paho.clients.BlockingClient.(BlockingClient.java:81) ~[mqtt-jmeter-0.0.1-SNAPSHOT.jar:?] 在 org.apache.jmeter.protocol.mqtt.sampler.PublisherSampler.initClient(PublisherSampler.java:247) ~[mqtt-jmeter-0.0.1-SNAPSHOT.jar:?] 在 org.apache.jmeter.protocol.mqtt.sampler.PublisherSampler.sample(PublisherSampler.java:271) ~[mqtt-jmeter-0.0.1-SNAPSHOT.jar:?] 在 org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:622) ~[ApacheJMeter_core.jar:5.0 r1840935] 在 org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:546) ~[ApacheJMeter_core.jar:5.0 r1840935] 在 org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:486) [ApacheJMeter_core.jar:5.0 r1840935] 在 org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:253) [ApacheJMeter_core.jar:5.0 r1840935] 在 java.lang.Thread.run(Thread.java:832) [?:?]

1 个答案:

答案 0 :(得分:0)

我认为对于 MQTT,您可以选择 tcp, ssl, ws and wss(后两个用于 MQTT 而不是 WebSocket 传输)所以我的期望是 您需要使用 ssl< /strong>,而不是 tls

此外,您使用的 outdated plugin 似乎缺少一些基本功能(例如发送客户端证书),也许考虑使用 xmeter-mqtt 插件会更好?有关详细信息,请参阅 Testing the MQTT Messaging Broker for IoT - A Guide 文章。