我正在使用jmeter对我的asp.net应用程序进行负载测试,只有100个用户。
我在页面上有jquery" Scripts / jquery.min.js" Jquery存在于文件夹中。 20%的用户错误如下。
`示例结果: - 线程名称:线程组1-25 样本开始时间:2014-07-31 11:45:43 IST 加载时间:189003 延迟:0 大小(字节):2000 标头大小(字节):0 正文大小(字节):2000 样品数量:1 错误数:1 响应代码:非HTTP响应代码:javax.net.ssl.SSLHandshakeException 响应消息:非HTTP响应消息:握手期间远程主机关闭连接
回复标题:
HTTPSampleResult字段: 内容类型: DataEncoding:null`
请求 - 获取 https://www.mydomain.com/Scripts/jquery.min.js
[没有饼干]
请求标题: 连接:保持活力 接受:text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp, / ; q = 0.8 User-Agent:Mozilla / 5.0(WindowsNT6.2; WOW64; rv:21.0)Gecko / 20100101Firefox / 21.0 Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en; q = 0.8
responcedata - javax.net.ssl.SSLHandshakeException:握手期间远程主机关闭连接 at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) 在sun.security.ssl.SSLSocketImpl.startHandshake(未知来源) 在sun.security.ssl.SSLSocketImpl.startHandshake(未知来源) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:436) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180) at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:643) 在org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) 在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:481) at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:298) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase $ ASyncSample.call(HTTPSamplerBase.java:1826) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase $ ASyncSample.call(HTTPSamplerBase.java:1794) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase $ 1 $ 1.run(HTTPSamplerBase.java:1257) 在java.lang.Thread.run(未知来源) 引起:java.io.EOFException:SSL对等关闭不正确 at sun.security.ssl.InputRecord.read(Unknown Source) ......还有21个
注意:我试过100个用户。 80用户无法获得此错误其余20位用户收到此错误。服务器非常强大。它位于具有高配置的云服务器上。我只尝试了100个用户,只有80%是成功率。 20%我得到了失败的回应。
请分享您的想法。
答案 0 :(得分:1)
尝试在 jmeter.properties 文件中设置https.use.cached.ssl.context=false
。它也可以在 user.properties 文件中覆盖,或者通过-J命令行参数设置为单次运行
jmeter -Jhttps.use.cached.ssl.context=false -n -t /path/to/your/test/plan.jmx -l /path/to/results.jtl
有关属性配置高级信息,请参阅Apache JMeter Properties Customization Guide。
答案 1 :(得分:1)
堆栈跟踪中的SSL握手失败可能是由客户端和/或服务器端造成的。要查找哪一个负责,您可以使用wireshark(或其他网络数据包嗅探器)捕获所有数据包并找到SSL握手失败的TCP会话。
在所有捕获的数据包中查找TCP会话可能需要一些工作。一个技巧是将所有数据包摘要导出到文本文件中并编写脚本以搜索“坏”tcp会话。您可能很高兴您比以往更了解SSL ;-)