Archive for the 'Quality Assurance' Category

Load Testing your web server

One of my new duties at work is load testing web applications. We usually only do this with the release of a new application or during migration to new hardware. I’ve used a couple different tools but am most happy with a product called WAPT which stands for Web Application Performance Tool and is put out by SoftLogica. The software runs on a typical worktation and can generate the load of hundreds or even thousands of users depending on your hardware.

Creating your test script is easy as it records your progress as you step through your application.  After you are done recording your path through your application, you can go back and edit each page and configure variables to produce dynamic information.  See variables circled in red below:

WAPT GUI

In my tests I took a workstation and set it to scale 250 users at 10 minute intervals to an upper limit of 2000 users. The tools has a nice graphical interface that lets you step through your web application, recording pages and form data sent. After you stop recording, you go back and can modify the data being sent using functions that can generate random numbers and sequences of text or iterations from lists. It makes it possible to create a test script that will never send the same data twice to your application. This goes for both web form selections or plain text entry.

After your test is complete, you have a ton of data and graphs you an go over. Here is an example one graph from one of my tests:

average response time graph

This particular graph charts the average response time calculated from 90% of the activity placed on the server for a particular lookup screen. You can see that as the system reached 1000 concurrent users, it started to crap out and we halted the test. This particular system was running a newly configured LPAR on AIX using Oracle Application Server. It didn’t seem to scale as well as we had hoped but oh well.

The good news is we were able to determine that the enfironment for an existing application wasn’t performing as well as the old environment. Always nice to know before you make the switch and find out you can’t scale. ;-)