JMeter: Можно ли запускать параллельные группы потоков на различных подчиненных узлах с помощью JMeter?

#jmeter #performance-testing

Вопрос:

В моем плане тестирования у меня есть 3 группы потоков, и у меня есть 3 подчиненных узла (удаленные серверы). Я хотел бы запустить все эти группы потоков параллельно, но каждую на определенном подчиненном узле.

   Test Plan 
     Thread Group X - (192.169.0.1)
       - HTTP Request Defaults
       - Cookie Manager
         HTTP Request-1
     Thread Group Y - (192.169.0.2)
       - HTTP Request Defaults
       - Cookie Manager
         HTTP Request-2
     Thread Group Z - (192.169.0.3)
       - HTTP Request Defaults
       - Cookie Manager
         HTTP Request-3
 

Пример:

Thread Group X на 192.169.0.1

Thread Group Y на 192.169.0.2

Thread Group Z на 192.169.0.3

У кого-нибудь есть идеи, возможно ли что-то подобное на JMeter или нет? Любое предложение или мысли будут действительно оценены по достоинству.

Ответ №1:

Есть 2 варианта, оба предполагают оценку функции __machineIP()

  1. На уровне группы потоков вы можете проверить, на каком хосте работает JMeter, и соответственно установить количество потоков или циклов:
     ${__jexl3(if ("${__machineIP()}" == "192.169.0.1") {return 0},)}
     

    если вышеуказанная функция __jexl3() будет выполнена на 192.169.0.1 хосте — она вернется 0 , и JMeter проигнорирует группы потоков, в которых 0 потоков или циклов, таким образом, вы можете «отключить» ту или иную группу потоков

  2. Используйте контроллер If (например, применимый к HTTP-запросам), аналогичная функция __jexl3() запускает выполнение запроса на 192.168.0.1

    введите описание изображения здесь

Ответ №2:

Вы можете определить количество пользователей (количество потоков) для каждого потока в файле user.properties.

Например, добавьте следующее {JMETER_HOME}/bin/user.properties в мазь 192.169.0.2 on, чтобы запустить Thread Group Y

 number.of.threads.threadx=0
number.of.threads.thready=100
number.of.threads.threadz=0
 

Настройте другие сохранения с требуемым количеством потоков {JMETER_HOME}/bin/user.properties .

Считайте количество потоков (свойства JMeter) с помощью функций. Добавьте в группы потоков следующее

введите описание изображения здесь

Это решение гарантирует, что потоки будут создаваться только для требуемых групп потоков