The title of this post is unusual because the word ‘automated’ adds little to the phrase ‘automated web load testing’. What I wanted to stress in today’s post is that there is really no way to make any serious attempt at web load testing without automating it. Manual Web Load Testing is an oxymoron. Functional testing can be done manually, but the only way to place a significant stress on an application with a large user load is by automating it using web load testing tools. Ah, but somebody might tell you that they asked twenty-five of their co-workers to click the Login button at the same time. Keep in mind that web load testing tools can typically automate loads of thousands of virtual users and keep it there for hours if not days. Moreover using techniques like sync points that allow virtual users to perform the same same task simultaneously, you can stress the web server to an even higher degree. In addition, you can use a variety of scripts and scenarios to generate the load. Automated web load testing will also allow you to ‘randomize’ your web requests by parameterizing them with varying data. When your load test discovers performance bottlenecks you can utilize monitoring to try to identify the root cause. We can now begin to see why manual load testing does not even come close to measuring up to the task.
Despite this, many users perform manual load testing by enlisting a set of users and asking them to use the application simultaneously. When these kinds of applications are released, the initial failure rate is very high. This is usually evident within a few hours of release and the application has to be taken down and a team of programmers is assembled to frantically attend to these issues in order to minimize the loss of productivity.
Web load testing automation is an indispensible tool in the arsenal of a development team that is creating a web application that will be concurrently accessed by many users. These applications are often used only by development teams who are using them in single user mode. Multiple user usage will uncover a completely new set of issues. These issues will get more pronounced as the number of concurrent users increases. Moreover, when the application is released it’s not just development issues that matter. Release configurations (e.g. web server and database tuning) will also influence the performance of the application. Early lifecycle web load testing will allow teams to anticipate all these issues and address them before the application is released. This will both save productivity and will avoid embarassing post release issues.