Нагрузочное тестирование — важный процесс в жизненном цикле разработки! Он помогает определить способность разрабатываемой системы обрабатывать ожидаемые или сверх ожидаемые будущие нагрузки.
Целями такого тестирования является оценка качества работы и понимание возможностей масштабирования системы на разных уровнях нагрузки.
Как мы используем нагрузочное тестирование в [SE]?
Шаг 1. Определение максимальной производительности системы.
Шаг 2. Выявление узких мест и ограничение производительности системы.
Шаг 3. Изучение поведения системы при различных уровнях нагрузки.
Шаг 4. Определение стабильности системы под непрерывной нагрузкой.
Инструменты для проведения тестирования:
Существует довольно много инструментов для проведения нагрузочного тестирования. В своей работе мы используем: Yandex Tank и Gatling.
Yandex Tank - Позволяет симулировать высокий уровень нагрузки на веб-сервисы, поддерживает различные типы нагрузочных сценариев
Gatling - это открытый проект для нагрузочного тестирования, который позволяет симулировать обширные и сложные сценарии нагрузки.
Яндекс танк и гатлинг это по сути две похожие системы: оба инструмента умеют визуализировать результат и написать сложные сценарии. Но Яндекс может генерировать более высокую нагрузку.
Процесс проведения нагрузочного тестирования:
1. Планирование и проектирование. На этом этапе мы определяем цели и области тестирования, а так же критерии производительности и требования к нагрузке. Исходя из этого определяем инструмент, которым будем пользоваться;
2. Создание окружения нагрузочного тестирования. Здесь мы составляем план тестирования и разрабатываем сценарии тестов;
3. Запуск тестов. Нагрузочные тесты выполняются в соответствии с планом. В этот момент мы контролируем активность системы и отслеживаем её поведение;
4. Анализ, оценка и отчетность. После завершения тестирования результаты собираются и анализируются. Генерируются отчеты, которые включают в себя выводы.
5. Оптимизация и корректировка. На основании полученной информации определяются фрагменты системы, работающие неэффективно или неустойчиво. Вносятся исправления и всё опять идёт в цикл до получения удовлетворительных результатов.
Виды отчетов:
Как понять что нагрузочное тестирование нужно провести?
— Ожидается большой приток пользователей;
— Есть вопросы, связанные с производительностью системы;
— Важно узнать как держит нагрузку фронт, бэк.