在 Apache JMeter 中配置响应超时

Posted

技术标签:

【中文标题】在 Apache JMeter 中配置响应超时【英文标题】:Configuring response timeout in Apache JMeter 【发布时间】:2014-10-02 04:36:31 【问题描述】:

我正在尝试检查特定 HTTP 请求的响应时间是否超过 30 秒,如果是,则将其标记为失败并停止线程。有时我可以看到响应时间接近 80 秒,没有浏览器等待服务器响应这么长时间。

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

以下是我发现的与响应超时相关的选项:

    在采样器中设置响应超时值 添加 Duration 断言

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

    os_sampler.poll_for_timeout=x http.socket.timeout=x httpclient.timeout=x

所以,问题是我不知道从列出的选项中在哪里设置响应超时。这些选项之间有什么区别吗? 所以我希望看到的结果是:如果特定 HTTP 请求需要 30 多秒才能从服务器获得响应,则停止等待响应并将其标记为失败请求。

【问题讨论】:

【参考方案1】:

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

正确的选项是响应超时。

关于第三点

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

    https://github.com/apache/jmeter/blob/master/bin/jmeter.properties

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

    https://github.com/apache/jmeter/blob/master/bin/hc.parameters

    httpclient.timeout=x => 相同,见:

    https://github.com/apache/jmeter/blob/master/bin/jmeter.properties

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

https://jmeter.apache.org/usermanual/component_reference.html#HTTP_Request_Defaults

如果您想正确地学习 jmeter,book 将帮助您。

【讨论】:

那么... Http Request Defaults 元素会覆盖底层 http.socket.timeouthttpclient.timeout - 我会这么认为吗?【参考方案2】:

可以从 jmeter GUI 的 Http Request Defaults 部分设置套接字/连接和读取/响应超时。查看示例:

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

【讨论】:

以上是关于在 Apache JMeter 中配置响应超时的主要内容,如果未能解决你的问题,请参考以下文章

Apache JMeter安装与配置

[JM_06]JMeter之集合点、关联-操作解析

jmeter导入.jmx文件报CannotResolveClassException: org.apache.jmeter.protocol.ssh.sampler.SSHSampler

jmeter导入.jmx文件报CannotResolveClassException: org.apache.jmeter.protocol.ssh.sampler.SSHSampler

JMETER_从入门到放弃系列

Jmeter 察看结果树响应数据乱码