Сценарий

Нагрузочное тестирование реальными браузерами на вашем сайте

Генератор запросов отправляет запросы; реальный браузер еще загружает скрипты, изображения, шрифты и сторонние теги и вызывает ваши API так, как это делает фронтенд. Генератор трафика дает такую нагрузку на ваш сайт в объеме и в часы, которые вы выбираете, чтобы вы видели сервер, CDN и базу данных до прихода настоящих посетителей.

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

Что показывает браузерная нагрузка

Нагрузка от всей страницы

Генератор запросов измеряет, как быстро сервер отвечает на URL. Браузерная сессия еще скачивает все ресурсы, выполняет JavaScript страницы, вызывает API, к которым обращается фронтенд, и запускает каждый сторонний тег, поэтому проверяет правила кеширования, CDN и скрипты, а не только сервер.

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

Что она не заменяет

Генератор трафика задает, сколько сессий придет за день и в какие часы, а не точный рост запросов в секунду. Для стресс-теста до отказа или точной кривой одновременных соединений используйте рядом протокольный инструмент, например k6, JMeter или Locust.

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

Только на своем сайте

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

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

Пример: репетиция запуска

Магазин переезжает на новый хостинг перед сезонной распродажей и хочет увидеть, как новая конфигурация выдержит загруженный вечер. Репетиция прогоняет сжатую версию такого вечера на новом хостинге при открытом мониторинге магазина.

Настройки кампании
Целевой URLГлавная страница на новом хостинге, с переходами по категориям и карточкам товаров
Объем и расписание2 000 сессий за 2 часа, около 17 новых сессий в минуту
Длительность сессииОт 180 до 300 секунд
Глубина просмотра4 страницы за сессию, всего около 8 000 загрузок страниц
УстройстваДоля мобильных и десктопов, которую аналитика показывает для магазина
СтранаСтрана, на которую рассчитана распродажа
Источник трафикаПрямой, чтобы прогон было легко отделить от кампаний в аналитике

Что смотреть во время прогона

  • Время ответа по путям в логе доступа, например поле времени запроса в nginx, по медиане и для самых медленных 5 процентов
  • Долю ответов 5xx и таймаутов по путям
  • Долю попаданий в кеш CDN: страница, которая должна кешироваться, но каждый раз доходит до сервера, видна здесь первой
  • Процессор, память и открытые соединения на сервере и в базе данных, а также лог медленных запросов
  • Ошибки сторонних скриптов и API-вызовов, которые делает фронтенд

Стоимость репетиции: 2 000 сессий длительностью от 180 до 300 секунд оплачиваются по $0.0024 за каждую, это среднее между самой короткой и самой длинной сессией, итого $4.80 за прогон.

Как провести нагрузочную репетицию

  1. 01

    Зафиксируйте базовую линию

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

  2. 02

    Начните с части нагрузки

    Первую партию запустите на долю от целевого объема, посмотрите графики и повысьте объем для следующего прогона. Между прогонами меняйте что-то одно: объем, часы или охваченные страницы.

  3. 03

    Наблюдайте и останавливайте при необходимости

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

  4. 04

    Сравните с базовой линией

    Сопоставьте каждую метрику прогона с базовой линией. Результат репетиции в том, что деградирует первым и при каком объеме.

Что показывает браузерное нагрузочное тестирование, а что нет

Что делает

  • Дает полные загрузки страниц на ваш собственный сайт: ресурсы, скрипты, API-вызовы и сторонние теги, из реальных браузеров
  • Позволяет задать дневной объем, часы, набор устройств и пути и повторить тот же прогон после исправления
  • Показывает в вашем собственном мониторинге, как ведут себя сервер, CDN и база данных при ожидаемом трафике

Чего не делает

  • Не дает точного роста запросов в секунду и стресс-теста до отказа: для этого нужен протокольный инструмент
  • Не тестирует сайты, которыми вы не владеете или на тестирование которых у вас нет разрешения: условия запрещают перегружать чужие сайты
  • Не проверяет вход и оформление заказа: сессии не авторизуются, не заполняют формы и не платят

Правила использования, обработка данных и ограничения, общие для всех инструментов, описаны в Центре доверия

Инструмент в этом примере

Сессии дает Генератор трафика с оплатой за сессию по ставке, которая зависит от заданной длительности сессии. Полная таблица ставок на странице цен.

Генератор трафика

FAQ

Вопросы о нагрузочном тестировании

Отрепетируйте до запуска

Зафиксируйте базовую линию, запустите небольшую партию на свой сайт и повышайте объем между прогонами