Что такое Spike stress testing (тестирование на пиковую нагрузку)?

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

Ответ

Spike testing — это подвид нагрузочного тестирования, при котором на систему внезапно обрушивается резкий, кратковременный скачок нагрузки (например, количество одновременных пользователей или запросов в секунду). Цель — проверить, как система ведет себя при таком пике: выдерживает ли нагрузку, как быстро восстанавливается и не приводит ли это к сбоям или утечкам ресурсов.

Зачем это нужно?

  • Имитировать реальные сценарии (всплеск трафика при старте распродажи, публикации новости).
  • Проверить отказоустойчивость и механизмы автоскейлинга.
  • Выявить узкие места, которые не проявляются при плавном росте нагрузки.

Пример сценария на Python:

import concurrent.futures
import requests

def make_request(url):
    response = requests.get(url)
    return response.status_code

# Имитируем резкий скачок: 200 одновременных запросов
url = "https://api.example.com/items"
with concurrent.futures.ThreadPoolExecutor(max_workers=200) as executor:
    futures = [executor.submit(make_request, url) for _ in range(200)]
    results = [f.result() for f in futures]

print(f"Успешных ответов: {results.count(200)}")

Ключевые метрики для анализа: время отклика во время пика, процент ошибок, потребление CPU/памяти, время восстановления до нормальных показателей.