Как я могу установить частоту прибытия вместо определения потоков с течением времени (в JMeter)?
Я пытаюсь упростить реализацию стохастического тестирования производительности с использованием jmeter. Мы делали это раньше, но это занимает много времени.
Дело в том, что если у меня количество одновременно работающих пользователей (на основе общего количества посещений и прошедшего времени), я предполагаю, что прошедшее время не изменится. Но, если во время стрессовой ситуации сервер занимает больше, чем ожидалось, пользователи будут складываться, потому что некоторые пользователи не уйдут в ожидаемое время. Следовательно, реальное совпадение будет отличаться от расчетного.
Традиционный тест сохранит предварительно установленных виртуальных пользователей (не имеет значения, увеличивается или нет), даже если истекшее время увеличивается из-за более медленного ответа сервера. Если ответы сервера медленнее, jmeter будет выполнять меньше итераций. Я не хочу этого делать, я хочу создавать больше потоков, если это необходимо, чтобы сохранить скорость прибытия.
Есть ли способ, которым я могу установить скорость прибытия пользователей вместо постоянных потоков с течением времени?
4 ответа
Я обычно работал в тесте производительности, используя интенсивность нагрузки, основанную на скорости прибытия. Вы должны рассмотреть следующие вопросы, потому что модель более точна, чем другие, основанная на виртуальных пользователях, но имеет много сложностей, которые вам нужно преодолеть.
1.- Для Jmeter вам нужно сменить диспетчер потоков, потому что плагины -in по умолчанию неэффективны (не волнуйтесь, коммерческие продукты имеют те же проблемы и стоят дорого) 2.- Вы должны построить Модель прибывающий курс. Изменение скорости по времени с использованием эмпирического распределения или других хорошо известных, таких как Пуассон, Эрланг и так далее. 3.- Активные пользователи и параллелизм являются следствием: скорости прибытия, рабочей эжекудо и количества времени на обдумывание между работой. Вы не можете контролировать переменную виртуального пользователя, не имеет смысла, это изменение традиционного способа проведения теста. Например, вы можете использовать данные Google Analytics и построить стохастическую модель, вам не нужно настраивать виртуальных пользователей, потому что это результаты теста. тест даст вам ответ, каково количество активных пользователей / сессий, когда у меня определенная скорость прибытия. 4.- Но у пункта 3 есть очень важная проблема, поскольку платформе нагрузки требуется больше емкости, чем традиционному тесту, основанному на виртуальных пользователях.
Является ли торговля более точной, но более сложной по сравнению со старым методом виртуальных пользователей, который является менее сложным, но ненадежным.
Я использую этот вид тестирования на сайтах B2C с 500000 посещений в час, с 5 - 7 миллионами страниц в час. Единственный способ построить тест точности с этой меткой нагрузки - это использовать модель, основанную на скорости поступления.
Я не думаю, что есть какой-либо прямой способ достичь того, чего вы хотите.
но вы можете попробовать это, хотя это не правильный путь (пользовательский плагин был бы лучшим вариантом, пожалуйста, проверьте на jmeter плагинов.)
1. keep no of threads very high
2. set ramp up duration as it will set the arrival rate which you need
3. set the expected test duration
пример:
Предположим, я хочу провести тест в течение 10 минут со скоростью прибытия 2 пользователей в секунду, поэтому значения будут
no of threads : 2000
ramup : 600
test duration : 600
Другой вариант - плагин Stepping Thread Group. Это должно служить вашей цели.
Для вас есть 2 варианта:
- Встроенный таймер постоянной пропускной способности
- Таймер формирования пропускной способности от jmeter-plugins.org
Функция таймеров - задерживать запросы. Таким образом, вы создаете чрезмерное количество потоков, и тогда таймер задержит их для достижения желаемой скорости поступления.
Я думаю, что следующая комбинация покрывает 99% случаев использования:
- Ultimate Thread Group для интеллектуального и простого наращивания, замедления и удержания нагрузки между
- Постоянный пропускной таймер - для точной установки необходимой нагрузки