Сайт, который отлично работает на десяти посетителях, может лечь на пятистах — в день запуска рекламы или распродажи, когда каждая минута простоя стоит дороже всего. Нагрузочное тестирование отвечает на один вопрос: сколько одновременных пользователей выдержит ваш сайт и что сломается первым.
Причём «сломается» — это не всегда белый экран с ошибкой 500. Гораздо чаще сайт просто начинает отвечать по 8–10 секунд: страницы формально открываются, но посетители не ждут и уходят к конкурентам, а рекламный бюджет продолжает тратиться. Нагрузочный тест позволяет узнать предел прочности заранее, в контролируемых условиях, когда бизнес ничем не рискует.
Есть четыре ситуации, когда пропускать тест — значит осознанно играть в рулетку с трафиком и репутацией.
Под словами «нагрузочное тестирование» скрывается пять разных типов проверок. Они отвечают на разные вопросы, и грамотный тест-план почти всегда включает несколько из них.
Smoke-тест — короткий прогон с минимальной нагрузкой, буквально 5–10 виртуальных пользователей на пару минут. Его задача — убедиться, что сценарии написаны верно, сайт отвечает, авторизация и корзина работают. По сути, это проверка самого теста перед «боевыми» прогонами.
Load-тест — основная проверка на ожидаемой нагрузке. Мы берём реалистичную цифру (например, прогнозируемый пик рекламной кампании) и смотрим, как сайт держит её в течение 20–40 минут: не растёт ли время ответа, не появляются ли ошибки. Ответ на вопрос «выдержим ли мы то, что планируем».
Stress-тест — нагрузка ступенями до отказа. Здесь цель обратная: намеренно довести систему до предела и зафиксировать, при каком числе пользователей она ломается и что именно отказывает первым — база данных, память, воркеры приложения или внешний API. Это даёт бизнесу точную цифру запаса прочности и карту узких мест.
Soak-тест (endurance) — умеренная нагрузка на длинной дистанции, от нескольких часов до суток. Он ловит проблемы, которые не видны на коротких прогонах: утечки памяти, переполнение логов и временных таблиц, деградацию соединений с базой. Сайт, который бодро держит час, может «протечь» и упасть на шестом часу распродажи.
Spike-тест — резкий скачок нагрузки: с 50 пользователей до 1000 за секунды и обратно. Именно так выглядит трафик после email-рассылки, пуш-уведомления или выхода сюжета в СМИ. Тест показывает, переживает ли система мгновенный наплыв и как быстро восстанавливается после него.
Отчёт о нагрузочном тесте оперирует несколькими показателями. Разберём их простыми словами — чтобы результаты можно было читать без переводчика с технического.
Для типового интернет-магазина или сайта услуг тест-план выглядит примерно так:
| Сценарий | Что проверяем | Критерий успеха |
|---|---|---|
| Просмотр каталога | Отдачу списков товаров, фильтры, пагинацию, работу кеша | p95 до 1,5 с при целевой нагрузке, ошибок 0% |
| Карточка товара | Запросы к базе, остатки, фото, блоки рекомендаций | p95 до 1,5 с, база без деградации |
| Корзина / форма заявки | Добавление в корзину, сессии, отправку формы, письма-уведомления | p95 до 2 с, потерянных заявок 0 |
| Поиск по сайту | Скорость поиска на параллельных запросах, нагрузку на БД или поисковый движок | p95 до 2 с, без блокировок базы |
| Оплата | Создание заказа, обращение к платёжному шлюзу, обработку callback-ов | Ошибок 0%, ни один платёж не потерян |
| Личный кабинет / авторизация | Вход, регистрацию, устойчивость сессий под нагрузкой | p95 до 2 с, ошибок менее 0,1% |
Критерии в таблице — ориентиры для типового проекта; под конкретный бизнес их уточняют: для лендинга под рекламу планка жёстче, для B2B-портала с тяжёлыми отчётами — мягче.
Инструментов много, но на практике выбор сводится к четырём проверенным.
Важно понимать: инструмент — 20% результата. Остальные 80% — правильный профиль нагрузки, реалистичные сценарии и грамотная интерпретация цифр.
Интернет-магазин стройматериалов запустил кампанию в Яндекс.Директе с бюджетом около 300 000 ₽ в месяц. В первый же пиковый вечер сайт начал отдавать ошибки при ~300 одновременных посетителях: страницы каталога открывались по 12–15 секунд, треть заявок терялась.
Стресс-тест на копии продакшена подтвердил цифру и показал узкие места: тяжёлые SQL-запросы фильтра каталога без индексов, полное отсутствие кеширования страниц и отдача изображений (60% трафика) с того же сервера, что и приложение. Что сделали за две недели:
Контрольный прогон после оптимизации: сайт стабильно держит 2000+ одновременных пользователей с p95 около 0,9 секунды и нулевой долей ошибок — рост предела прочности в 6–7 раз на том же сервере. Стоимость работ (тест, оптимизация, контрольный прогон) — 120 000 ₽, то есть меньше половины месячного рекламного бюджета. Эффект: конверсия из рекламы выросла в 1,8 раза только за счёт того, что сайт перестал «тормозить и падать» в пиковые часы, а запланированный апгрейд сервера не понадобился.
Тест ради теста бессмысленен — ценность в действиях после него. По итогам отчёта обычно выстраивается короткий план: сначала дешёвые точечные исправления (индексы, кеш, лимиты воркеров), затем — при необходимости — архитектурные изменения и масштабирование. Часто нагрузочный тест заказывают вместе с аудитом сайта: аудит находит проблемы «в ширину», тест — измеряет их «в глубину» под нагрузкой.
Второй обязательный шаг — мониторинг. Тест показывает предел в моменте, а настроенный мониторинг и алерты следят за ним постоянно: вы узнаёте о приближении к «полке» по CPU или росте времени ответа базы до того, как это заметят посетители. В идеале нагрузочный прогон становится частью регламента: перед каждым крупным релизом и каждой пиковой кампанией.
Тест типового сайта или магазина — от 40 000 ₽: профиль нагрузки, сценарии, прогоны, отчёт с разбором узких мест. Тест плюс исправления «под ключ» с контрольным прогоном — обычно 80 000–150 000 ₽ в зависимости от масштаба проблем. Для сравнения: один сорванный день распродажи у среднего магазина стоит дороже.
Осторожно — да. Прогоны ставят на часы минимального трафика (обычно ночь), нагрузку поднимают плавно и останавливают при первых признаках деградации, тестовые заказы помечают, чтобы не смешивать с реальными. Но stress-тест «до отказа» на проде мы не делаем — для него разворачивается копия окружения.
Минимум — перед каждым событием с прогнозируемым пиком: запуск рекламы, сезон, выход в СМИ. Плюс после значимых изменений: переезд на другой хостинг, смена CMS или фреймворка, крупный релиз. Сайт меняется постоянно, и результаты годовой давности говорят о сегодняшнем пределе прочности примерно ничего.
Если трафик стабильно низкий и всплесков не планируется — нет, не нужно. Нагрузочный тест — это подготовка к росту. Но как только в планах появляется реклама, рассылка на большую базу или публикация в СМИ, вопрос перестаёт быть теоретическим: дешевле узнать предел за неделю до запуска, чем в день запуска.
Отчёт с цифрами предела (пользователи, RPS, заказы в минуту), графики времени ответа и ошибок по ступеням нагрузки, список узких мест с приоритетами и план исправлений с оценкой стоимости. Сценарии тестов остаются у вас — повторный прогон после доработок стоит заметно дешевле первого.
Нагрузочный тест типового сайта или магазина — от 40 000 ₽ в составе QA-работ: сценарии, прогоны, отчёт с разбором. По итогам обычно хватает точечных исправлений — индексы в базе, кеширование, лимиты воркеров — чтобы поднять предел в 2–5 раз без покупки железа. Если же узкое место архитектурное, вы узнаете об этом заранее и спланируете изменения без аврала.
Опишите задачу — подберём решение и рассчитаем стоимость за 5 минут.
Каталог проверенных IT-услуг для бизнеса: разработка, дизайн, DevOps, безопасность и аналитика. Работаем по договору по всей России.