Перейти к содержимому

Тестирование производительности: JMeter 5
онлайн, начало 2 июля
SQL: Инструменты тестировщика
онлайн, начало 1 июля
Docker: инструменты тестировщика
онлайн, начало 1 июля
Программирование на C# для тестировщиков
онлайн, начало 25 июня
Фотография

ssh tunnel на время выполнения сценария

ssh jmeter

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 13

#1 Prettser

Prettser

    Новый участник

  • Members
  • Pip
  • 53 сообщений


Отправлено 27 июля 2016 - 10:06

Доброе время суток.

 

Столкнулся с необходимостью выполнения определенных сэмплов через ssh тунель.

 

Имеем:

- хост "A", с которого доступны запросы на хосты "A1", "A2" ... "An"

- хост "B", на котором будет выполняться сценарий Jmeter. Эта машина имеет доступ к А, но не имеет доступа к А1, А2, А3 и т.д.

 

Задача:

- с хоста B делать SOAP запросы на хосты Ax, через хост А посредством создания туннелей.

- туннели должны создаваться именно в jmeter на время выполнения сценария

 

 

Сейчас добавил в группу OS Process Sampler, в котором в качестве команды указано SSH и добавлены соответствующие параметры. В итоге получаем выполнение команды "ssh -T -L localport:targethostAx:targetport serveruser@hostA"

После этого для отладки пока добавил HTTP Request с обращением к нужному мне сервису на хосте Ax.

Однако команда выполняется успешно, а HTTP запрос сообщает Connection refused.

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

Однако меня интересует именно открытие такого туннеля не вручную, а в самом тесте Jmeter

 

Что я упустил? Или может есть другой выход для достижения цели?


  • 0

#2 Little_CJIOH

Little_CJIOH

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 27 июля 2016 - 10:23

Очевидное предположение что запрос идет до того как туннель проброшен. Воткните на пробу паузу перед HTTP Request

Возникают вопросы:
1) а что вы таким образом хотите тестировать?
2) а пользователь тоже через эти туннели ходить будет?
  • 0

#3 Prettser

Prettser

    Новый участник

  • Members
  • Pip
  • 53 сообщений


Отправлено 27 июля 2016 - 10:59

Паузу попробую

 

Ответы:

1) ТаргетСервера - это сервисы сторонних систем (будем называть их партнерами). В целях безопасности, доступ эти партнеры (их кстати около 50) дают конкретному хосту нашей системы, на котором стоит Oracle шина с настроенными "проксирующими" сервисами на таргетсервисы. Все запросы нашего портала обрабатываются через этот хост с шиной. Возникают ситуации, когда нужно проверять сервисы партнеров напрямую, без участия прокси-сервисов нашей шины. Опережая вопрос о запуске исполнения сценария с хоста "А", сразу отвечу: "низя сервер jmeter там запускать". (Это не я так сказал, это мне так сказали).

2) Наверное из первого ответа стало ясно, что пользователи ходят через портал, который работает через шину с прокси-сервисами.

 

это все, я и так много сказал, больше нельзя  :secret:

 

update: паузу попробовал, не спасло.

Стало любопытно, как этот Sampler (OS Process) работает? При выполнении команды и переходе к следующему сэмплу сессия уже закрыта? Или ssh сессия длится до завершения треда? Как можно проверить?


  • 0

#4 Little_CJIOH

Little_CJIOH

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 27 июля 2016 - 11:29

Если вы собрались таким способом тестировать нагрузку, то показатели у вас будут не валидные. С другой стороны они будут более пессимистичные чем реальность.
Может имеет смысл запускать jmeter batником, который будет поднимать и закрывать тоннели?
  • 1

#5 Prettser

Prettser

    Новый участник

  • Members
  • Pip
  • 53 сообщений


Отправлено 27 июля 2016 - 12:00

notWindows

при запуске .sh после открытия ssh соединения, скрипт не продолжит выполнение для запуска jmeter

Если я Вас правильно понял и Вы имели виду последовательное выполнение команд открытия туннеля с последующим запуском jmeter.

 

Хотя этот вопрос навел меня на интересную мысль ... буду пробовать

Спасибо


  • 0

#6 Little_CJIOH

Little_CJIOH

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 27 июля 2016 - 12:20

notWindows - резко все упрощает.

netstat -lantp |grep (локальный порт с которого открывается тоннель) выполнить в процессе ожидания между запуском туннеля и http request. увидите открылся ли порт.
если команда заканчивается на & то команда отцепляется от текущей консоли и выполнение скрипта продолжится, только потом придется искать и убивать этот ssh.
  • 1

#7 akaars

akaars

    Новый участник

  • Members
  • Pip
  • 64 сообщений


Отправлено 27 июля 2016 - 12:46

Как вариант - поднять через SSH постоянный socks proxy с хоста В на хост А. И гонять всё, что надо.


  • 1

#8 player1

player1

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Шайдров Павел
  • Город:Лимассол


Отправлено 27 июля 2016 - 14:42

У меня складывается впечатление, что что-то используется не по назначению.

 

Зачем Jmeter? Необходимо проводить нагрузочное тестирование партнёрских серверов или это какой то daily routine/monitoring? Если второе -- почему нельзя напрямую с хоста A запускать sh скрипты по ssh сессии?


  • 0

#9 Prettser

Prettser

    Новый участник

  • Members
  • Pip
  • 53 сообщений


Отправлено 28 июля 2016 - 05:08

Для мониторинга написан и работает софт с логированием в БД, графиками в GUI, который опрашивает сервисы и валидность их ответов + проверка валидности ЭЦП.

Дело именно в периодической необходимости различной нагрузки (да, да, сторонних сервисов. Заказчик хочет, менеджер не может отказать, тестировщик делает :( )


  • 0

#10 akaars

akaars

    Новый участник

  • Members
  • Pip
  • 64 сообщений


Отправлено 28 июля 2016 - 05:19

тестировщик делает :( )

Так что тестировщик говорит про идею использовать SOCKS Proxy через ssh? Вроде, все требования соблюдены.


  • 0

#11 Prettser

Prettser

    Новый участник

  • Members
  • Pip
  • 53 сообщений


Отправлено 28 июля 2016 - 05:43

notWindows - резко все упрощает.

если команда заканчивается на & то команда отцепляется от текущей консоли и выполнение скрипта продолжится, только потом придется искать и убивать этот ssh.

добавил к команде ключи -f -N

для выполнения в фоне

 

В этом случае Jmeter на этом сэмпле "замерзает", помогает только шатдаун тредов jmetra

При этом вижу, что процесс запущен и порт слушается

Соответственно даже получается wsdl посмотреть в браузере

После ручной остановки выполнения теста, приходится процесс убивать руками.

 

Не могу понять, почему после успешного выполнения команды сэмпл не отпускает

Думаю попробовать выполнить в beanshell сэмпле


  • 0

#12 Prettser

Prettser

    Новый участник

  • Members
  • Pip
  • 53 сообщений


Отправлено 28 июля 2016 - 05:45

 

Так что тестировщик говорит про идею использовать SOCKS Proxy через ssh? Вроде, все требования соблюдены.

 

тестировщик пошел читать как это делать :)


  • 0

#13 Prettser

Prettser

    Новый участник

  • Members
  • Pip
  • 53 сообщений


Отправлено 28 июля 2016 - 06:16

akaars, спасибо

теперь использую реальные адреса сервисов в jmeter

 

сделаю .sh для запуска jmeter под socks, в котором перед запуском jmeter будет подниматься прокси, а после завершения убиваться этот процесс.


  • 0

#14 akaars

akaars

    Новый участник

  • Members
  • Pip
  • 64 сообщений


Отправлено 28 июля 2016 - 06:54

Я этим пользуюсь, чтобы в интернетах лазить с открытых сетей. А то паранойя чешется...


  • 0


Тестирование производительности (JMeter)
онлайн
Тестирование удобства использования
онлайн
Тестирование REST API
онлайн
Тестирование веб-приложений 2.0
онлайн




Темы с аналогичным тегами ssh, jmeter

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале