Vitalii Budniak
Спс плюс минус понимаю. Я просто лоад только пытаюсь делать, потому что в основном е2е тесты писал, поэтому может что-то не понимаю банально простого с лоад тестами .....
Или же я скажу проще. Банально является задача проверить выдержит ли сервер 1000 пользователей. Мы очень приблизительно знаем, что реальный пользователь в среднем более 1 реквеста в секнуд делать не будет (а то меньше), поэтому я поставил себе задачу натравить 1000 пользователей с 1 реквестом в секунду от каждого. То есть данную задачу я так понимаю правльно реализовать, используя pace (1 seconds)
(иначе будет больше запросов)
#антипаттерны
Не буду говорить, что где-то есть ошибка. Просто заметка.
Измерение нагрузки в пользователях с переносом реальных пользователей на "пользователей" инструмента тестирования является одной из самых частых ошибок инженеров по нагрузке.
Вот лично вы уже поняли, что такое шаг нагрузки - длительность работы одного пользователя. Так вот, реальный пользователь работает с системой не 1 сек, а 5-30 минут. За это время кто-то делает 1 запрос, кто-то 200. Интенсивность (RPS) от того, который делает 200 запросов за 5 минут = 200/5/60 ~= 0.67 в сек. Это максимум, а от того, который делает 5 запросов за 10 минут ~= 0.0083 запроса в сек.
Пусть мы работаем по профилю - 1000 пользователей, которые делают 5 запросов за 10 минут (каких-то конкретных запросов, конкретной группой параметров). То они создадут интенсивность:
1000 запусков в сек, но в среднем лишь
1000*0.0083 = 8.3 запроса в сек. Не 1000 в сек, а 8.3 в сек.
И если система выдержит 8-9 запросов в сек, то 1000 типичных неспешных пользователя, работая с ней одновременно, ее не нагрузят.
Но если вы поставите себе цель 1000 запросов в сек, или более того, 1000 успешно выполняющихся сценариев в сек (пусть в каждом сценарии Notification будет по 3 запроса), то это 3000 конкретных запросов в сек. То можете ошибиться с требованиями. Завысить их. А потом система выйдет в продуктив и окажется неожиданно быстрой, хотя не должна была держать нагрузку.
Верно считать профиль нагрузки в запросах в сек, в транзакциях в сек, но не в пользователях, имея в виду реальных пользователей.
Основывать расчет профиля (в RPS) лучше на анализе статистики работы пользователей, или хотя бы интеграционных автотестов (с Selenium). Сконвертировать пользователей в RPS.