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.protocol
和https.socket.protocols
属性(在jmeter.properties 中查找上述行)文件
将Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 安装到您的JRE 或JDK 主目录的/jre/lib/security
文件夹中(用下载的文件替换现有文件)
【讨论】:
对于 #2security
文件夹仅存在于 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