Определение критериев сбоя для нагрузочных тестов с помощью Azure Load Testing

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

Необходимые компоненты

Критерии сбоя нагрузочного теста

Критерии сбоя нагрузочного теста — это условия для метрик на стороне клиента, которые должны соответствовать тесту. Критерии тестирования определяются на уровне нагрузочного теста в Azure Load Testing. Нагрузочный тест может иметь один или несколько критериев тестирования. Если по крайней мере один из критериев теста оценивается как true, нагрузочный тест получает состояние сбоя .

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

  • На уровне нагрузочного теста. Например, чтобы убедиться, что общий процент ошибок не превышает пороговое значение.
  • На уровне запроса JMeter (пример JMeter). Например, можно указать пороговое значение времени отклика запроса getProducts , но игнорировать время отклика запроса на вход .

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

Структура условий сбоя

Формат условий сбоя в Azure Load Testing следует условному оператору для поддерживаемой метрики. Например, убедитесь, что среднее число запросов в секунду превышает 500.

Критерии сбоя имеют следующую структуру:

  • Критерии тестирования на уровне нагрузочного теста: Aggregate_function (client_metric) condition threshold
  • Критерии тестирования, применяемые к определенным запросам JMeter: Request: Aggregate_function (client_metric) condition threshold

В следующей таблице описаны различные компоненты:

Параметр Описание
Client metric Обязательное. Клиентская метрика, к которой следует применить условие.
Aggregate function Обязательно. Агрегатная функция, применяемая к метрикам клиента.
Condition Обязательно. Оператор сравнения, например greater than, или less than.
Threshold Обязательно. Числовое значение для сравнения с метрикой клиента.
Request Необязательно. Имя примера в скрипте JMeter, к которому применяется критерий. Если имя запроса не указано, критерий применяется к агрегату всех запросов в скрипте.
Не включайте персональные данные в имя примера в скрипт JMeter. Имена примеров отображаются на панели мониторинга результатов нагрузочного тестирования Azure.

Поддерживаемые клиентские метрики для критериев сбоя

Нагрузочное тестирование Azure поддерживает следующие метрики клиента:

Metric Агрегатная функция За пороговое значение Условие Description
response_time_ms avg (среднее)
min (минимум)
max (максимум)
pxx (процентиль), xx может быть 50, 90, 95, 99
Целочисленное значение, представляющее число миллисекунда (мс). > (больше чем);
< (меньше чем);
Время отклика или истекшее время в миллисекундах. Дополнительные сведения о истекаемом времени см. в документации по Apache JMeter.
latency avg (среднее)
min (минимум)
max (максимум)
pxx (процентиль), xx может быть 50, 90, 95, 99
Целочисленное значение, представляющее число миллисекунда (мс). > (больше чем);
< (меньше чем);
Задержка в миллисекундах. Дополнительные сведения о задержке см. в документации по Apache JMeter.
error percentage Числовое значение в диапазоне 0–100, представляющее процент. > (больше чем); Процент неудачных запросов.
requests_per_sec avg (среднее) Числовое значение с двумя десятичными разрядами. > (больше)
< (меньше чем);
Количество запросов в секунду.
requests count Целое значение. > (больше)
< (меньше чем);
Общее количество запросов.

Определение условий сбоя нагрузочного теста

В этом разделе описано, как настроить критерии тестирования для нагрузочного теста в портал Azure.

  1. В портал Azure перейдите к ресурсу Azure Load Testing.

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

  3. Выберите нагрузочный тест из списка и нажмите кнопку "Изменить".

    Screenshot of the list of tests for an Azure load testing resource in the Azure portal, highlighting the 'Edit' button.

  4. В области условий теста заполните значения метрики, агрегатной функции, условия и порогового значения для теста.

    Screenshot of the 'Test criteria' pane for a load test in the Azure portal and highlights the fields for adding a test criterion.

    При необходимости введите сведения о имени запроса, чтобы добавить тестовый критерий для конкретного запроса JMeter. Значение должно совпадать с именем примера JMeter в JMX-файле.

    Screenshot of the JMeter user interface, highlighting the request name.

  5. Выберите Применить, чтобы сохранить изменения.

    При запуске нагрузочного теста Azure Load Testing использует критерии теста для определения состояния выполнения нагрузочного теста.

  6. Запустите тест и просмотрите состояние на панели мониторинга нагрузочного теста.

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

    Screenshot that shows the test criteria on the load test dashboard.

Настройка автоматической остановки

Нагрузочное тестирование Azure автоматически останавливает нагрузочный тест, если процент ошибок превышает заданное пороговое значение для определенного периода времени. Автоматически останавливает защиту от неудачных тестов, например из-за неправильно настроенного URL-адреса конечной точки.

В конфигурации нагрузочного теста можно включить или отключить функцию автоматической остановки и настроить пороговое значение ошибки и временное окно. По умолчанию нагрузочное тестирование Azure автоматически останавливает нагрузочный тест с процентом ошибок, который составляет не менее 90 % в течение любого 60-секундного периода времени.

Вы можете использовать функции автоматической остановки нагрузочного тестирования Azure в сочетании с прослушивателем AutoStop в скрипте JMeter. Нагрузочный тест автоматически останавливается, когда выполняется один из критериев в конфигурации автоматической остановки или прослушиватель автостопатора JMeter.

Внимание

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

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

  1. В портал Azure перейдите к ресурсу Azure Load Testing.

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

  3. Выберите нагрузочный тест из списка и нажмите кнопку "Изменить". Кроме того, нажмите кнопку "Создать>скрипт JMeter", чтобы создать новый тест.

  4. Перейдите на вкладку условий тестирования, чтобы настроить функцию автоматической остановки.

    • Включение или отключение автоматической остановки нагрузочного теста с помощью элемента управления автозаключения тестирования .

    • Если включить автоматическую остановку, можно заполнить поля "Процент ошибок " и " Время". Укажите время в секундах.

      Screenshot of the 'Test criteria' pane for a load test in the Azure portal, highlighting the auto stop functionality.

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

Следующие шаги