Найти тему
SimbirSoft

Запуск нагрузочного тестирования: 6 советов

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

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

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

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

Примеры целей:

– Выявить максимальную производительность системы на существующей конфигурации.

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

– Выявить потенциально «узкие» места.

3. Во время составления ТЗ сформулируйте нефункциональные требования к вашему продукту.

Пример требований: Система должна обрабатывать не менее N операций в секунду, при этом время ответа не превышает X секунд.

Пользователи по-разному нагружают сервис и работают с разной интенсивностью. Поэтому измерение данных в «пользователях» всегда сводится к усреднению модели поведения и является своего рода допущением. В то время как частота выполнения операций/запросов в секунду – однозначный показатель производительности.

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

5. Нагрузочное тестирование важно проводить на стенде, который по своим характеристикам максимально приближен к продуктовому. Полученные таким образом результаты будут достоверными и однозначными. В противном случае показатели можно оценить только качественно, например: «В реальных условиях производительность будет лучше». Однако нельзя сделать вывод, что она удвоится, если продуктовый стенд в 2 раза производительнее тестового.

6. Улучшить поиск «узких» мест, которые ограничивают производительность, можно с помощью таких инструментов, как мониторинг стендов и настройка логирования всех служб и сервисов вашей системы. Они значительно упростят работу и ускорят процесс анализа полученных в ходе тестирования данных.

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