Поделиться через


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

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

Предварительные условия

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

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

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

Структура критериев сбоя для клиентских метрик

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

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

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

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

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

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

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

Метрика Агрегатная функция За пороговое значение Условие Описание
response_time_ms avg (среднее)
min (минимум)
max (максимум)
pxx (процентиль), xx может быть 50, 75, 90, 95, 96, 97, 98, 99, 999 и 9999
Целочисленное значение, представляющее число миллисекунда (мс). > (больше чем);
< (меньше чем);
Время отклика или истекшее время в миллисекундах. Дополнительные сведения о истекаемом времени см. в документации по 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 Portal.

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

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

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

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

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

    Снимок экрана панели

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

    Снимок экрана: пользовательский интерфейс JMeter, в котором выделено имя запроса.

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

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

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

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

    Снимок экрана, показывающий критерии тестирования на панели мониторинга нагрузочного теста.

Доступ к компоненту приложения для условий тестирования на метриках сервера

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

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

  1. В портале Azure перейдите к компоненту приложения.

  2. На левой панели выберите контроль доступа (IAM), а затем нажмите кнопку +Добавить, а затем выберите "Добавить назначение ролей".

    Снимок экрана: контроль доступа(IAM) в компоненте приложения, для которого необходимо задать критерии сбоя.

  3. На вкладке "Роль" в разделе "Функции задания" найдите читателя мониторинга или участника мониторинга.

  4. На вкладке "Участники" в разделе "Назначение доступа" выберите "Управляемое удостоверение".

  5. Щелкните "Выбрать участников", выполните поиск и выберите управляемое удостоверение для ресурса нагрузочного тестирования, а затем нажмите кнопку "Далее". Если вы используете управляемое удостоверение, назначаемое системой, имя управляемого удостоверения совпадает с именем ресурса нагрузочного тестирования Azure.

  6. Выберите "Проверка и назначение " для назначения удостоверения разрешения.

    Снимок экрана: назначение разрешений на чтение метрик ресурсу нагрузочного тестирования.

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

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

Внимание

Нагрузочное тестирование Azure не поддерживает настройку критериев сбоя на стороне сервера из Azure Pipelines/GitHub Actions.

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

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

  2. Выберите "Создать тест".

  3. На вкладке "Мониторинг" настройте компоненты приложения, которые необходимо отслеживать во время теста.

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

    Снимок экрана: настройка ссылочного удостоверения метрик.

  5. В панели Критерии теста заполните идентификатор ресурса, пространство имен, метрику, агрегирование, условие и пороговые значения для вашего теста. Вы можете задать критерии сбоя только для этих ресурсов или компонентов приложений, которые вы отслеживаете во время теста.

    Снимок экрана: настройка условий сбоя на метриках сервера.

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

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

    Снимок экрана: панель мониторинга, отображающая результаты теста.

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

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

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

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

Внимание

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

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

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

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

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

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

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

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

      Снимок экрана панели

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

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