Тестирование производительности оценивает, как система работает под нагрузкой — измеряя скорость, масштабируемость и стабильность при различных условиях. Типы включают нагрузочное тестирование, стресс-тестирование, spike-тестирование и soak-тестирование. Это важно для обеспечения приемлемой работы систем при реальном (и пиковом) использовании.
Что измеряет тестирование производительности
Non-functional testing of HOW WELL the system performs (not just correctness):
→ RESPONSE TIME / latency (how fast?), THROUGHPUT (requests/sec handled)
→ SCALABILITY (behavior as load grows), RESOURCE usage (CPU, memory)
→ STABILITY under sustained or extreme load
→ ensures the system meets performance requirements and handles real usage.
Типы тестов производительности
LOAD testing → expected/normal load → does it meet targets under typical usage?
STRESS testing → BEYOND normal limits → find the breaking point; how it fails/recovers
SPIKE testing → sudden sharp load increase → handles bursts? (e.g. a flash sale)
SOAK / endurance → sustained load over a LONG time → finds memory leaks, degradation
SCALABILITY → how performance changes as load/resources scale
Как и почему
✓ Tools: k6, JMeter, Gatling, Locust → simulate many virtual users / high request rates
✓ Define performance REQUIREMENTS/SLAs (e.g. p95 latency < 200ms at X users) → test against them
✓ Test realistic scenarios; measure under controlled conditions; find BOTTLENECKS
✓ WHY: poor performance → bad UX, lost users/revenue, outages under load; find issues
BEFORE production (e.g. before a big launch/traffic event)
Почему это важно
Понимание тестирования производительности — ценное знание для старших специалистов, поскольку производительность является критическим атрибутом качества — системы должны приемлемо обрабатывать реальное и пиковое использование — поэтому её тестирование важно для надёжности и опыта пользователя, что делает это полезным знанием.
Тестирование производительности оценивает насколько хорошо система работает (время отклика, пропускная способность, масштабируемость, использование ресурсов, стабильность) под нагрузкой — нефункциональное качество, отличное от корректности, но критичное, поскольку плохая производительность приводит к плохому UX, потере пользователей и доходов, а также к сбоям под нагрузкой.
Понимание типов и их назначения является ключевым: нагрузочное тестирование (проверка производительности при ожидаемой нагрузке), стресс-тестирование (нажим сверх пределов для выявления точки отказа и восстановления системы), spike-тестирование (обработка внезапных всплесков, например флеш-распродажа), soak/endurance-тестирование (устойчивая нагрузка в течение времени, выявление утечек памяти и деградации), и тестирование масштабируемости — каждое отвечает на разные вопросы о поведении системы при различных условиях.
Понимание как и почему — использование инструментов (k6, JMeter, Gatling, Locust) для имитации нагрузки, определение требований к производительности/SLA для тестирования (например, целевые показатели p95 latency при заданном количестве пользователей), тестирование реалистичных сценариев для поиска узких мест, и критически важно делать это перед production (особенно перед крупными запусками или событиями с высоким трафиком) для выявления проблем производительности до того, как они вызовут реальные сбои — отражает практическую ценность.
Тестирование производительности предотвращает дорогостоящий сценарий отказа системы под реальной нагрузкой (запуск падает, сайт замедляется до неиспользуемости во время пиковой нагрузки).
Поскольку производительность является критическим атрибутом качества (плохая производительность вызывает реальный бизнес и вред UX) и тестирование производительности (нагрузочное, стресс, spike, soak) проверяет, что системы обрабатывают реальное и пиковое использование перед production, и поскольку понимание типов, инструментов и ценности важно для обеспечения работоспособности систем под нагрузкой, понимание тестирования производительности является ценным знанием для старших специалистов — важно для проверки критического нефункционального качества, обеспечения обработки систем реального использования и выявления проблем производительности до того, как они вызовут production-сбои, отражая широту проблем качества, которые решают старшие инженеры.
