Designing Logical Load Tests


connection routing cannot be tested with connections that are being established and terminated quickly, so we need to identify the persistence assumption.

Perhaps a more relevant example will be to outline the assumptions to validate the test goal, "To explore what happens when 10,000 people try to navigate our Web site's most popular path simultaneously." What are the assumptions?

  1. The most popular path of the Web site is: log on, navigate to Content…
  2. One "person" represents a single connection to a Web server, followed by actions that will navigate the user according to assumption 1.

Once you have your assumptions in place, you now have logically made the transition from a load goal to being able to actually test. You have identified the control and test parameters, and you have assumptions by which you will make calculations of actual values. This is where you fill in numbers and values for all parameters, both control and test, that you identified previously. You can then execute!

Make sure that as you prepare and run the load test, you jot down every step you took. You will want to be able to repeat your findings if necessary, especially if things go wrong. It may be that as the load test starts, the environment or test setup will require a tweak to get it going-make note of that. It may be that you realized halfway through that someone else was doing bandwidth-intensive work on the network-make note of that as well. Keep track of all your control parameters and alter your test parameter according to plan.

Document everything-starting with the initial steps of identifying your load test goal and defining assumptions, straight on through to your calculations and execution notes. All of it should be written down and documented somehow, whether in Notepad or a template in Microsoft Word. Not only will it make reproducing the test much easier, but when it comes to sharing results of the test, you will have at your fingertips all the information required to put together a good report.

Finally, make sure that you have defined a quantitatively clear stopping point for your load test, and that you run it to completion. A load test goal like "establish 10,000 connections to the load balancer and make sure they route properly to Web servers" is a goal with a clear definition of the stopping point: establishing 10,000 connections. On the other hand, a load test goal like "generate 50 percent load on the system" is unclear and has no definite stopping point.

Load and stress tests that are constructed in a logical manner, with up-front planning and strategy before execution, will yield meaningful results that you will be able to quantitatively convey.


AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.