【问题标题】:JMeter Script- Connection timed outJMeter 脚本 - 连接超时
【发布时间】:2021-01-21 23:44:55
【问题描述】:

我在尝试运行 JMeter 脚本时收到以下错误。该 API 在 Loadrunner 中运行良好。 我在 user.properties 中为 SSL 版本设置了 https.default.protocol=TLSv1.2。什么可能导致以下错误。

org.apache.http.conn.HttpHostConnectException:连接到 rXXXXX.XXXX-XXXX.XXXXXX.net:443 [XXXXXX.XXXXXX-XXXXXX.XXXXXX.XXXXXX/21.60.245.182] 失败:连接超时:连接 在 org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:156) 在 org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl$JMeterDefaultHttpClientConnectionOperator.connect(HTTPHC4Impl.java:326) 在 org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:374) 在 org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393) 在 org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) 在 org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) 在 org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) 在 org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) 在 org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) 在 org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) 在 org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:850) 在 org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:561) 在 org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:67) 在 org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1282) 在 org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257) 在 java.lang.Thread.run(未知来源) 原因:java.net.ConnectException:连接超时:连接

e

【问题讨论】:

    标签: jmeter performance-testing loadrunner


    【解决方案1】:

    如果您发送相同的请求,则无论使用什么工具发送请求,您都应该得到相同的响应。

    如果您收到不同的响应或未收到响应,要么您发送的请求不同,要么工具配置存在差异。

    1. 最可能的原因可能是proxy,默认情况下,Loadrunner 尊重底层操作系统代理设置,在 JMeter 中您需要手动配置上游代理连接,请参阅Using JMeter behind a proxy 文章了解更多详情

    2. 另一个原因可能是请求配置不正确,即协议/主机/端口/路径不匹配

    3. 最后但并非最不重要的一点是,也许您的连接/响应超时太低,尝试增加它们,相关设置位于 HTTP Request 采样器的“高级”选项卡下(或者更好的是 HTTP Request Defaults

    【讨论】:

    • 我现在从代理后面运行 JMeter。现在收到以下错误响应代码:非 HTTP 响应代码:javax.net.ssl.SSLException 响应消息:非 HTTP 响应消息:软件导致连接中止:recv 失败
    【解决方案2】:
    1. 确保您尝试使用此 Jmeter 脚本访问的任何端点都不需要相互 SSL 验证。

    2. 然后在发出请求之前确保您的令牌是从 CA 签名令牌生成器生成的。

    3. 确保您的连接超时时间不足以在发出请求后做出响应,并确保超时时间大于加速时间段。

    【讨论】: