【问题标题】:Connecting to TLS through Jmeter using MQTT publisher使用 MQTT 发布者通过 Jmeter 连接到 TLS
【发布时间】:2021-08-30 00:46:54
【问题描述】:

我正在尝试通过 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) [?:?]

【问题讨论】:

  • ssl:// 代替 tls:// 有效吗?
  • 当我用 ssl 替换 tls 时,出现以下错误:org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:38) ~[org.eclipse.paho.client .mqttv3-1.0.2.jar:?] 在 org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:604) ~[org.eclipse.paho.client.mqttv3-1.0. 2.jar:?] at java.lang.Thread.run(Thread.java:832) [?:?] 原因:javax.net.ssl.SSLHandshakeException:PKIX 路径构建失败:sun.security.provider.certpath。 SunCertPathBuilderException: 无法找到请求目标的有效证书路径

标签: jmeter mqtt tls1.2


【解决方案1】:

我认为对于 MQTT,您可以选择 tcp, ssl, ws and wss(后 2 个用于 MQTT 而不是 WebSocket 传输)所以我的期望是 您需要使用 ssl,而不是 @ 987654327@

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

【讨论】:

  • 我安装了上面提到的最新插件。选择的协议:SSL,勾选双 SSL 认证,选择 .crt 扩展证书。秘密字段保持空白。并尝试但出现以下错误:无法建立连接。请检查 SSL 身份验证信息。
猜你喜欢
  • 2020-11-07
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
  • 2015-09-25
  • 1970-01-01
  • 2017-12-18
  • 2019-12-31
相关资源
最近更新 更多