Configuring response timeout in Apache JMeter

2019-01-23 03:14发布

I am trying to check if a particular HTTP request's response time is over 30 seconds, and if it is, then mark it as failed and stop the thread. Because now sometimes I can even see response times close to 80seconds, an no browser is waiting that long for a reply.

I found the following three ways to set a timeout value in JMeter, however this confuses me, because there is multiple options and I don't know which one to use, or if there is any difference at all between them.

So here are the options I found that are related to response timeout:

  1. Setting Response timeout value in the sampler enter image description here
  2. Add a Duration assertion

enter image description here
3. Setting timeout in jmeter.properties configuration file. Options I found here:

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

So, the problem is that I don't know where to set the response timeout from the listed options. Is there any difference at all between these options? So what I would like to see as a result: If a particular HTTP request takes more than 30 seconds to reply, stop waiting for a response and mark it as a failed request.

2条回答
叛逆
2楼-- · 2019-01-23 03:45

For your need, an assertion is not the right solution as it will only mark the request as failed but it will wait.

The right option is a response timeout.

Regarding the 3rd point

  1. os_sampler.poll_for_timeout=x => not for http, see:

  2. http.socket.timeout=x => applies to all requests using HttpClient4 or 3, see:

  3. httpclient.timeout=x => Same, see:

I think the best option is to use 1. , if you want those values to apply to all requests, just use Http Request Defaults element:

查看更多
▲ chillily
3楼-- · 2019-01-23 03:47

Socket/Connect and Read/Response timeouts can be set from Http Request Defaults section at jmeter GUI. See sample:

Connect timeout: 3 seconds
Response timeout: 20 seconds.

enter image description here

查看更多
登录 后发表回答