脚本在Jemeter的2台PC上运行:java.net.SocketException:连接重置

时间:2018-04-04 09:19:34

标签: jmeter connection reset

我正在我的应用程序的调查页面上运行负载测试。

对于200个用户,每秒1个,1个循环通过测试180用户,并且仍然有20个用户低于异常。

请帮我修复。

我们使用Jmeter版本 - 3.2和JDK - 8.2。我们已经在相应的文件中跟踪代码。

httpclient4.retrycount = 1,hc.parameters.file = hc.parameters 在user.properties文件中添加的代码和 hc.parameters文件中 http.connection.stalecheck $ Boolean = true

java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:158)
    at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:82)
    at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:271)
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
    at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:281)
    at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:257)
    at org.apache.jmeter.protocol.http.sampler.hc.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:199)
    at org.apache.jmeter.protocol.http.sampler.MeasuringConnectionManager$MeasuredConnection.receiveResponseHeader(MeasuringConnectionManager.java:212)
    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
    at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:684)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:486)
    at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:654)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:413)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1189)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1178)
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:491)
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:425)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:254)
    at java.lang.Thread.run(Unknown Source)

2 个答案:

答案 0 :(得分:0)

  1. 将所有HTTP请求采样器的“实现”更改为HttpClient4。最简单的方法是使用HTTP Request Defaults配置元素。

  2. 在位于JMeter安装的/ bin文件夹下的user.properties文件中添加以下属性:

      

    httpclient4.retrycount = 1 hc.parameters.file = hc.parameters

  3. 将下一行添加到hc.parameters文件(相同位置,JMeter的/ bin文件夹)

      

    http.connection.stalecheck $布尔=真

  4. 重新启动JMeter。

  5. 您的“连接重置”问题应该消失。

答案 1 :(得分:0)

我问similar question还没有答案,但是有助于将这一行添加到jmeter.properties:

https.socket.protocols=TLSv1.2 

解决我的问题的原因是增加加速期或创建一个新的DNS,而这个DNS没有通过阻止某些请求的cloudflare服务。