Jmeter:响应代码:非 HTTP 响应代码:javax.net.ssl.SSLHandshakeException

Posted

技术标签:

【中文标题】Jmeter:响应代码:非 HTTP 响应代码:javax.net.ssl.SSLHandshakeException【英文标题】:Jmeter: Response code: Non HTTP response code: javax.net.ssl.SSLHandshakeException 【发布时间】:2017-12-06 16:48:58 【问题描述】:

我有一个应用程序 URL。我需要使用 Jmeter 运行登录测试。我使用 chrome 的 blazemeter 扩展记录了登录步骤。但是当我运行它时,我得到以下错误。我知道有这样的问题,我尝试过很少,看来我的情况有所不同。

我试过了:

    在 jmeter.bat 中添加这两行

    设置 JAVA_HOME=C:\Program Files\Java\jdk1.8.0_65 设置 PATH=%JAVA_HOME%\bin;%PATH%

    使用“以管理员身份运行”运行 Jmeter

    从这里https://gist.github.com/borisguery/9ef114c53b83e553b635下载证书并以这种方式安装 https://www.youtube.com/watch?v=2k581jcWk9M 重新启动 Jmeter,然后再试一次,但没有成功。

当我在 Jmeter 视图树侦听器中展开错误时,我在这个特定的 css 文件上遇到错误:https://abcurl.xyzsample.com/assets/loginpage/css/okta-sign-in.min.7c7cfd15fa939095d61912dd8000a2a8.css

错误:

Thread Name: Thread Group 1-1
Load time: 268
Connect Time: 0
Latency: 0
Size in bytes: 2256
Headers size in bytes: 0
Body size in bytes: 2256
Sample Count: 1
Error Count: 1
Response code: Non HTTP response code: javax.net.ssl.SSLHandshakeException
Response message: Non HTTP response message: Received fatal alert: handshake_failure

Response headers:


HTTPSampleResult fields:
ContentType: 
DataEncoding: null

【问题讨论】:

【参考方案1】:

如果您只收到一个 .css 文件的错误并且它不属于被测应用程序(即它是一个外部样式表),那么您可以做的最好的事情就是通过 URLs must match 部分到 exclude it from the load test位于HTTP Request Defaults 配置元素的“高级”选项卡下。

如果您需要通过任何方式加载此 .css,您还可以尝试以下方法:

    使用https.default.protocolhttps.socket.protocols 属性(在jmeter.properties 中查找上述行)文件 将Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 安装到您的JRE 或JDK 主目录的/jre/lib/security 文件夹中(用下载的文件替换现有文件)

【讨论】:

对于 #2 security 文件夹仅存在于 JRE 中,而不存在于 JDK 中,因此仅复制了 n 个替换下载的 jre 文件。在 #1 中,两行都用值 #https.default.protocol=TLS#https.default.protocol=SSLv3#https.socket.protocols=SSLv2Hello SSLv3 TLSv1 进行了注释。不要如何玩这些。我想我需要取消对它们的注释,但需要输入什么值?【参考方案2】:

如果您的 url 需要客户端证书,则将您的证书复制到 /bin 文件夹,如果您转到 options -> SSL Manager 并选择您的cert ,它会提示您输入证书密码。如果你再次运行你的测试,那应该可以工作。 此外,如果您还没有完成,您还可以进行密钥库配置 (http://jmeter.apache.org/usermanual/component_reference.html#Keystore_Configuration)。 请注意,我的 jmeter 版本是 4.0 。希望这会有所帮助。

【讨论】:

以上是关于Jmeter:响应代码:非 HTTP 响应代码:javax.net.ssl.SSLHandshakeException的主要内容,如果未能解决你的问题,请参考以下文章

JMeter 非 HTTP 响应代码:在 Kubernetes 上运行时出现 java.net.UnknownHostException

Jmeter - 简单的 HTTP 请求

jmeter找不到接口错误

jmeter添加断言

在 REST 响应中使用非标准 HTTP 状态代码是不是很好? [关闭]

使用 JMeter 完成常用的压力测试 [转]