配置Apache JMeter中的响应超时时间

32

我想检查一个特定的HTTP请求是否响应时间超过30秒,如果是,则标记为失败并停止线程。有时我会看到接近80秒的响应时间,而没有浏览器会等待那么长时间从服务器获得响应。

我找到了以下三种在JMeter中设置超时值的方法,但这让我感到困惑,因为有多个选项,我不知道该使用哪个选项,或者它们之间是否有任何区别。

所以这里是我找到的与响应超时相关的选项:

  1. 在采样器中设置响应超时值 Method 1
  2. 添加持续时间断言

Method 2
3. 在jmeter.properties配置文件中设置超时。我在这里找到的选项:

  1. os_sampler.poll_for_timeout=x
  2. http.socket.timeout=x
  3. httpclient.timeout=x

所以,问题在于我不知道在列出的选项中设置响应超时时间。这些选项之间是否有区别?

因此,我希望看到以下结果:如果特定的HTTP请求需要超过30秒才能从服务器获得响应,则停止等待响应并将其标记为失败的请求。

2个回答

33

可以从Jmeter GUI的 Http请求默认值部分设置套接字/连接和读取/响应超时时间。见下面的示例:

连接超时: 3秒
响应超时: 20秒。

输入图像描述


23

对于您的需求,断言并不是正确的解决方案,因为它只会标记请求失败,但它会等待。

正确的选项是响应超时。

关于第三点

  1. os_sampler.poll_for_timeout=x => 不适用于http,请参见:

  2. http.socket.timeout=x => 适用于使用HttpClient4或3的所有请求,请参见:

  3. httpclient.timeout=x => 同上,请参见:

我认为最好的选择是使用1.,如果您希望这些值适用于所有请求,请使用HTTP请求默认元素:

HTTP Request Defaults

如果您想正确学习jmeter,这本书会对您有所帮助。


2
那么... Http请求默认元素是否覆盖底层的http.socket.timeouthttpclient.timeout - 我会这样假设? - Tuukka Mustonen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接