#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()
- На уровне группы потоков вы можете проверить, на каком хосте работает JMeter, и соответственно установить количество потоков или циклов:
${__jexl3(if ("${__machineIP()}" == "192.169.0.1") {return 0},)}
если вышеуказанная функция __jexl3() будет выполнена на
192.169.0.1
хосте — она вернется0
, и JMeter проигнорирует группы потоков, в которых 0 потоков или циклов, таким образом, вы можете «отключить» ту или иную группу потоков - Используйте контроллер 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) с помощью функций. Добавьте в группы потоков следующее
Это решение гарантирует, что потоки будут создаваться только для требуемых групп потоков