You have reached the limit of one machine while doing your load testing and now want to distribute your load from different machines. In Jmeter it is commonly called as distributed load testing or remote testing.
Distributed testing or remote testing have 3 parts: JMeter Master, JMeter Slaves and Target.
Following figure explains the relationship between them.
Distributed setup prerequistie
1. All firewalls in JMeter master and slave machines should be turned off
2. All machines should be in same subnet
3. Use same version of JMeter in all machines( master and slaves)
Setting up the environment
Setup consists of 3 parts:
Master – running the JMeter GUI/command which controls the test
Slave – the system running the JMeter server, which takes command from the GUI/master and send request to the Target system.
Target – The web server which is to be load/stress tested.
Make sure jmeter-sever.bat have proper path to rmiregistry.
- Open jmeter.properties and edit the line “remote_hosts=127.0.0.1”.
- Add IP address of the slave machines e.g.: “remote_hosts=192.168.1.5,192.168.1.6,192.168.8”
Starting the Distributed test
- Start jmeter-server.bat in all slave machines
- Start jmeter.bat in master machine and open the test plan to run. Use remote start or remote start all option from the menu. Alternatively, you can use command prompt to run the test script as shown below.
jmeter -n -t my_test.jmx -l log.jtl –r
-n this specifies JMeter is to run in non-gui mode
-t [name of JMX file that contains the Test Plan].
-l [name of JTL file to log sample results to].
-r Run all remote servers specified in jmeter.properties (or remote servers specified on command line by overriding properties)