在 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.propertieshttp.socket.timeout=x => 适用于所有使用 HttpClient4 或 3 的请求,见:
https://github.com/apache/jmeter/blob/master/bin/hc.parametershttpclient.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.timeout
和 httpclient.timeout
- 我会这么认为吗?【参考方案2】:
可以从 jmeter GUI 的 Http Request Defaults
部分设置套接字/连接和读取/响应超时。查看示例:
连接超时:3 秒 响应超时:20 秒。
【讨论】:
以上是关于在 Apache JMeter 中配置响应超时的主要内容,如果未能解决你的问题,请参考以下文章
jmeter导入.jmx文件报CannotResolveClassException: org.apache.jmeter.protocol.ssh.sampler.SSHSampler
jmeter导入.jmx文件报CannotResolveClassException: org.apache.jmeter.protocol.ssh.sampler.SSHSampler