Loadtesting Applications and what to use…


March 28th, 2007

All professional organisations that provide Client/Server applications to their customers must go through the testing phase of the software development lifecycle. Most people think of testing purely from a “does it do what it claims to?” point of view. Although the basics of testing is done with both black and white hat methods, some software issues will still creep through.

Black Hat and White Hat testing methods are extremely valuable at squeezing out the basic clitches – but only when Loadtesting a Client/Server application can you actually start to determine the proper efficiency, performance, durability, correctness and robustness of the system you have created.

The requirements specification stage of the SDLC should depict that the system will be able to maintain proper function with a load of X amount of users. Depending on the use and scope of the application – this number will vary.


Banks everywhere have been rolling out online banking facilities for a good few years now. I would guess that the number of users they expect to hit their website at any one time to substantial. The likes of Ebay, Amazon, Microsoft, IBM, Yahoo, Google etc (all the heavy hitters) need to ensure that they have a service available to their customers 24×7. Any outage of Google.com would have drastic consequences for the business’ reputation as well as their bank balance. I am sure that they have extensively loadtested their servers to ensure and guarantee that millions of search pages can be served instantly all around the world – only an amateurish company would throw another loadbalanced server into the mix in the hope that their system will automatically be able to provide an additional amount/percentage of users.

When loadtesting Client/Server applications the test engineer should be thinking purely about how the stakeholders/actors/users/customers will use the system. If we stick with the banking example – it is possible that 50,000 users are on the system at any one time. Of those 50k users – 30,000 could be carrying out a money transfer to another account – another 10,000 could be running customized statements and the remaining 10,000 could simply be poking around to keep track of their finances.

When we create our test cases we should be wanting to run these 3 user types simultaneously to determine if the system can handle the diverse load. Ofcourse you would also want to test these actions individually to stress the system in certain parts (i.e viewing your balance for an account runs a simple SELECT statement against the database server – but money transfers can involve INSERT, UPDATE and DELETE and therefore stress the database server more.).

In industry there are 2 main loadtesting tools :

  1. Borlands SilkPerformer
  2. Mercury/HPs LoadRunner

Both of these tools are excellent but also very expensive. They can test many more avenues than a simple website – i.e SAP, Oracle Forms, Siebel, Java, .NET, Terminal Emulation etc.

For some open source loadtesting applications you should have a look here : Open Source Performance Testing Tools.

I will create a new post soon that will essentially demo one of the tools above and show how simple it can be.

Until then…

Categories: ALM, Testing

2 Responses to “Loadtesting Applications and what to use…”

  1. abc says:

    dljds

  2. mcnicholl says:

    Thats very insightful – I’ll be sure to keep your comments in mind for future use. :-)

"Thought leadership is how winners are differentiated in business."