“Think Time” matters. A lot more than it may seem (Performance testing, NeoLoad)

Posted by Albert Gareev on May 23, 2012 | Categories: How toLoad/PerformanceNeoLoad

Parent page: Load/Performance Testing with NeoLoad

The way you execute requests to the server will have a dramatic effect on results!
Why dramatic? – Because numbers might be telling opposite stories, either giving you a true picture or misleading you about what’s happening.

But let’s get to a concrete example!

We start with the same load script from here – hitting tutorial page.
Here are results from validation:

As we see, it took 3 seconds to execute the script.
However, a user would spend some time reading the page just opened, and he would probably take some time before navigating to this page from the previous one.

Let’s put these assumptions into numbers.

Note the factor of randomness: we want user requests happening “in about the same time” for the purpose of this exercise, not “exactly at the same time” (the latter will be covered in a separate post).

To re-iterate:

  • A user would think 1-10 seconds before navigating to the page
  • Total time to open the page and stay on it will be up to 60 seconds

And here are the results of a simple “ramp-up” load:

We can see, that server’s response remains stable while increasing user load from 1 to 10 concurrent users.

To show the difference, I run the same load without think time and pacing:

We see a steady increase in response time of the server while increasing user load from 1 to 10 concurrent users!

Here’s the important point to remember while crafting load scripts: both requests and think times matter!
Put adequate think times, or you’ll get stress test results instead of user workload simulation results.

Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported
This work by Albert Gareev is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported.