Что такое тестирование производительности?

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

Ответ

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

Основные виды тестирования производительности: Вид тестирования Цель
Нагрузочное (Load Testing) Проверить поведение системы под ожидаемой пиковой нагрузкой.
Стрессовое (Stress Testing) Найти точку отказа системы, постепенно увеличивая нагрузку за пределы нормы.
Тестирование стабильности/на выносливость (Soak/Endurance Testing) Выявить утечки памяти или проблемы деградации при длительной (многочасовой) работе под нагрузкой.
Спайковое (Spike Testing) Проверить реакцию на резкие, кратковременные скачки нагрузки.
Тестирование масштабируемости (Scalability Testing) Определить, как система справляется с ростом нагрузки путем добавления ресурсов (вертикальное/горизонтальное масштабирование).

Что является объектом проверки (метрики):

  • Время отклика (Response Time) ключевых операций.
  • Пропускная способность (Throughput), например, запросов в секунду.
  • Утилизация ресурсов: загрузка ЦП, память, диск, сеть.
  • Количество ошибок под нагрузкой.

Пример конфигурации сценария в JMeter:

Thread Group:
  Number of Threads (users): 100
  Ramp-Up Period: 30 seconds  // 100 пользователей за 30 сек.
  Loop Count: Forever

HTTP Request:
  Server Name: api.example.com
  Path: /v1/orders
  Method: GET

Цель: выявить узкие места (баттлнеки) в архитектуре (БД, кэш, внешние API) и убедиться, что система соответствует требованиям к производительности.