Aug

17

Application Stress Testing - Do you know when your application will crash?

team bayFor a while now we have been performing application stress testing for our customers. We basically setup our drone machines and network to throw a bunch of traffic towards an online application, use our customized scripts to simulate users, and tediously measure the results. From there we can produce reports projecting application performance over varying loads and situations. So why is this an important thing for businesses to evaluate… Read on!

Why you need it.

Stress testing can provide invaluable insight into the scalability and performance of your application. It gives you the ability to anticipate load times witnessed by your users, gives you the ability to forecast problems, helps identify application and hardware limitations, allows you to properly plan and deploy infrastructure, and in most cases can locate areas in which your applications can be optimized for better performance. What does this mean.. well simply put, a proper stress test can help you avoid downtime when your web site or application is needed the absolute most, during heavy usage. I have experienced far to many sites going down or slowing to a crawl when they get too much traffic, not only is the web site losing my interest, but they are probably loosing my business too. This is unacceptable today given the fact that most time it can be easily avoided.

What is stress testing?

Basically stress testing an application is generating a pre-defined amount of traffic to accomplish a pre-defined set of tasks on an application, then collecting data and interpreting the results. The amount of traffic and which actions are performed depend on what you are testing but usually simulates normal user activity factoring for anticipated growth. Anything from visiting multiple web pages within a site, to engaging in actual application usage like logging in, purchasing items, taking tests, running reports, filling out forms, etc.. During the testing process very specific measurements are recorded and this data is used to produce specific reports on the performance and limitations of your web application.

What should the reports show?

Another common question is what information should your test reveal. Well of course like everything else that depends. At a minimum I would suggest at least getting a good idea of how many simultaneous users your application can handle with the current infrastructure. That will give you a loose idea of when to anticipate issues based on too many users and potentially avoid them. I would also check for hardware bottlenecks, or potential software issues. Our own Jesse Woodruff does a good job describing them technically in his post here. Ultimately you’re looking for enough information to build a roadmap for growing your application based on actual usage. You should know how many users your web application can handle, what is the longest acceptable load time you can deliver to those users, when you need to scale your infrastructure, what components of the infrastructure you will need to scale first, and potentially what modifications can be made to your application to utilize less resources and therefore extend the life of your current infrastructure. Having this information readily available will not only help you save money by planning correctly for your application, but can also help you avoid unacceptable downtime that would loose business.

Leave a Reply