我曾尝试使用两台服务器对需要双向 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 个可能的原因:
- 您使用不同的 JRE versions在主从上,他们有不同的SSL configuration in terms of storing certificates .确保你在任何地方都使用完全相同的 Java 运行时并且配置是相同的。
- 您的测试依赖于 client certificates在其中一个奴隶上,您没有在 system.properties file or in SSL Manager 中定义它们确保在每个从站上使用相同的 JMeter 版本和相同的配置文件集和外部数据文件。
习惯查看 jmeter.log 和/或 jmeter-server.log 文件 - 在大多数情况下,您应该了解失败或意外的原因来自日志的行为。
关于ssl - Jmeter 分布式测试不适用于双向 SSL 握手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53820415/