Tuesday, March 25, 2008

Do think about Think Time

I got a chance to interact with lot of performance testers in various organizations , not only in India, but also in abroad & found that most of us are interested in spending time for setting realistic performance test goals & identifying the frequently used business scenarios (business flows) , but very few analyze the think time of various business flows.

It becomes very important that the average think time of the end users of the application needs to be analyzed rather than estimating specific time limit by counting the total fields to be filled by the end user. For the same application(lets take Yahoo new account creation), a new user might take 4-5 minutes or more to fill the required details to create a new account. But at the same time, a frequent old user, might take 1-2 minutes to create a new account. These think times (4-5 minutes for new user & 1-2 minutes for old user) might impact the server load.

Lets assume 100 new users are accessing the yahoo application for the time interval 13.00 to 14.00 hours & 100 old users are accessing the application for the time interval 14.00 to 15.00 hours continuously. Though there are 100 users (100 active sessions created) load on the server during both 13.00 to 14.00 hours and during 14.00 to 15.00 hours, the actual server load(requests) is going to be different during these 2 hours.

When you have a close look at the server load in requests/sec (Hits/sec) , you will find that the server load during 13.00 to 14.00 hours might be lesser than 14.00 to 15.00 hours, because of high think time used by the new users. If you look at the quantified numbers, you will be shocked to know that during the first hour, the average load could be apprx 12 hits/sec whereas during the second hour, the server load could be around 25 hits/sec.

Having performance test goals in mere user load alone doesnt make the test more realistic. Detailed analysis on the end user's think time makes it more realistic.


3 comments:

Raju Lalvani said...

Hi,
Interesting thoughts, however IMHO no performance test can really simulate the real load pattern as there are so many variables involved. A performance test is a guestimate that things will probably run well.

Rajesh Balamohan said...

Do you really need think time when the objective is to identify the performance bottlenecks for a specific usecase and just
start tweaking them. :)

~Rajesh.B

Ajit said...

Ramya - Its a very interesting point that you have mentioned about "Think Time".
I have some questions around the analysis of the results with Think Time.
1. Do we have same value for Think Time at all places where we Think time is placed.
2. At the time of analysis do we subtract the think time from the avg time?