当前位置: 首页 > 知识库问答 >
问题:

连接/响应超时值似乎在JMeter中不起作用

红甫
2023-03-14

对于某些HTTP请求,我收到“非HTTP响应消息:连接超时:连接”,因此我尝试将连接/响应超时值设置为2分钟(这超过了失败HTTP请求所需的连接时间)。为此,我更新了“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 请求默认值中的超时值更改为非常低 (2000),以查看 HTTP 请求的工作原理。在这种情况下,对于超过2000ms连接时间的请求,我收到了不同的错误 -

非HTTP响应代码:org.apache.http.NoHttpResponseException/Non HTTP响应消息: :响应失败

因此,我认为更改超时值不会影响我原来的错误-

非 HTTP 响应代码:连接异常/非 HTTP 响应消息:连接超时:连接

这两条消息之间有什么区别?

共有2个答案

冯枫涟
2023-03-14

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

21000 ms 的套接字超时从何而来?

哪个是Windows中默认的TCP连接超时?

简而言之,根据上面链接中提到的文章,Windows使用3000毫秒的初始超时(< code>InitialRto设置)并重试2次,超时是前一次尝试的两倍(< code > MaxSynRetransmissions 设置):< code > 3秒2 * 3秒4 * 3秒= 21秒。为了增加超时时间,您可以使用以下命令设置更多重试次数:

netsh 接口 tcp set 全局 MaxSynRetranRetrans=3

任伟
2023-03-14

这个问题看起来更像是< code >连接超时的服务器配置而不是< code >连接超时的客户端配置,尽管两者都必须进行适当的配置。

默认连接超时在tomcat服务器是20秒.并且您的请求失败,由于连接超时在21秒.因此,尽管您在客户端配置(120000),您也必须在服务器端进行适当的配置,否则,服务器强制关闭连接尝试并引发连接超时异常。

参考:

    < Li > HTTP连接器(参考< code>connectionTimeout属性)
 类似资料:
  • 我的代码看起来像 我的文件如下所示 当我运行程序时,我看到 我怎样才能修好它呢?

  • 问题内容: 我在使用该功能时遇到了麻烦。 我只需要知道SQL查询是否返回零行。 我已经尝试过以下简单的语句: 类型是哪里。上面的代码似乎不起作用。无论是否为空,它将始终打印该消息。 我检查了SQL查询本身,当存在行时它正确返回了非空结果。 关于如何确定查询是否已返回0行的任何想法?我用谷歌搜索,找不到任何答案。 问题答案: ResultSet.getFetchSize()不返回结果数!从这里: 使

  • 我在Windows上,我已经在环境变量中设置了JDK 1.8的路径。同样在项目结构方面,我已经改变了。我有一个Maven项目。 在命令行中,如果我使用“mvn--version”,我会看到 然而,在IntelliJ中,如果我点击Run按钮,它总是指向JDK 1.7,并抛出一个错误(因为我的maven项目需要java 8)。我该怎么改变呢?谢谢 更新在遵循@BevyQ提示后,我发现Maven run

  • 问题内容: 即使将属性设置为,我仍然会插入重复的条目。 我设置了使用定期在。我没有用表 问题答案: 我没有使用JPA创建表 然后,您应该在语句中向表中添加唯一约束,例如,如果您使用的是MySQL:

  • 根据我所发现和看到的一切,这似乎是正确的。打印$query时,结果如下所示: “在客户(名字、名字、姓氏、地址、城市、州、邮政编码、电子邮件、性别)中插入值(?,,,,,,,,,,?,,,?)” 参数应该已经用bindValues()中的变量填充。所以,举个例子。。。 插入到客户(第一名、中间名、最后名、地址、城市、州、邮编、电子邮件、性别)值(比尔、霍普金斯、123大街、...) 我想继续使用这

  • 下面的方法有2个for循环。Firstloop迭代36000次,inner forloop迭代24次,因此记录插入的总数将为864000。代码执行运行了将近3.5小时并终止。(记录插入失败)只有在outer for循环结束后才会关闭会话并提交事务。发现执行过程中RAM消耗近6.9GB 我已经附上了最后几行GC日志来指示内存分配 堆PSYoungGen总计1862144K,已使用889367K[0x