How to load and stress test your web application
Our main task was to develop and manage an intranet based web application which was utilized by more than 100 employees within the organization.
The first few days when the system went live, only a few users were there to use the system and everything went well.
There were no crashes, all pages were served and everyone seems happy with the system.
But a few weeks later, we started getting calls from users that they are unable to access the Intranet web site.
We investigated and found out that some services crashed. Restarting the services solves the problem but only for the day.
The next day, the same thing happened and it looks like the crashes are happening just right before lunch time as people were concurrently doing some last minute data submission for some report generation purposes.
It looks like the massive number of users trying to access the web application at the same time was causing the app to crash.
Without a proper systems monitoring software then, we had no idea which server or services were maxing out and causing the crash.
It got really frustrating for us as well as the users. At one time, we were told by our BOSS to get the problem fixed ASAP… or else….
We had a difficult time trying to figure out where the problem was and we could look at the error logs and investigate only when the crash occurs.
If only there was a way that we could simulate many users trying to access the web application at the same time without having to wait for the actual users to hit the app.
Well, today I stumbled on this neat little software called WAPT, which helps us do exactly that.
WAPT is a load, stress and performance testing tool for web sites and web applications.
Rather than having to gather 100 people to access the site at the same time, WAPT is capable of emulating the typical activity of hundreds or even thousands of concurrent site visitors.
Some key features of WAPT includes:
- Ability to test websites running under any OS or web technology
- Simulate different types of users, for e.g. users logging in and users checking out
- Increase concurrent virtual users over a period of time
- Test web sites and web applications secured by SSL
- Descriptive test reports and graphs showing response time, bandwidth usage, etc
I’ve given WAPT a try and this is how it went.
The WAPT download is about 5MB in size and is a full featured software which you can use for 30 days trial but supports only 2 load agents. Basically if you need to test your web app with a lot more concurrent virtual users, then you will need more load agents.
Once WAPT is installed, the first thing to do is to create a test scenario.
As you can see from the screenshot above, the following types of testing can be created:
- Capacity/ overall performance
- Performance characteristics
- Stress capabilities
- Reliability / endurance
- Real user experience / background testing
- Scalability / benchmarking
I guess stress testing would be commonly created since app developers may be more interested to find out the breaking point of their web application against the maximum user load.
On page 3 of 6, you can also set the number of virtual users participating in the test as well as the ability to ramp up additional users over a certain period.
With a few more additional wizard based settings, the summary is displayed and you’re good to go.
Once finished, now it’s time to begin recording your test sequence.
Remember how we can create user profiles for each test? You can create a user profile for those visiting your articles and another user profile for user who are registering online. This is done through the Recorder feature.
Once all the screens that you want to test for have been recorded, you can click on the Run Test button to begin the test.
Do note that at this point, your load agents will begin to take up machine resources such as CPU and RAM utilization.
When the test completes, the results will be reported in HTML format with summary report, graphs and charts for your analysis purposes.
In case you still find web application testing to be a difficult task, do not worry as WAPT comes with a comprehensive help file which explained every single detail there is to the software.Bob Lee :)