Содержание

Как протестировать производительность сайта в JMeter: пошаговые примеры и настройки

Apache JMeter — приложение на Java, созданное для нагрузочного тестирования и измерения производительности. Изначально создавалось для тестирования web-приложений, однако, позже были добавлены другие функции тестирования.

Для полноценного использования JMeter рекомендуется всегда скачивать актуальную версию с официального сайта. Графический интерфейс предназначен для создания, отладки тестов и небольших нагрузочных тестов. Для серьёзного тестирования используйте консольный режим.

Установка Apache JMeter на Windows

После запуска JMeter можно начинать создавать проекты тестирования нагрузки и производительности веб-приложений.

Установка Apache JMeter на Ubuntu

apt update
apt install openjdk-11-jre openjdk-11-jdk
apt install jmeter

Запускать файл Linux /usr/share/jmeter/bin/ApacheJMeter.jar. Для консольного запуска используйте команду:

./jmeter -n -t testPlan.jmx -l log.jtl

Инструкция по запуску нагрузочного тестирование сайта с помощью JMeter

1. Создание Test Plan

2. Добавление Thread Group (группа потоков)

2.1 Как посчитать количество запросов

Общее число выполненных сценариев рассчитывается по формуле:

Number of Threads × Loop Count

Пример: 200 пользователей × 5 повторов = 1000 итераций сценария.

Если внутри сценария (Thread Group) есть несколько HTTP-запросов, например 3, то итог будет: 200 × 5 × 3 = 3000 HTTP-запросов.

3. Добавление HTTP Request

Вместо HTTP Request, при необходимости, можно выбрать другие виды Sampler-ов, например, FTP Request, JDBC Request, SOAP/XML-RPC Request, TCP Sampler или даже создать собственный с помощью JSR223 Sampler (позволяет выполнять скрипты прямо внутри JMeter), чтобы тестировать разные сервисы, протоколы и сценарии.

Достаточно Path

В JMeter достаточно указать в поле Path полный URL, например https://textodrom.net/services/reklama-restorana-teksty-i-slogany, если требуется выполнить запрос именно по этому адресу. В этом случае поля Protocol, Server Name или Port заполнять не нужно — JMeter автоматически определит их из полного URL. Это упрощает настройку отдельных HTTP-запросов к конкретной странице или сервису.

4. Добавление Listener (отчётов)

Этот элемент позволяет сразу видеть подробные результаты каждого запроса — был ли ответ успешным, какой код возвращён, а также просмотреть текст ответа сервера и детали самого запроса. Этого хватает для проверки, что сценарий работает правильно, и для отладки.

Если потребуется более глубокий анализ ― например, сравнивать среднее время отклика, процент ошибок или скорость обработки запросов на больших нагрузках ― можно подключить дополнительные Listener типа Summary Report или Aggregate Report, которые выведут общую статистику и помогут отследить производительность при массовом тестировании. Но для первых шагов и ручной проверки чаще всего вполне достаточно одного “дерева результатов”.

5. Сохранение и запуск теста

Полезные рекомендации

jmeter -n -t testplan.jmx -l results.jtl

Данный алгоритм позволяет провести нагрузочное тестирование сайта, имитируя одновременные обращения пользователей и анализируя устойчивость и производительность веб-системы.

Какие параметры нагрузки задать для теста сайта WordPress, WooCommerce

Информационные сайты (блоги, новостники, каталоги) обычно имеют небольшую долю одновременных посетителей и относительно лёгкие запросы к базе данных. Для стандартного информационного сайта на WordPress рекомендую задать такие значения для первого теста:

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

Для магазина на WooCommerce эти значения лучше увеличить, чтобы проверить работу сайта под нагрузкой от большого числа покупателей. WooCommerce-сайты создают более тяжёлую нагрузку: каждый запрос может задевать базу данных, корзину, кэш и плагины. Рекомендуемые значения:

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

Настройка этих параметров помогает смоделировать реальные сценарии посещения — выявить, когда сайт начинает “тормозить”, где возникают ошибки при большом наплыве пользователей. На основе полученных данных видно, выдержит ли ваш хостинг высокую нагрузку, стоит ли выбрать более мощный тариф VPS/VDS, если сайт или магазин часто посещают одновременно. Эти тесты дают реальное понимание, как сайт ведёт себя под нагрузкой и помогают принять обоснованное решение при выборе хостинга.

Как выбрать правильные параметры теста под ваши цели

Не существует универсальных значений для Number of Threads, Ramp-Up Period и Loop Count — всё зависит от того, что именно вы хотите проверить. Одно дело — убедиться, что сайт работает стабильно при обычной посещаемости, другое — понять, выдержит ли он всплеск трафика во время рекламной кампании или распродажи.

🎯 1. Тест стабильности (реалистичная нагрузка)

Этот тест нужен, чтобы оценить, как сайт ведёт себя при обычном уровне трафика — например, когда одновременно на сайте 10–20 человек.

Рекомендуемые параметры:

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


🚀 2. Тест производительности (нагрузка выше нормы)

Когда сайт уже посещают сотни пользователей в день, стоит проверить, как он реагирует при росте одновременных подключений — например, во время публикации статьи или продвижения в поиске.

Рекомендуемые параметры:

Такой тест позволяет выявить «узкие места» — например, медленные плагины, неэффективный кэш или слабый CPU на хостинге.


🛒 3. Стресс-тест для интернет-магазина (пиковая нагрузка)

Для WooCommerce-магазинов и крупных проектов полезно знать, где предел. Такой тест имитирует пиковые продажи или акции, когда на сайт одновременно заходит много покупателей.

Рекомендуемые параметры:

Этот тест помогает оценить, выдержит ли сайт внезапный наплыв трафика и как быстро сервер начнёт терять производительность.

💻 Типовые настройки для разных сайтов

При нагрузочном тестировании важно не столько число «виртуальных» пользователей, сколько то, какую реальную ситуацию вы моделируете. JMeter имитирует одновременных посетителей, выполняющих заданные действия, а не общее количество посетителей за сутки.

Тип сайта Number of Threads (users) Ramp-Up Period (seconds) Loop Count Примерная нагрузка (эквивалент)
Информационный сайт на WordPress 20–50 20–30 3–5 ~1 000–3 000 посетителей в сутки
Интернет-магазин на WooCommerce 50–100 30–60 5–10 ~5 000–10 000 посетителей в сутки
Средний корпоративный портал 100–150 60 5–10 ~10 000–20 000 посетителей в сутки

Эти значения условные! Они помогают понять, какую одновременную нагрузку выдерживает сайт, а не точное число реальных пользователей в сутки.

Результаты зависят от длительности теста, задержек между действиями (think time) и количества HTTP-запросов внутри сценария.

📊 Как использовать результаты

После теста JMeter покажет среднее время отклика, процент ошибок и производительность (Throughput). Эти данные помогут:

💡 Совет

Если ваш сайт выдерживает тест с 100 одновременными пользователями без ошибок и с временем отклика < 2 секунд — такой хостинг уже можно считать надёжным решением для реальной аудитории 10–20 тысяч посетителей в сутки.

💡 Заключение

Лучше не ограничиваться одним тестом:

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

Такой подход помогает оценить запас прочности и выбрать хостинг осознанно: