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
我正在使用 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