In this post I outlined the products you need for load testing with Visual Studio 2010. I included a diagram with one configuration option for load tests. Here I will discuss other configurations available.
Configuration 1: “Local” Load Generation
This is what you get when you install Visual Studio Ultimate, which is the ability to generate load “locally” using the test host process on the same machine that VS is running on. In addition to limiting load to 250 users, it is also limited to one core on the client CPU.
Note that purchasing Ultimate also gives you the ability to collect ASP.NET profiler traces by using a Test Agent as a data collector on the Web server.
Configuration 2: Distributed Test Controller and Test Agents
This is a common configuration if you are scaling out your load agents. With this configuration, the Test Controller and each Test Agent is on a separate machine.
The advantage of this configuration is the controller is easily shared by team members, and overhead from the controller does not interfere with load generation nor operation of the client.
Note the Test Controller must have one or more Virtual User Packs installed to enable load testing. Load agents in this configuration always use all cores on the machine.
Configuration 3 A and B: Stacked Configuration
With configuration A, you install the Test Controller and Test Agent on the same machine as VS, then configure the Test Controller with Virtual User Packs. This enables you to generate >250 virtual users from the client machine, and unlocks all cores in the processor. Configuration B shows an alternative configuration, enabled if you configure the machine with Virtual User Packs using the VSTestConfig command line.
Note that a Virtual User Pack can only be used on one machine at a time, and configuring it on a machine ties it to that machine for 90 days. So you can’t have the same Virtual User Pack installed on both the VS client and a separate machine running the Test Controller. See the Virtual User Pack license for details.
Configuration 4: Stacked Controller, Distributed Agents
In this configuration, the controller is running on the same machine as the Test client, with distributed agents running as load generators. This configuration is recommended if you have a solo performance tester. If your test controller and test agents will be shared by a team, we recommend running the controller on a separate box. Note that test agents are tied to a single test controller. You can’t have two test controllers controlling the same agent.
If you are using Visual Studio 2008, these options should look familiar to you as the VS 2008 load agents and controller offered the same configuration options. The new twist with VS 2010 is the Virtual User Packs, which, as I explained in this post, offer you more flexibility in how you configure your load agents.