|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer|
About Controllers, Agents, and Rigs
Visual Studio Team Edition for Testers can use a group of computers to generate simulated load for testing, and to run tests remotely and simultaneously on several computers. This group of computers consists of a single controller and one or more agents, which are collectively called a rig. A rig is used to generate more load than a single computer can generate alone.
Load Simulation Architecture
The load simulation architecture consists of a client, controller, and agents.
The client is used to develop tests, select tests to run, and view test results.
The controller is used to administer the agents and collect test results.
The agents are used to run the tests.
This architecture provides the following benefits:
The ability to scale out load generation by adding additional agents to a controller.
The ability to share a rig with the entire team.
Flexibility for installing the client, controller and agent software on the same or different computer.
Even though a controller typically controls several agents, an agent is controlled by a single controller. Each agent can be shared by a team of developers. This architecture makes it easy to increase the number of agents, therefore generating larger loads.
In a typical lab environment, the clients reside on one or more developer and tester computers. The controller resides on a central computer whereas the agents are dispersed in the lab.
For more information about rig configuration options, see.
Agent and Controller Interaction
The controller manages a set of agents to run tests. The controller communicates with agents to start tests, stop tests, track agent status, and collect test results.
The controller provides a general architecture for running tests, and includes special features for running load tests. The controller sends the load test to all agents and waits until all the agents have initialized the test. When all agents are ready, the controller sends a message to the agents to start the test.
You can configure the controller to select agents based on the properties of the agent, for example, the operating system installed on the agent. You do this on the Controller and Agents tab of the run configuration file. For more information, see.
The agent runs a service that listens for requests from the controller to start a new test. When a request is received, the agent service starts a process on which to run the tests. Each agent runs the same load test.
Agents are assigned a weight by the administrator, and load is distributed according to an agent’s weighting. For example, if agent 1 has a weighting of 30, and agent 2 has a weighting of 70, and the load is set to 1000 users, then agent 1 simulates 300 virtual users while agent 2 simulates 700 virtual users. For more information about how to assign a weight to an agent, see.
The agent takes as input a set of tests and a set of simulation parameters. A key concept in Visual Studio Team Edition for Testers is that tests are independent of the computer on which they are run.
The installation guide contains important information about how to install a rig, hardware and software requirements for controllers and agents, and configuring your rig for optimal performance. For more information, see.