连接/ Resopnse超时值似乎不会在JMeter

时间:2017-02-21 02:33:59

标签: jmeter

我收到'非HTTP响应消息:连接超时:连接'对于某些HTTP请求,所以我尝试将连接/响应超时值设置为2分钟(这超过了HTTP请求失败所需的连接时间)。为此,我更新了#34; HTTP请求默认值"并添加120000作为连接和响应超时。

HTTP请求默认超时

[HTTP Request Defaults timeouts[1]

但是,当我再次运行测试时,HTTP请求仍然会产生相同的错误。样本结果如下 -

Load time: 21007
Connect Time: 21007
Latency: 0
Size in bytes: 2212
Sent bytes:0
Headers size in bytes: 0
Body size in bytes: 2212
Sample Count: 1
Error Count: 1
Data type ("text"|"bin"|""): text
Response code: Non HTTP response code: java.net.ConnectException
Response message: Non HTTP response message: Connection timed out: connect

看起来我在HTTP请求默认值中设置的超时值未在此处使用。我还尝试在jmeter.properties中设置httpclient.timeout = 120000的值,但没有变化。我错过了什么吗?

有人可以帮帮我吗?

感谢。

编辑 - 我有多个HTTP请求,每次运行,不同的请求超时。这是HTTP请求之一 - HTTP Request Sampler

更新

我尝试将HTTP请求默认值中的超时值更改为非常低(2000),以查看HTTP请求的工作方式。在这种情况下,对于超过2000毫秒的连接时间的请求,我得到了不同的错误 -

非HTTP响应代码:org.apache.http.NoHttpResponseException /非HTTP响应消息::无法响应

所以我认为更改超时值不会影响我的原始错误 -

非HTTP响应代码:java.net.ConnectException /非HTTP响应消息:连接超时:connect

这两条消息有什么区别?

2 个答案:

答案 0 :(得分:2)

这个问题看起来更像server configuration of connection timeout而不是client side configuration of connection timeout,但两者都必须配置得恰当。

tomcat服务器中的默认connectionTimeout20 seconds。并且由于21 seconds处的连接超时,您的请求失败。因此,尽管您在客户端(120000)进行了配置,但您必须在服务器端进行适当配置,否则,服务器会强制关闭连接尝试并引发Connect Timeout异常。

参考:

  1. The HTTP Connector(请参阅connectionTimeout属性)

答案 1 :(得分:1)

最近我遇到了同样的问题,发现它是我操作系统(Windows)中的默认配置。请查看以下链接以获取详细信息:

Where does the socket timeout of 21000 ms come from?

Which is the default TCP connect timeout in Windows?

很快,根据上面链接中提到的文章,Windows使用3000毫秒的初始超时(InitialRto设置)并执行2次重试,并使用上一次尝试(MaxSynRetransmissions设置)的双倍超时:{{1 }}。 为了增加此超时,您可以使用以下命令设置更多重试:

3sec + 2*3sec + 4*3sec = 21 sec