Ставим задачу на нагрузочное тестирование

На собесах всегда спрашиваю, имеет ли кандидат опыт постановки задачи на проведение нагрузочного тестирования - НТ. Часто слышу, что нет. У меня же такой опыт есть, с удовольствием поделюсь. Постановка задачи на НТ может включать:Что вообще проверяем? Например, проверка нагрузки всего сервиса, тогда на НТ прогоняем весь профиль. Или нагрузка какого-то конкретного метода — выдержит ли он х5 вызовов? 😐 Или нагрузка в рамках какого-то сценария, состоящего из набора бэковых процессов.

Бизнес-смысл происходящего Возможно, к методу подключаются новые потребители или скоро в мобильном приложении появятся новые экраны с красивым фильтром по четырем разным параметрам 😬 ⚫Что изменилось в технической реализации? Например, изменился план запроса или добавились дополнительные шаги в алгоритме какого-то фонового процесса системы.

На что повлияет? Какие другие процессы может затронуть?

Требования к данным Перед проведением тестирования будут генериться данные. Наша задача — дать точный список таблиц, которые должны быть заполнены 📝 Иногда требуется конкретное соотношение тех или иных записей, чтобы данные были больше похожи на продовые.

Фоновые процессы Возможно, для более показательного результата нужно сэмулировать какие-нибудь массовые действия пользователей или запустить какой-то процесс джобом. Если не укажешь это в задаче, то НТ пройдет в лайт-режиме, а прод потом даст вам прикурить 🚬 ⚫Предполагаемая нагрузка В день, в час, в секунду или как-то иначе. Если не меняется, так и пишем.

Ожидаемое время Время ответа или завершения процесса — основная метрика!

Нужно ли добавлять метод в профиль? Профиль сервиса — это набор вызовов, которые будут эмулироваться на нагрузочном стенде при стандартной проверке «на неухудшение». Если метод не очень нагруженный, можно и не добавлять.

Забирай себе список, держу пари — пригодится! А что вы обычно описываете в задачах на НТ? Если есть вопросы по работе с нагрузкой — тоже задавайте

Встречаемся в комментах 😊