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:
- Setting Response timeout value in the sampler
- Add a Duration assertion
3. Setting timeout in jmeter.properties configuration file. Options I found here:
- os_sampler.poll_for_timeout=x
- http.socket.timeout=x
- 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.
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
os_sampler.poll_for_timeout=x => not for http, see:
http.socket.timeout=x => applies to all requests using HttpClient4 or 3, see:
https://github.com/apache/jmeter/blob/trunk/bin/hc.parameters
https://github.com/apache/jmeter/blob/trunk/bin/httpclient.parameters
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:
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.