Что такое performance тестирование?

«Что такое performance тестирование?» — вопрос из категории Тестирование производительности, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Основные виды performance-тестирования:

Вид тестирования Цель Пример сценария
Нагрузочное (Load Testing) Проверить поведение под ожидаемой пиковой нагрузкой. 1000 пользователей одновременно заходят на главную страницу.
Стрессовое (Stress Testing) Найти точку отказа системы, выявить узкие места. Постепенно увеличивать нагрузку до 5000 пользователей.
Тестирование стабильности/надежности (Soak/Endurance) Обнаружить утечки памяти или проблемы деградации. Нагрузка в 500 пользователей поддерживается 24 часа.
Тестирование масштабируемости (Scalability Testing) Определить, как система масштабируется с ростом нагрузки. Увеличение числа серверов для обработки растущего RPS.
Спайковое (Spike Testing) Проверить реакцию на резкие, кратковременные скачки нагрузки. Рекламная акция вызывает всплеск трафика за 2 минуты.

Ключевые метрики:

  • Время отклика (Response Time): Среднее, 90-й процентиль (p90), Максимальное.
  • Пропускная способность (Throughput): Запросов в секунду (RPS/QPS), транзакций в секунду (TPS).
  • Использование ресурсов: Загрузка CPU, потребление RAM, дисковый I/O, сетевой трафик.
  • Количество ошибок: Процент неудачных запросов под нагрузкой.

Типичный стек инструментов:

  • JMeter (де-факто стандарт, Java, с GUI).
  • k6 (современный, на JavaScript/Go, сценарии пишутся в коде).
  • Gatling (высокопроизводительный, на Scala, хорошая отчетность).
  • Locust (Python-скрипты, распределенная нагрузка).

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