Подтвердить что ты не робот

JMeter с удаленными серверами

Я пытаюсь настроить JMeter в распределенном режиме. У меня есть сервер, работающий на ec2 intance, и я хочу, чтобы мастер запускался на моем локальном компьютере. Мне пришлось перепрыгнуть через некоторые надежды на то, чтобы RMI правильно работала на сервере, но была решена с установкой "java.rmi.server.hostname" в IP экземпляра ec2.

Следующая (и, надеюсь, последняя) проблема заключается в том, что сервер обращается к ведущему.

Проблема заключается в том, что, поскольку я делаю это из внутренней сети, мастер отправляет локальный/внутренний IP-адрес (192.168.1.XXX), когда он должен отправлять IP-адрес моего внешнего соединения (92.XXX.XXX.XXX).

Я вижу это в jmeter-server.log:

ERROR - jmeter.samplers.RemoteListenerWrapper: testStarted (host) java.rmi.ConnectException: подключение отказалось от хоста: 192.168.1.50; вложенное исключение:

Этот IP-адрес хоста неправильный. Это должен быть адрес 92.XXX.XXX.XX. Я предполагаю, что это происходит потому, что в основных журналах я вижу следующее:

2012/07/29 20:45:25 INFO - jmeter.JMeter: IP: 192.168.1.50 Имя: XXXXXX.local FullName: 192.168.1.50

И этот IP-адрес отправляется на сервер во время установки RMI.

Итак, у меня есть два варианта:

  • Сообщите мастеру отправить внешний IP-адрес
  • Сообщите серверу подключиться к внешнему IP-адресу ведущего устройства.

Но я не вижу, где установить эти команды.

Любая помощь будет полезна.

4b9b3361

Ответ 1

Похоже, что это не работает "Распределенное тестирование JMeter" объясняет требования к тестированию нагрузки в распределенной среде. Я считаю, что номера 2 и 3 относятся к вашему случаю использования.

  • Брандмауэры в системах отключены.
  • Все клиенты находятся в одной подсети.
  • Сервер находится в той же подсети, если используются 192.x.x.x или 10.x.x.x ip-адреса.
  • Убедитесь, что JMeter имеет доступ к серверу.
  • Убедитесь, что вы используете ту же версию JMeter для всех систем. Варианты смешивания могут работать некорректно.

Ответ 2

В интересах будущих читателей не принимайте ответа. Возможно! Кроме того, вы можете сохранить свой брандмауэр на месте.

В этом случае я сделал все по порту 4000.

Как подключить клиент и сервер JMeter для распределенного тестирования с экземпляром Amazon EC2 и локальной машиной dev в разных сетях.

Настройка:

  • JMeter 2.13 Клиент: локальный компьютер (другая сеть)
  • JMeter 2.13 Сервер: экземпляр Amazon EC2

Я сконфигурировал распределенную клиентскую/серверную связь JMeter следующим образом:

1. Добавлено правило перенаправления портов на моем брандмауэре/маршрутизаторе:

  • Порт: 4000
  • Назначение: частный IP-адрес клиента JMeter в локальной сети.

2. Настроил параметры "Группа безопасности" на экземпляре EC2:

  • Тип: Разрешить: Входящие
  • Порт: 4000
  • Источник: открытый IP-адрес клиента JMeter (мой IP-адрес моего компьютера/сети)

Обновление. Если у вас уже есть соединение SSH, вы можете использовать туннель SSH для подключения, что позволит избежать необходимости устанавливать правила брандмауэра.

$ ssh -i ~/.ssh/54-179-XXX-XXX.pem ServerAliveInterval=60 -R 4000:localhost:4000 [email protected]

3. Конфигурированный клиент $JMETER_HOME/bin/jmeter.properties файл Раздел RMI:

Обратите внимание, что здесь меняются только значения, отличные от значения по умолчанию:

#---------------------------------------------------------------------------
# Remote hosts and RMI configuration
#---------------------------------------------------------------------------

# Remote Hosts - comma delimited
# Add EC2 JMeter server public IP address:Port combo
remote_hosts=127.0.0.1,54.179.XXX.XXX:4000

# RMI port to be used by the server (must start rmiregistry with same port)
server_port=4000

# Parameter that controls the RMI port used by the RemoteSampleListenerImpl (The Controler)
# Default value is 0 which means port is randomly assigned
# You may need to open Firewall port on the Controller machine
client.rmi.localport=4000

# To change the default port (1099) used to access the server:
server.rmi.port=4000

# To use a specific port for the JMeter server engine, define
# the following property before starting the server:
server.rmi.localport=4000

4. Конфигурированный удаленный сервер $JMETER_HOME/bin/jmeter.properties файл RMI раздел следующим образом:

#---------------------------------------------------------------------------
# Remote hosts and RMI configuration
#---------------------------------------------------------------------------

# RMI port to be used by the server (must start rmiregistry with same port)
server_port=4000

# Parameter that controls the RMI port used by the RemoteSampleListenerImpl (The Controler)
# Default value is 0 which means port is randomly assigned
# You may need to open Firewall port on the Controller machine
client.rmi.localport=4000

# To use a specific port for the JMeter server engine, define
# the following property before starting the server:
server.rmi.localport=4000

5. Начал сервер/ведомый JMeter с помощью:

jmeter-server -Djava.rmi.server.hostname=54.179.XXX.XXX

где 54.179.XXX.XXX является общедоступным IP-адресом сервера EC2.

6. Начал работу с клиентом/мастером JMeter с помощью

jmeter -Djava.rmi.server.hostname=121.73.XXX.XXX

где 121.73.XXX.XXX является общедоступным IP-адресом моего клиентского компьютера.

7. Разработал тестовый набор JMeter.

enter image description here Выход журнала JMeter GUI

Успех!

Ответ 3

У меня была аналогичная проблема: сервер JMeter попытался подключиться к неправильному адресу для отправки результатов теста (он пытался подключиться к localhost).

Я решил это, установив следующий параметр при запуске ведущего устройства JMeter:

-Djava.rmi.server.hostname = xx.xx.xx.xx