Сайт упадёт в день рекламы? Проверьте его JMeter заранее
Сайт магазина может упасть в день рекламы или Чёрной пятницы. Разбираем бесплатный JMeter с открытым кодом: что измерять, как читать отчёт и как тестировать так, чтобы это не стало нарушением закона.
Почему сайт падает именно в день события
Вы неделю готовили распродажу, блогер выложил пост. А через двадцать минут страница корзины грузится по полминуты, часть покупателей видит ошибку, остальные уходят к конкурентам.
Причина обычно в том, что сайт никогда не видел сразу много людей. В обычный день на нём пять человек в минуту, и он работает хорошо. Что будет при пятидесяти, никто не проверял. Узкое место может оказаться где угодно: слабый тариф хостинга, медленный запрос к базе, плагин в магазине, платёжный модуль. Найти его в день пика поздно. Найти за неделю до пика можно, и для этого есть нагрузочное тестирование.
Что такое JMeter
Это проект Apache Software Foundation. Репозиторий: github.com/apache/jmeter, около 9,5 тысячи звёзд, активные коммиты в начале октября 2026 года. Последний стабильный релиз на момент проверки 5.6.3, он вышел в январе 2024 года. Работает на Java 8 и новее.
Программа создаёт виртуальных пользователей, которые ходят по вашему сайту так, как вы им задали: открыли главную, выбрали товар, положили в корзину. Умеет HTTP и HTTPS, а ещё SOAP, FTP, базы через JDBC, LDAP, очереди JMS и почтовые протоколы. Архитектура построена на плагинах, поэтому возможности можно расширять. На выходе получаются таблицы и графики.
Русского интерфейса нет: в репозитории переводы на немецкий, французский, испанский, японский, китайский и другие языки, русского файла локализации я не нашёл.
Что измерять и как читать результат
Три показателя решают почти всё.
Время ответа. За сколько сервер отдаёт страницу. Смотрите на верхние процентили, 90-й и 95-й. Среднее значение скрывает тех, кто ждал в десять раз дольше остальных, а ждут обычно именно покупатели в пик.
Доля ошибок. Сколько запросов закончилось кодами 5xx, таймаутами или обрывом соединения. Даже один процент ошибок на странице оплаты уже потерянные заказы.
Третий показатель, пропускная способность: сколько запросов в секунду сервер переварил. Если вы увеличиваете число виртуальных пользователей, а пропускная способность перестаёт расти и при этом растёт время ответа, вы нашли потолок. Это и есть главный результат теста: цифра, до которой сайт держится.
Сравните этот потолок с ожиданием. Допустим, реклама может привести за час втрое больше людей, чем вы видите в самый загруженный обычный час. Это прикидка, свои цифры возьмите из метрики. Если потолок ниже ожидаемого пика, решать надо до запуска: кэш, оптимизация запросов, тариф посильнее.
Как провести тест по шагам
Сценарий собирают в графическом окне. Документация проекта прямо говорит, что оно нужно только для создания и отладки сценария, а нагрузочный прогон надо запускать из командной строки. В окне программа тратит лишние ресурсы.
Типичная команда выглядит так: jmeter -n -t scenario.jmx -l result.jtl -e -o report. Ключ -n включает режим без окна, -t задаёт файл сценария, -l пишет сырые результаты, -e и -o строят готовый HTML-отчёт с графиками. Эту же команду можно встроить в CI.
Нагрузку наращивают ступенями: сначала немного пользователей, потом больше, каждый раз с паузой. Так видно, на какой ступени время ответа пошло вверх. Если одной машины мало, у JMeter есть распределённый режим: один управляющий узел и несколько рабочих. Версии JMeter и Java на всех машинах должны совпадать, а сеть между ними нужно настроить.
Во время прогона документация советует не держать окна просмотра результатов в реальном времени, они съедают ресурсы. И следите, чтобы сама машина с JMeter не стала узким местом.
Что важно учесть: ограничения и закон
Главное. Нагрузочно тестировать можно только свой сайт или чужой с письменного согласия владельца и хостинг-провайдера. Те же запросы на чужой сайт без согласия выглядят как атака. В Уголовном кодексе есть статья 272 «Неправомерный доступ к компьютерной информации» и статья 273 «Создание, использование и распространение вредоносных компьютерных программ» (текст статьи 272 на consultant.ru). Подпадает ли под них конкретный тест, скажет юрист. Это вопрос к специалисту до начала работ.
Предупредите хостинг-провайдера: на общем хостинге всплеск запросов может сработать как сигнал о нападении, и аккаунт заблокируют, а у многих провайдеров на нагрузочные тесты есть свои правила. Не гоняйте тест по боевой системе в рабочие часы без плана: если сайт упадёт, упадёт вместе с живыми заказами. Лучше сделайте копию сайта на отдельном сервере и тестируйте её ночью или в согласованное окно. Чужие платёжные страницы и API не нагружайте вообще.
Теперь о технических ограничениях. Тест на копии даёт приблизительную картину, если железо отличается от боевого. JMeter не рисует страницу в браузере и не выполняет JavaScript, поэтому тяжёлый фронтенд он не покажет. Сценарий нужно писать аккуратно, иначе он проверит не то, что делают реальные покупатели. Из альтернатив известны k6 и Locust: сценарии в них пишутся кодом, и если команда привыкла к скриптам, они могут подойти удобнее.
Что можно сделать уже сейчас
Запишите, когда у вас ближайшее событие и сколько людей вы реально ждёте. Без этой цифры тест бессмыслен.
Посмотрите в метрике ваш самый загруженный час и главные пути покупателя: главная, каталог, карточка, корзина, оплата. Эти пять страниц и станут сценарием.
Прогоните ручную проверку бота и сайта перед запуском: формы, оплата, письма. Нагрузка бессмысленна, если корзина не работает и при одном человеке.
Настройте мониторинг сайта и домена, чтобы в день события узнавать о падении раньше клиента.
Мы проведём нагрузочное тестирование за вас
Мы проводим нагрузочное тестирование вашего сайта и готовим его к пику: пишем сценарии по вашим реальным путям покупателя, согласуем окно с вами и хостингом, прогоняем ступенчатую нагрузку и отдаём понятный отчёт. В нём указано, где узкое место, до скольких посетителей сайт держится и что чинить в первую очередь. Дальше можем исправить найденное. Подробнее на странице DevOps и инфраструктура.
Частые вопросы
JMeter платный?
Нет. Лицензия Apache-2.0, использовать можно бесплатно, в том числе в коммерческих проектах. Платить придётся за сервер, с которого идёт нагрузка, и за время специалиста.
Можно проверить сайт конкурента?
Нет. Только свой или с письменного согласия владельца и хостера. По вопросам ответственности обращайтесь к юристу.
Хватит ли одного компьютера?
Для небольшого магазина часто да. Если нужно имитировать очень много посетителей, используют распределённый режим на нескольких машинах. Заранее проверьте, что сама машина с JMeter не упирается в процессор или сеть.
Коротко о главном
Падение сайта в день рекламы стоит дороже недели подготовки. JMeter позволяет заранее узнать потолок: при какой нагрузке вырастет время ответа и начнутся ошибки. Тест проводят только на своём сайте или с письменного согласия, предупредив хостинг и не трогая боевую систему в рабочие часы.
Если у вас скоро реклама, распродажа или запуск бота, напишите мне в Telegram кодовое слово «НАГРУЗКА» и дату события. Обсудим, что проверить и как это сделать безопасно.
Ещё open-source для бизнеса
Эта статья — часть каталога бесплатных решений, которые я разворачиваю на вашем сервере под ключ: CRM, аналитика, документы, почта, безопасность, магазины, AI.
Что я делаю для бизнеса
- Боты в Telegram, MAX, VK
- Автоматизация процессов и CRM
- Аналитика и дашборды
- Сайты и лендинги под ключ
Бесплатно: чек-лист «Готов ли ваш бизнес к 152-ФЗ»
12 пунктов, которые проверяют готовность за час: данные, согласия, уведомление в РКН, локализация, защита. Отметьте, что уже сделано, и увидите дыры, за которые сейчас штрафуют.
Готовы обсудить вашу задачу?
Бесплатная консультация — разберём, как внедрить это в вашем бизнесе под ключ. Без форм, пишите напрямую.
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


