Jmeter Distributed (Remote) Testing: Master Slave Configuration-Chapter 10


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.
Distributes testing uses client-server model as the figure below:
How to perform Distributed Testing in JMeter
  • 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:
How to perform Distributed Testing in JMeter

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:
How to perform Distributed Testing in JMeter
On the master systems, go to /bin directory and edit file jmeter.properites, add IP slave machine as below
How to perform Distributed Testing in JMeter

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
How to perform Distributed Testing in JMeter

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.
How to perform Distributed Testing in JMeter
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 can only handle a limited number of threads (100- 300 threads).
  • The distributed JMeter tests are complex, difficult for a beginner to build.

No comments:

Post a Comment