Monday, 9 September 2013
Load testing in the cloud
Problem: Scalability and setup can be problematic when setting up load and stress tests
Load testing is one of the tougher disciplines, not only does it require automated test execution, but it also requires high volumes of cases running every second. Scalability can easily become a problem, for your execution, and limitations in the infrastructure where the test is running dictates the test rather than your non-functional requirements.
Solution: Take your load test to the cloud
We have quite some time used Microsoft Visual Studio & Azure to run distributed load testing. It is a test setup of a test controller with multiple test agents hosted in Azure, using Visual Studio for running the distributed test.
It is the test controller's responsibility to manage the test agents. The controller handles the execution of the test cases, by nominating who (ie which test agents) to perform the test and how the cases should be performed. It also makes sure to distribute the relevant test cases for a given test agent when the test started. When the test is finished, the controller collects the data from all test agents and this forms the basis of test results.
The test agent is responsible for the execution of the tests and simulation of a given number of virtual users. The test controller tells which tests should be performed and how many virtual users to be allocated for each test. Test Agent reports the status to the test controller during the test, and this information is used to generate the load test metrics.
For more information on test controllers and agents please see MSDN: http://msdn.microsoft.com/en-us/library/vstudio/dd648127.aspx
The trick is getting all the test controllers and agents setup, and then running the automated test on this setup. But once it is running there is really no limit to the number of test agents you can spawn to do your bidding. There is a nice demo on Youtube, showing running Web performance test and load test in Visual Studio 2010: http://youtu.be/yhkHtXcgWUc
Another thing that you might want to look into is the preview version of MS Visual Studio 2013 – It incorporates distributed load testing as a feature, cutting most of the setup of controllers and agents, making distributed load testing much more easily available.
For an overview of the new features of VS 2013 have a look at Brian Harry’s Blog: http://blogs.msdn.com/b/bharry/archive/2013/06/03/visual-studio-2013.aspx
Preview version of VS 2013 can be found here: http://www.microsoft.com/visualstudio/eng/2013-preview
Have a nice day & Happy testing!