Search code examples
timeoutjmeterhttpresponseload-testingperformance-testing

Configuring response timeout in Apache JMeter


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. Sometimes I can see response times close to 80 seconds, an no browser is waiting that long for a response from the server.

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 Method 1
  2. Add a Duration assertion

Method 2
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 get a response from the server, stop waiting for a response and mark it as a failed request.


Solution

  • 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:

    HTTP Request Defaults

    If you're looking to learn jmeter correctly, this book will help you.