Настройка базовых показателей для нагрузочных тестов

Завершено

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

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

  • Среднее число запросов в секунду.
  • Частота ошибок.
  • Максимальное время отклика.

Чтобы настроить базовые показатели для нагрузочных тестов, необходимо:

  1. Определите базовые показатели и критерии тестирования для отдельных потоков пользователей и общее решение.

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

  3. Используйте отдельный базовый план для тестирования хаоса, который допускает ожидаемые пики ошибок и временно снижает производительность.

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

Использование нагрузочного тестирования Azure для оценки пороговых значений

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

Задайте следующие вопросы и регулярно оцените следующее:

  • Сколько времени занимает отдельная операция, поток пользователя или вызов API?
  • Сколько запросов, операций и одновременных пользователей может обслуживать компонент в секунду?
  • Сколько ресурсов используется?
  • Как 10, 50 и 100 одновременных пользователей влияют на базовую инфраструктуру и внутренние службы?
  • Когда компоненты должны масштабироваться и выходить?

Ответы приводят к тестам и пороговым значениям. Запросы в секунду, время отклика и процент ошибок являются всеми применимыми примерами для пороговых значений.

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

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

  • Сценарии высокой нагрузки, в которых ожидается горизонтальное масштабирование и требуется. Может быть временное снижение производительности до завершения операции.
  • Эксперименты хаоса в рамках конвейера непрерывной проверки. Более высокая частота ошибок может ожидаться до тех пор, пока меры устойчивости не начнут самовосстановлять приложение или выполнять отработку отказа в другой регион.

Используйте нагрузочное тестирование Azure для оценки того, как ваша система выполняется по определенным пороговым значениям. Служба имеет встроенную возможность тестового критерия . То есть можно указать критерии, которые необходимо передать нагрузочному тесту.

Критерии тестирования можно использовать для реализации различных базовых показателей, как показано на следующем снимке экрана.

портал Azure снимок экрана таблицы, в котором показаны примеры критериев тестирования.

Эти критерии тестирования можно указать в ФОРМАТЕ JSON и использовать API для их добавления в нагрузочный тест. Приведем пример:

[
  {
    "passFailMetrics": {
      "<guid-1>": {
        "clientmetric": "requests_per_sec",
        "aggregate": "avg",
        "condition": "<",
        "value": 1200.0,
        "actualValue": 0.0,
        "result": null,
        "action": "continue"
      },
      "<guid-2>": {
        "clientmetric": "response_time_ms",
        "aggregate": "avg",
        "condition": ">",
        "value": 75.0,
        "actualValue": 0.0,
        "action": "continue"
      },
      "<guid-3>": {
        "clientmetric": "error",
        "aggregate": "percentage",
        "condition": ">",
        "value": 0.0,
        "actualValue": 0.0,
        "action": "continue"
      }
    }
  }
]

Еще одним важным аспектом непрерывной проверки является внедрение тестов, имитирующих реальные проблемы. В следующем уроке вы узнаете о добавлении экспериментов хаоса в процесс проверки.

Проверка знаний

1.

Сколько базовых показателей требуется?

2.

Определяет ли базовая производительность, которую может обеспечить развертывание?

3.

Когда необходимо оценить и обновить базовые показатели?