Jmeter Distributed (Remote) Testing: Master Slave Configuration

What is Distributed Testing?

Distributed Testing is a kind of testing which use multiple systems to perform Stress Testing. Distributed testing is applied for testing websites and server applications when they are working with multiple clients simultaneously.

Distributed testing uses client-server model as the figure below:

Distributed Testing

  • Master: the system running JMeter GUI, control each slave.
  • Slave: the system running JMeter-server, receive a command from the master and send a request to a server under test.
  • Target: the web server under test, get a request from slaves.

Remote Test Example

Precondition:

  • The firewalls on the systems are turned off. In some cases, the firewall may still be blocking the traffic. You should disable the Window firewall or Linux firewall.
  • All the machines should be on the same subnet. If machines are not on the same subnet, maybe they will not recognize each other in the network.
  • Use the same version of JMeter to avoid unanticipated errors/issues.

Here is the roadmap for this testing:

Remote Test Example

Step 1) System configuration

Setup slave systems, go to jmeter/bin directory and execute file “jmeter-server.bat”.

Assume that a slave machine has IP address: 192.168.0.10. On windows, you should see a window appear like the following figure:

System Configuration

On the master systems, go to /bin directory and edit file jmeter.properites, add IP slave machine as below

System Configuration

Step 2) Run the test

At this point, you are ready to start load testing. On the master machine, run JMeter GUI and open the test plan.

Click Run on the menu bar; select Remote start ->select the IP address of slave machine

Run the Test

Step 3) Troubleshooting

If you are unable to run test form the above machine and see below error, simply ask an owner of a slave machine to run the JMeter-server.bat File.

Troubleshooting

Disable Firewall on both master and slave machines to fix this error.

Limitation

There are some basic limitations for distributed testing. Here’s list of the known items:

  • Server and all clients must be on the same subnet.
  • Distributed testing required target server to have the large processing power. The target Server could be easily overloaded in case it gets too many requests by distributed JMeter tests.
  • A single JMeter slave system can typically handle a limited number of threads, ranging from 100 to 300 threads, depending on the hardware configuration and the complexity of the test plan.
  • The distributed JMeter tests are complex, difficult for a beginner to build.