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

О мониторинге

В связи со всеобщей цифровизацией популярность метода контейнеризации приложений стремительно растёт. Технология способствует быстрому выводу сервисов компаний в продуктивную среду, где выигрывать помогает короткий time-to-market.

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

Однако не всегда есть реальная необходимость в данном во внедрении данной технологии и в некоторых случаях имеет смысл сэкономить и внедрить альтернативные технологии.
Подробнее здесь

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

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

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

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

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

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

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

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

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

  • Анализ системы (или внесенных в нее изменений)
  • Подготовка или актуализация модели нагрузки и методики тестирования
  • Подготовка или обновление стенда для тестирования
  • Разработка или актуализация скриптов нагрузочного тестирования, «заглушек», скриптов генерации тестовых данных
  • Настройка мониторинга на стенде нагрузочного тестирования
  • Сборка и отладка всего, что разработали, на стенде нагрузочного тестирования
  • Проведение контролируемых нагрузочных тестов на продуктивной среде
  • Анализ результатов тестов
  • Подготовка отчетности

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

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

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

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

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

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

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

Мы предлагаем услугу аутсорсинга процесса нагрузочного тестирования, которая в большинстве случаев будет для вас более предпочтительной с точки зрения экономии ресурсов. Наша команда обладает всеми необходимыми навыками и опытом для успешного проведения нагрузочного тестирования, среди которых:
  • Умение составлять техническую документацию
  • Умение писать необходимые скрипты на различных языках, позволяющих решить необходимую задачу наиболее оптимальным способом;
  • Навыки администрирования серверов приложения и баз данных, включая настройку стенда нагрузочного тестирования, сбор логов и статистики
  • Навыки установки и поддержки средств мониторинга (без сбора информации о состоянии системы под нагрузкой ценность тестирования сводится к минимуму);
  • Понимание архитектуры различных интеграционных решений и сетевых технологий для построения модели нагрузки с учетом всех ее источников по различным протоколам обмена;
  • Знание основ математической статистики, необходимых для обработки статистики, расчета профиля нагрузки и обработки результатов тестов.
Стек технологий
Ansible • Terraform • MS Center • Puppet
Anycast • CDN • GeoIP • Multicast
postgers • MySQL • MSSQL • Redis • Mongo • Tarantool • ClickHouse
postgersql / pgbouncer / pgpool / patroni • Nginx • Rabbitmq • Redis / Sentinel • mysql / percona / maxscale / sqlproxy
Nginx • Apache • Openrestry • Traefik
Nginx • HAProxy • Traefik • Envoy
Frontend / Backend балансировка
Управление инфраструктурой
Кластеризация и отказоустойчивость
Ansible
Terraform
MS Center
Puppet
postgersql / pgbouncer / pgpool / patroni
nginx
rabbitmq
redis / sentinel
mysql / percona / maxscale / sqlproxy
postgres
mySQL
MSSQL
redis
mongo
tarantool
ClickHouse
anycast
CDN
geoIP
multicast
Nginx
openresty
Traefik
Apache
Nginx
HAProxy
Traefik
Envoy
СУБД
Сетевые технологии
Web серверы
Libvirt • VMware • KVM
LOM • BMC • ILo • IPvkm • Idrac
cPU • Mem • disk • net • HAProxy • Traefik • Load Balancing • Flamegraph
Prometheus • Zabbix • telegraf • Alertmanager • grafana • graphite
IpTables • UFW • WAF • Firewall • Pentests • Selinux • ACL / Exec Bits • Spam • Anti DDOS
Безопасность
Виртуализация
Мониторинг
libvirt
vMware
KVM
Prometheus
Zabbix
telegraf
Alertmanager
grafana
graphite
cPU
MEM
Disk
net
HAProxy
Traefik
Load Balancing
Flamegraph
LOM
BMC
ilo
ipvkm
idrac
iptables
UFW
WAF
firewall
pentests
selinux
ACL / exec bits
spam
Anti DDOS
Высокие нагрузки
Обслуживание датацентров
Наши клиенты
и реализованные проекты
Git in Sky реализовал 250+ проектов в разных отраслях. Основные группы наших клиентов и кейсы:
Давайте обсудим
ваш проект
Оставьте заявку — наш специалист свяжется с вами для детального обсуждения задачи
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных согласно политике конфиденциальности
Или написать напрямую
в телеграмм аккаунт менеджеру Роману Анисимову
Также можете позвонить по номеру
8 800 222 19 68