REMOTE TESTING- In the event that your JMeter client machine is unable, performance-wise, to simulate enough users to stress your server, an option exists to control multiple, remote JMeter engines from a single JMeter GUI client. By running JMeter remotely, you can replicate a test across many low-end computers and thus simulate a larger load on the server. One instance of the JMeter GUI client can control any number of remote JMeter instances, and collect all the data from them. This offers the following features:
- Saving of test samples to the local machine
- Management of multiple JMeterEngines from a single machine
- No need to copy the test plan to each server – the client sends it to all the servers
However, remote mode does use more resources than running the same number of non-GUI tests independently. If many server instances are used, the client JMeter can become overloaded, as can the client network connection.
Note that while you can execute the JMeterEngine on your application server, you need to be mindful of the fact that this will be adding processing overhead on the application server and thus your testing results will be somewhat tainted. The recommended approach is to have one or more machines on the same Ethernet segment as your application server that you configure to run the JMeter Engine. This will minimize the impact of the network on the test results without impacting the performance of the application server itself.
Step 0: Configure the nodes
REMOTE TESTING- Make sure that all the nodes (client and servers) are running exactly the same version of JMeter. As far as possible, also use the same version of Java on all systems. Using different versions of Java may work – but is best avoided.
If the test uses any data files, note that these are not sent across by the client so make sure that these are available in the appropriate directory on each server. If necessary you can define different values for properties by editting the user.properties or system.properties files on each server. These properties will be picked up when the server is started and may be used in the test plan to affect its behavior (e.g. connecting to a different remote server). Alternatively use different content in any datafiles used by the test (e.g. if each server must use unique ids, divide these between the data files)
Step 1: Start the servers
To run JMeter in remote node, start the J Meter server component on all machines you wish to run on by running the JMETER_HOME/bin/jmeter-server (unix) or JMETER_HOME/bin/jmeter-server.bat(windows) script.
Note that there can only be one JMeter server on each node unless different RMI ports are used.
Since J Meter 2.3.1, the J Meter server application starts the RMI registry itself; there is no need to start RMI registry separately. To revert to the previous behavior, define the J Meter property server.rmi.create=false on the server host systems.
By default, RMI uses a dynamic port for the J Meter server engine. This can cause problems for firewalls, so versions of J Meter after 2.3.2 will check for the J Meter property server.rmi.localport . If this is non-zero, it will be used as the local port number for the server engine.
Step 2: Add the server IP to your client’s Properties File
REMOTE TESTING- Edit the properties file on the controlling J Meter machine . In /bin/jmeter.properties, find the property named, “remote_hosts”, and add the value of your running J Meter server’s IP address. Multiple such servers can be added, comma-delimited.
Note that you can use the -R command line option instead to specify the remote host(s) to use. This has the same effect as using -r and -Jremote_hosts={serverlist}. E.g. jmeter -Rhost1,127.0.0.1,host2
If you define the J Meter property server.exitaftertest=true, then the server will exit after it runs a single test. See also the -X flag (described below)
Step 3a: Start the J Meter Client from a GUI client
Now you are ready to start the controlling J Meter client. For MS-Windows, start the client with the script “bin/jmeter.bat”. For UNIX, use the script “bin/jmeter”. You will notice that the Run menu contains two new sub-menus: “Remote Start” and “Remote Stop” (see figure 1). These menus contain the client that you set in the properties file. Use the remote start and stop instead of the normal J Meter start and stop menu items.
Step 3b: Start the J Meter from a non-GUI Client
As an alternative, you can start the remote server(s) from a non-GUI (command-line) client. The command to do this is:
jmeter -n -t script.jmx -r
or
jmeter -n -t script.jmx -R server1,server2…
Other flags that may be useful:
-Gproperty=value – define a property in all the servers (may appear more than once)
-Z – Exit remote servers at the end of the test.
The first example will start whatever servers are defined in the J Meter property remote_hosts; the second example will define remote_hosts from the list of servers and then run the remote servers.
The command-line client will exit when all the remote servers have stopped.
Test Your Software Testing Skills By Taking Our JMeter Practice Tests On This Link
Become Vskills Certified JMeter Tester. Gain some knowledge on the module “REMOTE TESTING”. Try the free practice test!
Apply For JMeter Certification