Речь пойдёт о настройке и запуске распределённой сети JMeter для подачи нагрузки c нескольких серверов, которые будут управляться централизованно.
Клиент — компьютер, с которого управляем запуском и остановкой нагрузочных тестов на удалённых «Серверах».
Сервер — компьютер, на котором происходит запуск нагрузочных тестов.
Целевая система — система, которая подвергается нагрузочному тестированию.
%JM% — каталог установки JMeter.
Необходимо учесть, чтобы на «Клиент» и «Сервер» были установлены одинаковые версии Java, а также JMeter. Возможно установить разные версии, но совместную работу разных версий Java и JMeter не проверял.
НАСТРОЙКА
Настройка Сервера
Предварительно устанавливаем Java и JMeter.
1. В каталоге %JM%\bin правим файл user.properties:
— Добавить строку server.rmi.ssl.disable=true — отключаем SSL, чтобы не генерировать ключи.
— Добавить строку server.rmi.localport=4444 — указываем порт (любой), через который JMeter будет работать (полезно, если на файрволле открываем определённый порт для JMeter). Если не указать, то при старте Сервер выберет случайный порт.
2. В каталоге %JM%\bin правим файл jmeter-server (тот который без расширения):
— Расскоментировать строку #RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx и указать IP Сервера, на котором вы проводите текущие настройки (пример: RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.56.110), полезно когда в системе несколько сетевых адаптеров и нужно выбрать конкретный. На этом IP будет доступен RMI сервер, для удалённого управления.
Настройка Клиента
Предварительно устанавливаем Java и JMeter.
1. В каталоге %JM%\bin правим файл user.properties:
— Добавить строку server.rmi.ssl.disable=true — отключаем SSL, чтобы не генерировать ключи.
2. В каталоге %JM%\bin правим файл jmeter.properties:
— В строке remote_hosts= указываем через запятую с пробелом IP-адреса Серверов, которыми мы будем управлять (пример: remote_hosts=127.0.0.1, 192.168.56.110).
ЗАПУСК ТЕСТОВ
Запуск Сервера
На Сервере запускаем JMeter выполнив сценарий %JM%\bin\jmeter-server.bat (в Windows).
В командной строке получим следующее:
На Сервере JMeter запущен и ждёт команды с Клиента.
Запуск Клиента
На Клиенте запускаем JMeter выполнив сценарий %JM%\bin\jmeter.bat (в Windows).
Откроется графическая оболочка. Нам необходимо открыть или создать сценарий нагрузочного тестирования (он в дальнейшем автоматически будет передаваться на Сервера для выполнения).
Далее проследовав в пункт меню Run -> Remote Start мы увидим список Серверов, на которых мы можем запускать тесты:

Можно запустить распределенную нагрузку с помощью пункта меню Run -> Remote Start All. Данный пункт позволяет запустить нагрузку с использованием всех имеющихся в списке серверов. Если требуется использовать только определенный сервер, следует выбрать пункт меню Run -> Remote Start -> [SERVER], где [SERVER] — адрес определённого сервера.
Если нагрузку запускали на определённом Сервере, то и останавливать её надо выбирая определённый сервер, через пункт меню Run -> Remote Stop -> [SERVER], так как в этом случае команда через пункт меню Run -> Remote Stop All может не отработать. Используем Run -> Remote Stop All если до этого нагрузку запускали через Run -> Remote Start All.
После запуска тестов на Сервере через Клиент мы увидим на Сервере в консоли:
После остановки тестов на Сервере через Клиент мы увидим на Сервере в консоли:
ОТОБРАЖЕНИЕ РЕЗУЛЬТАТОВ
JMeter на Клиенте собирает метрики со всех серверов. Чтобы это увидеть мы можем добавить, например, Listener -> View Results in Table.
Далее запускаем тест на любом Сервере и видим результаты выполнения тестов на определённом сервере, а также сколько виртуальных пользователей\потоков запущено всего:
ПОЛЕЗНО ЗНАТЬ
— Управляя Серверами можно одновременно запускать тест как на локальном сервере, так и на удалённом Сервере, но не перегружайте систему, где установлен Клиент.
— Если в скриптах есть использование определённых файлов и каталогов, то выносите их в сетевые каталоги, чтобы они были доступны со всех Серверов и с Клиента.
Вводная статья с официального сайта http://jmeter.apache.org/usermanual/remote-test.html