Получите максимальный параллелизм из плана тестирования JMeter и ограничьте его значение

У меня есть распределенная установка JMeter, и я хочу создать вокруг нее оболочку службы Java.

План тестирования (файл JMX) предоставляется пользователем. Следовательно, я не знаю используемых там свойств и конфигурации. План тестирования пользователя может иметь несколько групп потоков и потенциально настраиваемые плагины групп потоков, такие как Ultimate Thread Group, Arrival Thread Group и т. Д.

  1. Я хочу получить общее максимальное количество # потоков или максимальное количество параллельных потоков (активных потоков), которое может быть достигнуто с помощью пользовательского плана тестирования. Можно ли получить это значение до выполнения плана тестирования? Это поможет мне соответствующим образом подготовить серверы для этого тестового прогона.

  2. Можно ли ограничить общий максимальный параллелизм, достигаемый планом тестирования? (аналогично тому, что мы можем делать с RPS с использованием таймеров) (Также, пожалуйста, укажите параметры для настраиваемых групп потоков, таких как Ultimate thread group)


person Madhuri Jain    schedule 02.09.2020    source источник


Ответы (1)


Это не то, что вы можете эффективно контролировать, потому что:

  1. Можно настроить JMeter для запуска дополнительных потоков, если текущего количества недостаточно для достижения / поддержания целевой пропускной способности, используя ie Таймер формирования пропускной способности и Concurrency Thread Группа с функцией обратной связи

  2. Пользователи могут использовать свойства или functions / variables для параметризации / вычисления параллелизма

  3. Пользователи всегда могут использовать элементы тестирования JSR223 и сделать что-то вроде:

    ctx.getThreadGroup().addNewThread(0, ctx.getEngine()) 
    

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

Таким образом, максимум, что вы могли сделать, - это полагаться на ограничения JVM по по умолчанию у вас есть 1 мегабайт размера стека на поток, что дает ваши 1024 потока на каждый гигабайт памяти, выделенной для Java, поэтому вы можете либо увеличить размер стека, либо уменьшить память, выделенную для JVM, в соответствии с вашими ограничениями

person Dmitri T    schedule 02.09.2020