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

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

Что мы тестируем

Веб-приложения
SPA-приложения
RIA-приложения
Frontend (клиентская часть)
Backend (серверная часть)
Сайты
высоконагруженные
корпоративные
коммерческие
информационные
ИТ-системы
другие ИТ-системы, которые могут использоваться под высокой нагрузкой
CRM-системы c web-интерфейсом
ERP-системы c web-интерфейсом
Мы можем проверить любое веб-приложение, сайт или КИС на соответствие нефункциональным требованиям: производительность, стабильность, масштабируемость, стрессовая нагрузка и отказоустойчивость.
Для этого мы определим источники нагрузки, составим модель тестирования, настроим мониторинг работы серверов. Также проверим различия по метрикам в разных режимах работы системы, разработаем скрипты, моделирующие нагрузку, и эмуляторы смежных систем.

Цель нагрузочного тестирования

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

Расскажите нам о вашей задаче

Мы проведем анализ, пообщаемся о ваших целях
и предложим наиболее эффективное решение.

Виды тестирования

Тестирование производительности
(Performance testing)
Определим максимальную производительность системы на имеющемся у заказчика оборудовании. Используем метод максимального и оптимального количества пользователей.
Тестирование стабильности
(Stability / Reliability Testing)
Проверим отсутствие утечек памяти на сервере и его стабильную работу в течение длительного времени. Это особенно важно для систем, работающих 24/7.
Стрессовое тестирование
(Stress Testing)
Проверим стрессоустойчивость системы. Может ли она сама восстановить свою работоспособность даже после всплесков нагрузки, например, при наплыве клиентов в «черную пятницу»?
Объемное тестирование
(Volume Testing)
Проверим масштабируемость системы. Определим, как повлияет добавление еще одного сервера или оперативной памяти на увеличение числа пользователей системы.

В каких случая необходимо проводить
нагрузочное тестирование ИТ-систем

1
Сомневаетесь, что обновление ПО
не приведет к деградации производительности
Вам нужно быть уверенными в том, что нововведения не снизят скорость работы вашей инфраструктуры или приложения.
2
Планируете изменить архитектуру или внести существенные изменения в функциональность высоконагруженной системы
Возможно, при этом нагрузки увеличатся и надо быть готовыми к масштабированию инфраструктуры.
3
Не знаете, какое оборудование необходимо
для размещения новой ИТ-системы
Для того, чтобы приобретать аппаратуру, надо понимать, с какими нагрузками она будет работать — от этого зависит выбор.
4
Собираетесь централизовать
несколько систем.
Для того, чтобы объединить несколько разрозненных систем в одно информационное поле с централизованным управлением, надо также убедиться в предельных возможностях имеющейся инфраструктуры. Это и позволяет оценить нагрузочное тестирование.
5
Планируете открыть новые филиалы
и подключить их к единой системе?
Достаточно ли для этого имеющихся мощностей? Недостаточная производительность инфраструктуры может привести к большим убыткам.
6
Планируете запуск новых сервисов, которые приведут к увеличению текущей нагрузки
Нужно убедиться в том, что нагрузка от новых сервисов не скажется на быстродействии и надежности работы системы или в том, что точно скажется и требуется масштабирование инфраструктуры.
7
Собираетесь принять в эксплуатацию новую ИТ-систему, с которой будет работать большое количество пользователей
Важно понимать, справится ли существующая инфраструктура с новой системой или потребует масштабирования.
8
Ожидаете сезон высоких продаж или готовите запуск масштабной рекламной кампании, что вызовет резкое увеличение нагрузки на систему
Нагрузочное тестирование покажет, сколько пользователей могут взаимодействовать с системой единовременно и сколько ресурсов необходимо добавить для планируемых всплесков нагрузки.
9
Хотите понять возможности существующей системы, узнать предельно допустимую нагрузку
Позволяет быть в курсе реальных показателей системы, благодаря чему безошибочно планировать ресурсоемкие мероприятия и принимать соответствующие бизнес-решения.

Этапы проведения нагрузочного
тестирования для клиента

1
01
Анализ системы (или внесенных в нее изменений)
2
02
Подготовка или актуализация модели нагрузки и методики тестирования
3
03
Подготовка или обновление стенда для тестирования
4
04
Разработка или актуализация скриптов нагрузочного тестирования, «заглушек», скриптов генерации тестовых данных
5
05
Настройка мониторинга на стенде нагрузочного тестирования
6
06
Сборка и отладка всего, что разработали, на стенде нагрузочного тестирования
7
07
Проведение контролируемых нагрузочных тестов на продуктивной среде
8
08
Анализ результатов тестов
9
09
Подготовка отчетности

Хотите получить образец отчета?

Оставьте заявку и мы отправим вам пример
отчета в ближайшие 24 часа

Инструменты и сценарии
для нагрузочного тестирования

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

Сценарии для нагрузочного тестирования могут включать все возможные для данной системы роли и ключевые операции. Оптимальным подходом мы считаем использование в сценариях 20% тех операций, которые создают 80% нагрузки на проверяемую систему. Примеры сценариев нагрузочного тестирования: прохождение пользовательского пути от регистрации до выполнения целевого действия; подача анонимного трафика на страницы информационной системы; проверка системы на выдерживание определенного количества запросов; имитация аварийной ситуации.

Для выполнения этих и других сценариев нагрузочного тестирования в зависимости от задач наши инженеры используют следующие инструменты:

Почему лучше доверить тестирование нам?

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

Таким образом, для выполнения задачи нагрузочного тестирования нужен либо очень дорогой универсальный специалист (full-stack тестировщик), либо несколько узких экспертов, что может сильно повлиять на стоимость процесса.

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

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

Оставить заявку для нагрузочного тестирования

Наш специалист свяжется с вами
для детального обсуждения задачи

Не пропустите последние новости. Подписывайтесь!