【问题标题】:Script run on 2 PC in Jemeter : java.net.SocketException: Connection reset脚本在 Jmeter 中的 2 台 PC 上运行:java.net.SocketException: Connection reset
【发布时间】:2018-09-13 19:01:00
【问题描述】:

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

对于 200 个用户,每秒 1 个和 1 个循环正在通过测试 180 个用户,还有 20 个用户低于异常。

请帮我解决这个问题。

我们使用 Jmeter 版本 - 3.2 和 JDK - 8.2。我们已经在各自的文件中遵循了代码。

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

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)

【问题讨论】:

  • 尝试增加线程组的加速周期
  • 您使用的是 BigIp 还是 cloudflare 或类似的服务?
  • 我们使用claudflare。
  • 增加时间后它会起作用,但我们不需要。它应该在第二个完成..

标签: jmeter connection reset


【解决方案1】:
  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$Boolean=true

  4. 重启 JMeter。

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

【讨论】:

    【解决方案2】:

    我问了similar question 还没有答案,但是将这行添加到 jmeter.properties 会有所帮助:

    https.socket.protocols=TLSv1.2 
    

    解决我的问题的方法是增加启动时间或创建一个新的 DNS,该 DNS 不通过阻止某些请求的 cloudflare 服务。

    【讨论】:

      猜你喜欢
      • 2015-06-29
      • 1970-01-01
      • 2011-06-06
      • 1970-01-01
      • 2020-05-17
      • 2013-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多