JMeter 脚本 - 连接超时
尝试运行 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] 失败:连接超时:连接 at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:156) at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl$JMeterDefaultHttpClientConnectionOperator.connect(HTTPHC4Impl.java:326) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:374) at 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
假设您发送相同的请求,无论使用什么工具发送请求,您都应该得到相同的响应。
如果您收到不同的响应或没有收到响应,则说明您发送的请求不同,或者工具配置存在差异。
-
最可能的原因可能是 代理 ,默认情况下,Loadrunner 尊重底层操作系统代理设置,而在 JMeter 中,您需要手动配置上游代理连接,有关更多详细信息,请参阅 在代理后使用 JMeter 文章
-
另一个原因可能是请求配置不正确,即协议/主机/端口/路径不匹配
-
最后但并非最不重要的一点是,也许您的连接/响应超时太低,请尝试增加它们,相关设置位于 HTTP 请求 采样器的“高级”选项卡下(或者更好的是使用 HTTP 请求默认值 )
-
确保您尝试使用此 Jmeter 脚本访问的任何端点都不需要相互 SSL 验证。
-
然后在发出请求之前确保您的令牌是由 CA 签名的令牌生成器生成的。
-
确保您的连接超时不足以在发出请求后做出响应,并确保超时大于加速时间段。