#jmeter
Вопрос:
В моем приложении я хочу выполнить 20000 запросов за 10 часов, но я хочу распределить нагрузку в разное время с разным количеством средств запроса, например, за 1 час 2000 запросов, за второй час 3000 запросов, за третий 1000 запросов, как этого достичь, значит, как разделить нагрузку в разное время без разницы. о запросе
Ответ №1:
Самый простой вариант-это Таймер формирования пропускной способности, конфигурация, реализующая описанную вами настройку:
Рекомендуется использовать группу потоков параллелизма в сочетании с Таймером формирования пропускной способности, они могут быть подключены через функцию обратной связи, чтобы JMeter мог запускать дополнительные потоки, если текущего количества недостаточно для достижения/поддержания желаемого количества запросов в секунду.
Оба являются плагинами JMeter и могут быть установлены с помощью менеджера плагинов JMeter
Ответ №2:
Другим решением может быть использование таймера постоянной пропускной способности.
N. B. Хотя таймер называется таймером постоянной пропускной способности, значение пропускной способности не обязательно должно быть постоянным. Он может быть определен в терминах вызова переменной или функции, а значение может быть изменено во время теста. Значение может быть изменено различными способами:
Вы можете установить пропускную способность, используя свойство или переменную.
Рассчитайте значения пропускной способности, которые вам нужны в разные интервалы времени, и установите свойство, когда время будет достигнуто.
props.put("currentTPM", 120)
У вас будет некоторая работа по проверке продолжительности с момента начала теста.
Вы можете создать отдельную группу потоков для управления пропускной способностью. Переименуйте имя группы потоков на TG-TM
. Установите число потоков равным 1, а число циклов-бесконечным. Задайте продолжительность группы потоков.
def lstThrouputInOneHour= [2000,3000,1000,5000,4000,5000]
def currentIndex=vars.get("__jm__TG-TM__idx").toInteger()
if (currentIndex <lstThrouputInOneHour.size() ) {
def currentTPH=lstThrouputInOneHour[currentIndex]
def currentTPM=currentTPH.intdiv(60)
props.put("currentTPM",currentTPM.toString())
Thread.sleep(60*60*1000)
}
Примечание.Пожалуйста, введите задержку запуска для других групп потоков, чтобы обеспечить им доступ к значению пропускной способности при запуске.
Это решение может быть расширено для работы с сервером оболочки компонента, где вы можете удаленно изменять значения пропускной способности (свойства JMeter)