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

> Нагрузочное тестирование своего сайта реальными браузерами, которые выполняют скрипты: пример настройки, что смотреть на сервере и когда нужен k6 или JMeter.

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

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

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

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

01

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

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

02

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

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

03

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

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

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

Настройки кампании

### Целевой URL

Главная страница на новом хостинге, с переходами по категориям и карточкам товаров

### Объем и расписание

2 000 сессий за 2 часа, около 17 новых сессий в минуту

### Длительность сессии

От 180 до 300 секунд

### Глубина просмотра

4 страницы за сессию, всего около 8 000 загрузок страниц

### Устройства

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

### Страна

Страна, на которую рассчитана распродажа

### Источник трафика

Прямой, чтобы прогон было легко отделить от кампаний в аналитике

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

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

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

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

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

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

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

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

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

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

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

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

## Что покрывает браузерная нагрузка и где нужен протокольный инструмент

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

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

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

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

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

### Можно ли нагрузить тестовую копию сайта?

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

### Сколько сессий можно отправить?

Дневного лимита нет: вы задаете объем на день и часы, в которые он идет.

### Будет ли прогон виден в аналитике?

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

### Почему не обойтись только k6 или JMeter?

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

---

- HTML version of this page: https://yootraffic.com/ru/use-cases/load-testing
- Site index for agents: https://yootraffic.com/llms.txt
- Sitemap: https://yootraffic.com/sitemap.xml
