Jmeter 分布式测试不适用于双向 SSL 握手

Jmeter Distributed Testing Not working with two way SSL Handshake

我曾尝试使用两台服务器对需要双向 SSL 握手的请求进行分布式测试。当我们不使用远程主机进行测试时,这工作正常

sh jmeter.sh -n -t sample_Load_Test/sample_test.jmx -l sample_report/Log/results.jtl -e -o sample_report/Dashboard/ 

Jmeter 成功:

但是在尝试对同一个 jmx 文件使用远程主机时,SSL 握手失败。我在所有用于分布式测试的服务器中放置了相同的 jmeter.p12 和 truststore.jks。 使用的命令:

 sh jmeter.sh -n -t sample_test/sample_load_test.jmx -l sample_report/Log/results.jtl -e -o sample_report/Dashboard/ -r -Jserver.rmi.ssl.disable=true

请查看我遇到的错误

Jmeter 故障:

<httpSample t="20" it="0" lt="0" ct="20" ts="1545068074631" s="false" lb="HTTP Request" rc="Non HTTP response code: javax.net.ssl.SSLHandshakeException" rm="Non HTTP response message: Received fatal alert: handshake_failure"

有谁知道我在这里做错了什么

我能想到 2 个可能的原因:

  1. 您使用不同的JRE versions on master and slaves and they have different SSL configuration in terms of storing certificates。确保你在所有地方都使用完全相同的 Java 运行时并且配置是相同的。
  2. 您的测试依赖于client certificates and on one of the slaves you don't have them defined in system.properties file or in SSL Manager确保在每个从站上使用相同的 JMeter 版本和相同的配置文件集以及外部数据文件。

习惯查看jmeter.logand/orjmeter-server.log文件-在大多数情况下,您应该从日志中了解失败或意外行为的原因。