Monday 16 February 2009

How to performance test a public web site.

One of the hardest things to estimate is what kind of load your web site should be expected to stand up to – especially if the web site or web application is a new one. In essence what we’re trying to do is work out non-functional requirements before running the test.

Really there should be a requirements specification that the web application was built to. Something like:
“Response time must remain below 7 seconds”
“The application must be able to handle 3,000 concurrent users.”
“The application must be able to handle 500 transactions in one hour.”
The test then has to be run with 3000 concurrent users at peak, and while at that peak should be able to complete 500 business transactions in one hour. All the time page response time should never exceed 7 sends.

But what can be done if this kind of information does not exist?

We had this challenge when a customer needed a performance test running but had no idea of how many users the site should support or how many transaction he might expect in peak times.The customer had some statistics from the TV company they were advertising the web site through. GMTV told them that after a similar campaign the TV company themselves ran they saw 25,000 unique registrations on their web site in one day.

At the time nothing was known about the performance capabilities of the web infrastructure the customer had so the following approach was taken.
1: Evaluate what the system is currently capable of
This was done using our cloud internet load testing service & it was found the application could deal with only a few hundred users while under a load of a few thousand transactions per hour, it was deemed that the application was unusable if page response time was greater than 12 seconds. The same method was repeated every time the application was tuned for performance.
2: Establish a support mechanism in case the number of concurrent users the system could support was breached
A simple queuing system was developed which in effect increased the capability of the system to handle several thousand concurrent users.
The outcome was that the applications performance testing exercise was highly valuable provide. Primarily performance testing enabled performance tuning exercises to be run making the web application as lean and as fast as possible with current infrastructure. Additionally it provided the known limits of the application enabling the metrics for the queuing system to be specified.

No comments:

Post a Comment