+7 (982) 010-01-18 Обсудить проект
Ноутбук с редактором кода и отчетом автотестов

Услуги по этапам

Нагрузочное тестирование сайтов и приложений

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

Сценарии реальных посетителей
JMeter и k6
Мониторинг сервера во время теста

Стоимость

Сколько стоит

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

Вилку называем после брифа

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

Входит в работу

  • Анализ трафика и выбор сценариев
  • Скрипты нагрузки на JMeter или k6
  • Мониторинг сервера и базы на время теста
  • Нагрузочный, стресс- и пиковый тесты
  • Отчет с графиками и узкими местами
  • Рекомендации по исправлению

Оплачивается отдельно

  • Аренда машин для генерации нагрузки
  • Исправление найденных проблем
  • Платные сервисы мониторинга
  • Тестирование на проникновение (пентест)
Калькулятор стоимости

Оценим ваш проект

Оставьте телефон и пару слов о задаче, перезвоним с вилкой по бюджету и срокам.

Проверьте номер: нужно 11 цифр

Без согласия мы не можем принять заявку

Как мы храним и используем данные, описано в политике конфиденциальности

Заявка отправлена

Свяжемся с вами в течение рабочего дня.

Процесс

Как идет работа

Прозрачный процесс: каждый этап заканчивается результатом, который можно посмотреть руками

  1. 01

    Анализ

    Изучаем трафик, требования к времени ответа и цель теста

  2. 02

    Сценарии

    Выбираем действия пользователей и их доли, готовим тестовые данные

  3. 03

    Стенд

    Копия сервера или ночное окно, платежи и письма в тестовом режиме

  4. 04

    Прогон

    Подаем нагрузку ступенями и следим за сервером, базой и ошибками

  5. 05

    Разбор

    Находим узкие места и причины, на которых система сдается

  6. 06

    Отчет

    Графики, предел нагрузки и план исправлений по приоритетам

  7. 07

    Повторный тест

    После исправлений прогоняем те же сценарии и сравниваем

Стек

Технологии

Стек выбираем под задачу, бюджет поддержки и команду, которая будет развивать продукт

  • JMeterСценарии нагрузки для сайтов и API
  • k6Скрипты нагрузки на JavaScript, удобно запускать при каждом релизе
  • Grafana и PrometheusГрафики сервера, базы и времени ответа во время теста
  • PostmanПодготовка и проверка запросов к API перед нагрузкой

Подробно

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

Когда нужно нагрузочное тестирование

Проверять нагрузку стоит до события, а не после жалоб клиентов. Обычные поводы:

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

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

Нагрузочное тестирование сайта

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

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

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

Нагрузочное тестирование API и сервера приложения

У мобильного приложения нагрузку держит не телефон, а сервер. Поэтому тестируем API: вход, ленту, поиск, оформление заказа, отправку push-уведомлений. Такой тест точнее браузерного и позволяет создать большую нагрузку меньшими ресурсами. Отдельно проверяем пиковый сценарий: рассылку push всем пользователям, после которой тысячи человек одновременно открывают приложение.

Какие тесты проводим

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

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

Что вы получаете после теста

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

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

Вместе к большему

Проверим, выдержит ли сайт наплыв

Расскажите о проекте и ожидаемом трафике, предложим сценарии теста и смету.

Вопросы

Частые вопросы

Не нашли ответ? Спросите нас
Что такое нагрузочное тестирование сайта?

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

Можно ли сделать нагрузочное тестирование онлайн?

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

Не уронит ли тест рабочий сайт?

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

Бесплатно

Прототип вашего приложения или сайта за 5 дней

5-7 ключевых экранов и смета по этапам. Останутся у вас, даже если дальше вы решите работать не с нами.

Оставить заявку

Расскажите о вашем проекте

Мы свяжемся с вами в течение рабочего дня и предложим варианты решения.

Или напрямую: +7 (982) 010-01-18

Укажите имя

Проверьте номер: нужно 11 цифр

Проверьте адрес почты

Без согласия мы не можем принять заявку

Как мы храним и используем данные, описано в политике конфиденциальности

Ответим в течение рабочего дня

Заявка отправлена

Свяжемся с вами в течение рабочего дня.