Jmeter 测试在控制台工作,但不适用于 JMeter Jenkins(性能)插件

Jmeter Tests work at the console, but not with the JMeter Jenkins(Performance) plugin

我正在使用 Maven(3.3.9)、JMeter (3.0) 和 Jenkis Performance 插件。 当我 运行 在我的计算机上使用 Mvn 测试我的 JMeter 时,一切正常,但是当我尝试构建 @Jenkins 时,JMeter 测试总是失败(100%)。

有人知道我的问题可能是什么原因吗?

我的 JMeter 测试使用断言检查 "viewExpired",因为我使用的是 JSF,第二个断言在第一个测试失败后立即跳过所有其他测试。

这是我的日志(我稍微修改了一下,服务器地址等) https://gist.github.com/anonymous/801ef819233468246eb9e42893366b56

汤姆-

根据您的日志,在我看来您的 TLS 连接从 Jenkins 机器到目标测试服务器 (test.at.com) 失败。如果你的 Jenkins 机器有 Xterm 界面,你能在那里安装 JMeter 并以 GUI 模式启动它来验证吗?您的测试计划应该 运行 没有问题。日志还表明它正在使用一个空的密钥库。您是否已将 test.at.com 证书添加到 Jenkins 机器上的默认 java 密钥库?默认情况下,JMeter 使用 /lib/security 下的 java 密钥存储。您可以使用 属性

用您自己的信任库覆盖它

您可以通过编辑以下行来编辑 JMeter system.properties 以使用自定义密钥库

\# Keystore properties (client certificates)

\# Location

\#javax.net.ssl.keyStore=H:\cert\client_keystore.jks

\#

\#The password to your keystore

\#javax.net.ssl.keyStorePassword=changeit

\#

\#javax.net.ssl.keyStoreProvider

\#javax.net.ssl.keyStoreType [default = KeyStore.getDefaultType()]

如果您想知道真正的根本原因,我还建议启用 SSL 调试选项。您可以在 system.properties 中打开它 \#javax.net.debug=ssl

综上所述,请您检查一下您的 Jenkins 机器和实际目标主机之间是否存在连接

**telnet test.at.com 443**

2017/01/23 15:50:17 DEBUG - org.apache.jmeter.protocol.http.sampler.JMeterClientConnectionOperator$JMeterDefaultClientConnection: Connection 0.0.0.0:33542<->62.116.177.251:443 closed 
2017/01/23 15:50:17 DEBUG - org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl: Closing the connection. 
2017/01/23 15:50:17 DEBUG - org.apache.jmeter.protocol.http.sampler.JMeterClientConnectionOperator$JMeterDefaultClientConnection: Connection 0.0.0.0:33542<->62.116.177.251:443 closed 
2017/01/23 15:50:17 DEBUG - org.apache.jmeter.protocol.http.sampler.JMeterClientConnectionOperator$JMeterDefaultClientConnection: Connection 0.0.0.0:33542<->62.116.177.251:443 shut down 
2017/01/23 15:50:17 DEBUG - org.apache.jmeter.protocol.http.sampler.JMeterClientConnectionOperator$JMeterDefaultClientConnection: Connection 0.0.0.0:33542<->62.116.177.251:443 closed