Distributed load testing in JMeter

What is distributed load testing?

Distributed load testing is the process using which multiple systems are used for simulating load of large number of users. In JMeter this is achieved by creating a Master- Slave configuration.

Why it is required?

The reason of using more than one system for load testing is the limitation of single system to generate large number of threads (users).

What other options do we have?

Apart from using distributed load testing we can perform load testing over cloud also. Load testing on cloud (like Amazon�s EC2) has several advantages- easy scalability, no maintenance, fast deployment and no artificial network bottlenecks.
Another alternative is Blazemeter which is a cloud based service compatible with Apache JMeter. It generates large amount of instant load and provide very comprehensive reporting and analysis features.
Also, we can perform distributed load testing on cloud, in which multiple machines on cloud can be used for generating large amount of load.

Distributed Load Testing using JMeter

For distributed load testing we need to create Master-slave configuration wherein Master will control all the slaves and collect the test results.
To make the system work firewall needs to be turned off and all the systems need to be in same subnet. Also, preferably all the systems need to use same version of JMeter and Java.

  1. First of all we need to start the jmeter-server.bat in the slave systems. For this just go to the bin folder inside JMeter home directory and run the batch file jmeter-server.bat(for windows) or jmeter-server (for linux).
  2. Now on the master system open the properties file jmeter.properties and edit the remote_hosts entry. Remove the loopback address�s value (127.0.0.1) for the remote_host entry and specify the IP addresses of all the slave systems separated by commas.
    Distributed
  3. We just need to Remote start all the slave machines remotely in JMeter. For this just open JMeter on the Master machine (for which properties file is just edited). Open your test script and remote start all the nodes. Distributed