使用HTTPS时在Jmeter 5上重置连接

使用HTTPS时在Jmeter 5上重置连接,https,jmeter,Https,Jmeter,我正在通过HTTPS对web应用程序进行负载测试,当我同时启动60多个线程时,遇到以下错误: java.net.SocketException: Connection reset at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at sun.security.ssl.InputRecord.readFully(Unkn

我正在通过HTTPS对web应用程序进行负载测试,当我同时启动60多个线程时,遇到以下错误:

java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at sun.security.ssl.InputRecord.readFully(Unknown Source)
    at sun.security.ssl.InputRecord.read(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:404)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:364)
    at org.apache.jmeter.protocol.http.sampler.hc.LazyLayeredConnectionSocketFactory.connectSocket(LazyLayeredConnectionSocketFactory.java:92)
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl$JMeterDefaultHttpClientConnectionOperator.connect(HTTPHC4Impl.java:336)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:374)
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:843)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:574)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:67)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.followRedirects(HTTPSamplerBase.java:1578)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.resultProcessing(HTTPSamplerBase.java:1672)
    at org.apache.jmeter.protocol.http.sampler.HTTPAbstractImpl.resultProcessing(HTTPAbstractImpl.java:556)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:660)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:67)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1231)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1220)
    at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:622)
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:546)
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:486)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:253)
    at java.lang.Thread.run(Unknown Source)
我使用的是Jmeter 5.1.1,我设置了
httpclient.reset\u-state\u-on\u-thread\u-group\u-iteration=false
。这些错误是否代表了现实世界中可能发生的情况?如果是,解决问题的关键是什么?如果没有,我如何修复Jmeter

编辑:
我尝试在同时运行200个线程时访问应用程序,并在同一台机器上的Chrome中获得了
ERR\u CONNECTION\u RESET
。在另一台机器、不同的网络上,我可以在负载测试期间访问该网站。所以瓶颈在我自己的测试机上

当您遇到此错误时,请尝试手动访问应用程序。若应用程序不可访问,那个么应用程序存在一些性能问题。然而,若您可以轻松地访问应用程序,那个么您执行负载测试的方式就会出现一些问题


一个原因可能是执行Jmeter脚本的机器带宽低。e、 g如果您使用的是2Mbps线路,那么所有Jmeter用户都只共享带宽,带宽肯定很低(对于每个用户=2Mbps/60)。

问题与后端无关,而是与公司代理(squid)有关,因为我是从公司网络内部启动测试的,目标是在互联网上。我已经为JMeter切换到公共云上的虚拟机,它解决了这个问题。

另请参阅,谢谢您的帮助,不过您的帖子应该是一篇评论。我尝试在同时运行200个线程时访问应用程序,并在同一台机器上的Chrome中获得了
ERR\u CONNECTION\u RESET
。在另一台机器、不同的网络上,我可以在负载测试期间访问该网站。所以问题就在我自己的眼睛里。所以你的测试机有问题。因为,我是一个新用户,不知道这里有多少规则,以后会处理的。没问题,只是评论是为了进一步调查(像你一样),而答案应该是确定的解决方案。我很高兴我能够帮助你。如果您认为我的答案为您提供了适当的解决方案,您可以将其标记为答案。:)不幸的是,这不是一个解决方案,它帮助强调了我的测试机器(或Jmeter配置)是问题的根源,但我的问题仍然存在!