我收到一些HTTP请求的'Non HTTP response message: Connection timed out: connect‘,因此我尝试将连接/响应超时值设置为2分钟(大于失败HTTP请求所需的连接时间)。为此,我更新了"HTTP请求默认值“,并添加了120000作为连接和响应超时。
HTTP请求默认值超时
[
但是,当我再次运行测试时,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请求是如何工作的。在这种情况下,我收到了连接时间超过2000ms的请求的不同错误-
非HTTP响应码:org.apache.http.NoHttpResponseException/非HTTP响应message::响应失败
所以我认为更改超时值不会影响我最初的错误-
非HTTP响应代码:java.net.ConnectException/非HTTP响应消息:连接超时:连接
这两条消息有什么不同?
发布于 2017-04-15 20:35:44
最近我遇到了同样的问题,发现它是我的操作系统(Windows)的默认配置。有关详细信息,请查看以下链接:
Where does the socket timeout of 21000 ms come from?
Which is the default TCP connect timeout in Windows?
简而言之,根据上面链接中提到的文章,Windows使用3000ms初始超时(InitialRto
设置),并进行了两次重试,超时时间比前一次尝试(MaxSynRetransmissions
设置)增加了一倍:3sec + 2*3sec + 4*3sec = 21 sec
。为了增加此超时,您可以使用以下命令设置更多重试次数:
netsh interface tcp set global MaxSynRetransmissions=3
https://stackoverflow.com/questions/42357665
复制相似问题