Distributed Testing In JMeter
Distributed
load testing in jmeter is the process of simulating large number of virtual
users using multiple systems or load generators. One single machine may
not be able to generate the desired virtual users for a load test due
to its hardware limitations and hence jmeter allow us to connect
multiple machines to achieve the goal. In
JMeter, this is achieved by creating a Master-Slave configuration.
For Example, You want to run a load test with 600 virtual
users but what if your machine is unable to generate more than 300 virtual
users ? To overcome this issue, you can use the distributed testing in jmeter.
Master: The
system running Jmeter GUI, which controls the test.
Slave: the system running
jmeter-server, which takes commands from the GUI and send requests to the
target system(s). In other words, it’s the load generator machine which create
the threads and send request to target system to simulate the user load.
As shown in above image, 192.168.0.2 is a master machine
however, 192.186.0.10 and 192.168.0.15 are slave machines.
How to
setup master-slave configuration ?
Below are
the pre-requisite to setup the master-slave configuration:
1. Firewalls on all the systems should be turned off.
2. Master and all slave machines should have same jmeter
version.
3. All the machines should be in the same network.
Below
are detailed steps to set up the configuration:
1. On master system acting as the console, open windows
explorer and go to jmeter/bin directory.
2. Open jmeter.properties in a text editor.
3. Edit the line “remote_hosts=127.0.0.1” and add the IP
addresses of slave machines.
4. For example, in our case we will add 192.168.0.10, 192.168.0.15
and the entry will look like this:
remote_hosts=192.168.0.10,192.168.0.15
5. Restart jmeter. (Any chnage in jmeter.property file will
reflect only after restarting the jmeter)
6. Create the RMI Keystore by usingbelow steps:
- Go to master machine's JMeter bin directory
- Open create-rmi-keystore.bat file (for
windows) and create-rmi-keystore.sh (for linux)
- Enter following details
- A "rmi_keystore.jks" file will be
created in master server's bin folder.
- Copy "rmi_keystore.jks" file and paste it to all slave server's bin folder.
6. Run bin/jmeter-server.bat file on all the slave machines and you are done with configuration.
Run the JMeter Test from GUI.
Now you are ready to run your first Jmeter load test with
distributed configuration. In jmeter GUI go to RUN and click Remote Start ALL
as shown in below image and it will start the test with all the slave machines..
Run the JMeter Test from Non-GUI (cmd):
It is advisable to run the distributed test from Non-GUI mode. You can run it in using below
command.
jmeter -n
–t test.jmx -l testresults.jtl -R 192.168.0.10,192.168.0.15
Important notes:
1. If have set 100 users in your jmeter script and you are
running the test with 2 slave machines then the jmeter will actually run the 200 users test.
Each slave will create and run the 100 users.
2. You need to copy the test data file to respective slave
machines.
3. You do not need create a copy of jmeter scripts in slave
machines.
Leave a Comment