我收到'非HTTP响应消息:连接超时:连接'对于某些HTTP请求,所以我尝试将连接/响应超时值设置为2分钟(这超过了HTTP请求失败所需的连接时间)。为此,我更新了#34; HTTP请求默认值"并添加120000作为连接和响应超时。
[
但是,当我再次运行测试时,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请求默认值中的超时值更改为非常低(2000),以查看HTTP请求的工作方式。在这种情况下,对于超过2000毫秒的连接时间的请求,我得到了不同的错误 -
非HTTP响应代码:org.apache.http.NoHttpResponseException /非HTTP响应消息::无法响应
所以我认为更改超时值不会影响我的原始错误 -
非HTTP响应代码:java.net.ConnectException /非HTTP响应消息:连接超时:connect
这两条消息有什么区别?
答案 0 :(得分:2)
这个问题看起来更像server configuration of connection timeout
而不是client side configuration of connection timeout
,但两者都必须配置得恰当。
tomcat服务器中的默认connectionTimeout
为20 seconds
。并且由于21 seconds
处的连接超时,您的请求失败。因此,尽管您在客户端(120000)进行了配置,但您必须在服务器端进行适当配置,否则,服务器会强制关闭连接尝试并引发Connect Timeout
异常。
参考:
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