Я новичок в использовании https://k6.io для нагрузочного тестирования, и мне было интересно узнать о поведении функции sleep
.
Сейчас я построил нагрузочный тест с несколькими этапами , В моей функции по умолчанию у меня есть несколько запросов (get и post), которые выполняются.
Я заметил, что если я выполняю их последовательно в течение нескольких минут, мое приложение, работающее на elasti c beanstalk, начинает замедляться и в итоге выдает 500 ошибок.
Однако, если я добавлю оператор sleep
после каждого запроса следующим образом:
const getMe = http.get(`${appEndpoint}/me`, params)
check(getMe, {
'me: status was 200': r => r.status == 200,
'me: response time OK (under 500ms)': r => r.timings.duration < maxResponseTimeMs,
});
sleep(Math.floor(Math.random() * 4) + 1)
// next request would follow below
Тогда я могу легко увеличить количество виртуальных пользователей в 10 раз без каких-либо проблем.
Поэтому мой вопрос заключается в следующем :
Вызывает ли sleep
k6, чтобы приостановить ВСЕ запросы для всех виртуальных пользователей на это время ИЛИ просто ли он приостанавливает запросы от одного виртуального пользователя за один раз.
Как я понимаю это значит, что виртуальные пользователи - это всего лишь параллельное выполнение функции default
, которая запускает ваш нагрузочный тест, поэтому вся функция приостанавливается для всех пользователей или для каждого пользователя.
Не удалось найти любая информация об этом в документах, так что любые указатели будут оценены!
Спасибо