在asp.net应用程序上使用jmeter对100个用户进行负载测试,从而在jquery上给出错误

时间:2014-07-31 06:42:46

标签: jquery asp.net jmeter load-testing performance-testing

我正在使用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%我得到了失败的回应。

请分享您的想法。

2 个答案:

答案 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 ;-)