Stressless Load Testing

All About Performance Testing & Tools for Web, Mobile and API

v2.0/update #3 Part 1: Distributed testing

Distributed testing allows spreading load generators across multiple machines running Load Agents, which operate under the management of a Controller. The benefit of distributed testing is the ability to emulate practically an unlimited number of VUs and mimic users disseminated across a network and geographically. Distributed testing is available in the Enterprise edition only.

Distributed testing step-by-step

Step 1. Installing Controller and Load Agents.  A single StresStimulus software product performs three distinctive roles: Designer, Controller, and Load Agent. On the test design stage, the Designer is used for designing test scenarios (test script) and configuring test parameters. The Controller executes the test. It distributes the amount of load between Load Agents, coordinates their operation, collects and aggregates real-time performance metrics and generates final reports. The Load Agents operate concurrently under the orchestration of the Controller. Load Agent can be installed on a physical or virtual machine as well as on an Amazon EC2 instance. Controller should not be installed on Amazon EC2 instances.

StresStimulus Enterprise edition software, after installation, operates as a Designer and Controller. In order to launch a Load Agent, after installing StresStimulus, enable Agent mode. To do so (see Fig 1.),

  1. In StresStimulus menu-> Options check the “Enable Agent Mode” box.
  2. Click OK twice.
  3. The StresStimulus status bar will display “StresStimulus Load Agent”.  This means that the Agent listener on the TCP port 49998 became active.

 

The Controller communicates with the Agents on this port as a client.  If the Controller displays a communication error, make sure that StresStimulus is running on the remote computer in agent mode, and that TCP port 49998 is opened on firewalls between the controller and agents.


Fig. 1

With the Enterprise Edition license, you can install as many load agents as you need. To return back to the designer/controller,the Agent mode should be disabled.

Configuring a load agent on Amazon EC2 instance.  Make sure that port 49998 is opened on Amazon virtual firewall. Fig 2 shows the example how it can be configured.

  1. From the Amazon web console, create a new security group, SS_Agent_sec_gr.
  2. Create a custom TCP rule to keep inbound port 49998 opened.
  3. Use this security group when creating an EC2 instance.

 

 

Fig. 2

Step 2. Configuring Load Agent connections in the test. In the Test Configuration section -> Load Agents, the grid in the data pain displays Load Agent connections and settings. The first agent in the test is the controller by itself. The first agent name is Local. To add a new connection (see Fig 3).

 

 

Fig. 3

  1. On the grid's toolbar, click Add.
  2. Enter connection properties.
  3. Click Test Connection button. If a pop-up message indicates any connectivity issues, correct them and try again.
  4. If the message indicates that the connection is successfully verified, click Save and the connection will be added to the grid.
  5. To edit the existing connection, selected it on the grid and click “Edit Selected Load Agent Connection” on the toolbar. Alternatively, you can right-click and select “Edit”, or double-click on the agent's name.
  6. To delete the existing connection, selected it in the grid and click “Delete Selected Load Agent Connection” on the toolbar. Alternatively, you can right-click and select “Delete”.

Step 3. Configuring load distribution. The number of VUs emulated by a Load Agent is proportionate to its VU weight.

  1. Enter the desired VU weight for each agent. To disable a Load Agent, set its VU weight to zero.
  2. To verify how the controller is going to distribute VUs, click “Test connections to the Load Agents with non-zero VU weights”. This operation will re-test the connections as well.
  3. To re-test an agent connection, click its Test button.

 

 

Fig. 4

Step 4. Distributed test results. During the test run, the controller communicates with the agents and collects, aggregates and displays graphs with real-time performance metrics. When configuring the load test, make sure to add to the controller required performance counters, because performance counters are not collected from the agents. Every agent displays its own local key performance indicator graphs locally. Agents also display local CPU and memory utilization graphs. Since the agents are most likely operated on unattended computers, agent graphs and progress monitors can be viewed via Remote Desktop sessions. After the test completion, the controller generates consolidated summary and detailed reports.

 To navigate to other parts of the v2.0 notes, click the links below:

 

 Previous Posts:

 

V2.0 beta is available for download here.

blog comments powered by Disqus