Задать вопрос
@SokSokol

С чего начать нагрузочное тестирование сайта?

Я хочу изучить нагрузочное тестирование.
Есть сайт с формой регистрации и входа. Думаю попробовать JMeter.
Какие самые простые сценарии можно сделать для начала: регистрация нескольких пользователей, массовый вход или что-то другое?
  • Вопрос задан
  • 83 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
Начать нужно с определения цели нагрузочного тестирования.
Что вы хотите узнать?
1. Системные требования
2. Стабильность пол высокой нагрузкой
3. Максимальную производительность на том железе, что сейчас есть
4. Сравнить как изменилась производительность после каких-то изменений?
5. Что-то ещё?

Из этого уже определяйте, какой профиль нагрузки нужно подавать, так как просто 100500 запросов на одну конкретную ручку явно не будет похоже на реальную нагрузку, а по тому результат подобного тестирования скорее всего не принесёт пользы
Ответ написан
@rPman
Собрать статистику запросов на чтение (не меняющих состояние и базу, за исключением тех частей что собирают статистику уже внутри самого проекта, 'типа эту статью прочитало 100500 человек'), самое простое это разобрать логи веб сервера, при НОРМАЛЬНОМ использовании веб сервиса, хотя бы за месяц времени.

Разработать модуль тестирования, а точнее симуляции поведения типового пользователя, включая запросы на модификацию базы (например добавление статьи или комментария). Последнее правильно сделать можно только тем кто знает как работает веб приложение, например верная последовательность запросов (что бы добавить комментарий нужно сначала открыть статью). Модуль должен иметь как минимум 'одну ручку' - количество пользователей (лучше больше - есть читатели а есть писатели, их разный процент в разное время, все это вытаскивается из анализа истории запросов и базы данных по таймингам), а так же давать отчет о скорости загрузки страницы в целом (min/max/avg) и ошибках. Помним что при разных размерах базы данных, производительность будет по разному меняться от разной мощности железа (к примеру как только индексы sql db перестают влезать в оперативную память, скорость падает экспоненциально). Можно сюда же добавить зависимость нагрузки от времени (день/ночь или даже день недели). Можно еще добавить разовые события повышенной нагрузки (например на одну конкретную статью).

Затем крутить этот тестовый модуль с разными нагрузками и мониторить показатели, включая нагрузку на диск, память и процессор (можно разделить нагрузку на бакэнд и базу данных, полезно для прогнозирования методов масштабирования).

p.s. данный модуль тестирования желательно разрабатывать одновременно с веб приложением, и поддерживать его все время жизни (как часть методологии test driven development).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы