Нагрузочное тестирование сайта: зачем, когда и как
Обновлено
Сайт может быстро открываться, когда на нём десять человек, и перестать отвечать, когда их становится тысяча. Узнать это в день распродажи или рекламной кампании — самый дорогой способ: деньги на рекламу потрачены, а покупатели видят ошибку. Нагрузочное тестирование отвечает на этот вопрос заранее: сколько посетителей одновременно сайт выдерживает уверенно, при какой нагрузке начинает тормозить и что именно ломается первым.
Что такое нагрузочное тестирование сайта
Это проверка, при которой на сайт отправляют много одновременных «посетителей» — программ, которые открывают страницы так же, как это делают люди: главную, каталог, карточки товаров, поиск. Нагрузку увеличивают постепенно и смотрят, как меняется время ответа и появляются ли ошибки.
Результат теста — не «сайт хороший» или «плохой», а конкретные цифры:
- сколько человек может находиться на сайте одновременно без заметного замедления;
- при какой нагрузке страницы начинают открываться дольше нескольких секунд;
- когда появляются ошибки (чаще всего 502 и 503);
- какие страницы сдаются первыми — обычно это поиск, фильтры каталога и корзина.
Когда его нужно проводить
- Перед распродажей, «Чёрной пятницей», запуском рекламы или рассылкой — когда известно, что посетителей станет в разы больше.
- После переезда на другой хостинг или сервер — чтобы убедиться, что новый тариф не хуже старого.
- После крупной доработки или обновления CMS — новая функция может сделать страницы тяжелее.
- Регулярно, например раз в месяц — сайты медленно «тяжелеют»: растёт каталог, добавляются модули и счётчики.
Какие бывают тесты
В разговорах их часто смешивают, но цели у них разные:
- Нагрузочный тест — проверка ожидаемой нагрузки: выдержит ли сайт, например, 500 человек одновременно во время акции.
- Стресс-тест — нагрузка растёт до тех пор, пока сайт не начнёт отказывать. Так находят предел. Подробнее — в статье о стресс-тесте.
- Тест на всплеск — резкий рост за минуту, как после рассылки или выхода рекламы на ТВ.
- Длительный тест — умеренная нагрузка в течение часов, чтобы найти утечки памяти и переполнение диска.
Для большинства сайтов малого и среднего бизнеса достаточно первых трёх.
Какие цифры смотреть в результатах
- Время ответа, 95-й процентиль (p95). Время, за которое открываются 95 % страниц. Среднее значение обманчиво: оно может быть хорошим, даже если каждый двадцатый посетитель ждёт 10 секунд.
- Доля ошибок. Ответы 5xx, обрывы соединения, таймауты. Больше 1–2 % под нагрузкой — уже повод разбираться.
- Запросы в секунду. Сколько обращений сайт обрабатывает. Если нагрузка растёт, а это число перестаёт расти, сайт упёрся в предел.
- Точка деградации. Число одновременных посетителей, после которого время ответа начинает резко расти. Это и есть практическая «вместимость» сайта.
Почему виртуальный посетитель — не то же самое, что человек
Живой человек открывает страницу и читает её 20–40 секунд. Программа в тесте делает паузу 1–3 секунды и сразу открывает следующую. Поэтому 100 виртуальных посетителей создают нагрузку, как несколько сотен или тысяча реальных. Хороший отчёт пересчитывает результат в понятные величины: «столько человек на сайте одновременно», «столько визитов в час», — иначе цифры легко неправильно понять.
Как провести тест: три способа
1. Самостоятельно, инструментами для инженеров
JMeter, k6, Gatling, Yandex.Tank — бесплатные и мощные. Но нужно написать сценарий, поднять отдельный сервер для генерации нагрузки (с ноутбука не получится — упрётся в домашний канал), а потом разобраться в графиках. Это работа на день-два для разработчика, который уже знает инструмент.
2. Заказать у подрядчика
Подходит для крупных проектов со сложными сценариями: оформление заказа, личный кабинет, интеграции. Стоит от нескольких десятков тысяч рублей и занимает от недели.
3. Онлайн-сервисом
Сервис сам находит страницы сайта, строит сценарий посетителя, генерирует нагрузку со своих серверов и выдаёт отчёт. Так работает НагрузкаПро: вы выбираете ситуацию — обычный пик, рекламная кампания, распродажа или поиск предела, — а через 5–10 минут получаете вывод простыми словами и список того, что улучшить.
Как не навредить сайту во время теста
- Запускайте тест ночью или в часы с минимальным трафиком: нагрузка теста добавляется к настоящим посетителям.
- Увеличивайте нагрузку плавно, а не сразу на максимум.
- Используйте автоматическую остановку: если сайт начал массово отвечать ошибками или открывать страницы дольше 10 секунд, тест должен сам снять нагрузку. В НагрузкаПро это включено всегда.
- Предупредите хостинг, если у него есть защита от DDoS: она может принять тест за атаку и заблокировать адреса генератора.
- Тестируйте только свои сайты. Нагрузка на чужой сайт без разрешения владельца — нарушение закона, поэтому сервисы требуют подтвердить права на домен.
Что делать с результатом
Если сайт держит ожидаемую нагрузку с запасом в 1,5–2 раза — можно спокойно запускать акцию. Если нет, чаще всего помогают три вещи: кэширование страниц, отдача статики через CDN или отдельный веб-сервер и тариф хостинга с большим числом процессов. Подробный разбор — в статье почему сайт тормозит при наплыве посетителей. После исправлений повторите тест и сравните результаты: так видно, что изменение действительно помогло.
Частые вопросы
Сколько стоит нагрузочное тестирование сайта?
Проверка на подрядчика с JMeter обычно стоит от нескольких десятков тысяч рублей: инженер пишет сценарий и разбирает результаты. Онлайн-сервис делает типовую проверку сам — у НагрузкаПро во время беты она бесплатна.
Можно ли тестировать сайт, который уже работает?
Да, но в часы минимального трафика: тест добавляет нагрузку к настоящим посетителям. Хороший тест растит нагрузку постепенно и останавливается сам, если сайт начинает отказывать.
Как часто проводить нагрузочное тестирование?
Перед каждым крупным событием (распродажа, реклама, запуск), после смены хостинга или большой доработки и регулярно — например, раз в месяц, чтобы заметить, что сайт стал медленнее.
Ещё по теме
- Как проверить, выдержит ли интернет-магазин распродажу
Какие страницы магазина падают первыми, сколько посетителей закладывать на акцию и что сделать за неделю до неё.
- Нагрузочное тестирование сайта на 1С-Битрикс
Как проверить сайт на Битриксе под нагрузкой и какие настройки кэша, PHP и MySQL дают больше всего.
- Как проверить, выдержит ли сайт на WordPress нагрузку
Сколько выдерживает WordPress, почему WooCommerce тормозит и какой кэш включить до рекламной кампании.