Определение критериев сбоя для нагрузочных тестов с помощью Azure Load Testing
Из этой статьи вы узнаете, как определить критерии сбоя или критерии автоматической остановки для нагрузочных тестов с помощью Azure Load Testing. Критерии сбоя позволяют определять ожидания производительности и качества для приложения под нагрузкой. Нагрузочное тестирование Azure поддерживает различные метрики клиента и сервера для определения критериев сбоя, таких как частота ошибок или процент ЦП для ресурса Azure. Критерии автоматической остановки позволяют автоматически остановить нагрузочный тест, когда частота ошибок превышает заданное пороговое значение.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
- Ресурс нагрузочного тестирования Azure. Если вам нужно создать ресурс Нагрузочного тестирования Azure, ознакомьтесь с кратким руководством по созданию и запуску нагрузочного теста.
Критерии сбоя нагрузочного теста
Критерии сбоя нагрузочного теста — это условия для метрик, которые должны соответствовать тесту. Критерии тестирования определяются на уровне нагрузочного теста в Azure Load Testing. Нагрузочный тест может иметь один или несколько критериев тестирования. Если по крайней мере один из критериев теста оценивается как true, нагрузочный тест получает состояние сбоя .
Можно определить не более 50 критериев тестирования для нагрузочного теста. Если для одной и той же метрики существует несколько критериев, используется условие с наименьшим пороговым значением.
Структура критериев сбоя для клиентских метрик
Формат условий сбоя в Azure Load Testing следует условному оператору для поддерживаемой метрики. Например, убедитесь, что среднее число запросов в секунду превышает 500.
Для метрик на стороне клиента можно определить критерии тестирования на двух уровнях. Нагрузочный тест может объединять критерии на разных уровнях.
- На уровне нагрузочного теста. Например, чтобы убедиться, что общий процент ошибок не превышает пороговое значение. Структура условий:
Aggregate_function (client_metric) condition threshold
- На уровне запроса JMeter (пример JMeter). Например, можно указать пороговое значение времени отклика запроса getProducts , но игнорировать время отклика запроса на вход . Структура условий:
Request: Aggregate_function (client_metric) condition threshold
В следующей таблице описаны различные компоненты:
Параметр | Описание |
---|---|
Client metric |
Обязательное. Клиентская метрика, к которой следует применить условие. |
Aggregate function |
Обязательный. Агрегатная функция, применяемая к метрикам клиента. |
Condition |
Обязательный. Оператор сравнения, например greater than , или less than . |
Threshold |
Обязательный. Числовое значение для сравнения с метрикой клиента. |
Request |
Необязательно. Имя примера в скрипте JMeter, к которому применяется критерий. Если имя запроса не указано, критерий применяется к агрегату всех запросов в скрипте. Не включайте персональные данные в имя примера в скрипт JMeter. Имена примеров отображаются на панели мониторинга результатов нагрузочного тестирования Azure. |
Поддерживаемые клиентские метрики для критериев сбоя
Нагрузочное тестирование Azure поддерживает следующие метрики клиента:
Метрика | Агрегатная функция | За пороговое значение | Условие | Description |
---|---|---|---|---|
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.
В портал Azure перейдите к ресурсу Azure Load Testing.
На левой панели выберите "Тесты ", чтобы просмотреть список нагрузочных тестов.
Выберите нагрузочный тест из списка и нажмите кнопку "Изменить".
В области условий теста заполните значения метрики, агрегатной функции, условия и порогового значения для теста.
При необходимости введите сведения о имени запроса, чтобы добавить тестовый критерий для конкретного запроса JMeter. Значение должно совпадать с именем примера JMeter в JMX-файле.
Выберите Применить, чтобы сохранить изменения.
При запуске нагрузочного теста Azure Load Testing использует критерии теста для определения состояния выполнения нагрузочного теста.
Запустите тест и просмотрите состояние на панели мониторинга нагрузочного теста.
На панели мониторинга отображаются все критерии теста и их состояние. Общее состояние теста завершается ошибкой, если выполнен хотя бы один критерий.
Доступ к компоненту приложения для условий тестирования на метриках сервера
При установке условий сбоя в метрике в компоненте приложения ресурс нагрузочного тестирования использует управляемое удостоверение для доступа к этом компоненту. После настройки управляемого удостоверения необходимо предоставить управляемому удостоверению разрешения ресурса нагрузочного тестирования для чтения этих значений из компонента приложения.
Чтобы предоставить ресурсу нагрузочного тестирования Azure разрешения на чтение метрик из компонента приложения:
В портал Azure перейдите к компоненту приложения.
На левой панели выберите контроль доступа (IAM), а затем нажмите кнопку +Добавить, а затем выберите "Добавить назначение ролей".
На вкладке "Роль" в разделе "Функции задания" найдите читателя мониторинга или участника мониторинга.
На вкладке "Участники" в разделе "Назначение доступа" выберите "Управляемое удостоверение".
Щелкните "Выбрать участников", выполните поиск и выберите управляемое удостоверение для ресурса нагрузочного тестирования, а затем нажмите кнопку "Далее". Если вы используете управляемое удостоверение, назначаемое системой, имя управляемого удостоверения совпадает с именем ресурса нагрузочного тестирования Azure.
Выберите "Проверка и назначение " для назначения удостоверения разрешения.
При выполнении теста управляемое удостоверение, связанное с ресурсом нагрузочного тестирования, теперь может считывать метрики для нагрузочного теста из компонента приложения.
Определение условий сбоя нагрузочного теста для метрик сервера
Внимание
Нагрузочное тестирование Azure не поддерживает настройку критериев сбоя на стороне сервера из Azure Pipelines/Github Actions.
В этом разделе описано, как настроить критерии сбоя теста на стороне сервера для нагрузочного теста в портал Azure.
В портал Azure перейдите к ресурсу Azure Load Testing.
Выберите "Создать тест".
На вкладке "Мониторинг" настройте компоненты приложения, которые необходимо отслеживать во время теста.
Настройте удостоверение ссылки на метрики. Удостоверение может быть назначаемым системой удостоверением ресурса нагрузочного тестирования или одним из назначаемых пользователем удостоверений. Убедитесь, что вы используете то же удостоверение, к которому вы предоставили доступ ранее.
В области условий теста заполните идентификатор ресурса, пространство имен, метрики, агрегирование, условие, пороговые значения для теста. Вы можете задать критерии сбоя только для этих ресурсов или компонентов приложений, которые вы отслеживаете во время теста.
Выберите Применить, чтобы сохранить изменения. При запуске нагрузочного теста Azure Load Testing использует критерии теста для определения состояния выполнения нагрузочного теста.
Запустите тест и просмотрите состояние на панели мониторинга нагрузочного теста. На панели мониторинга отображаются все критерии теста и их состояние. Общее состояние теста завершается ошибкой, если выполнен хотя бы один критерий.
Настройка автоматической остановки
Нагрузочное тестирование Azure автоматически останавливает нагрузочный тест, если процент ошибок превышает заданное пороговое значение для определенного периода времени. Автоматически останавливает защиту от неудачных тестов, например из-за неправильно настроенного URL-адреса конечной точки.
В конфигурации нагрузочного теста можно включить или отключить функцию автоматической остановки и настроить пороговое значение ошибки и временное окно. По умолчанию нагрузочное тестирование Azure автоматически останавливает нагрузочный тест с процентом ошибок, который составляет не менее 90 % в течение любого 60-секундного периода времени.
Вы можете использовать функции автоматической остановки нагрузочного тестирования Azure в сочетании с прослушивателем AutoStop в скрипте JMeter. Нагрузочный тест автоматически останавливается, когда выполняется один из критериев в конфигурации автоматической остановки или прослушиватель автостопатора JMeter.
Внимание
Если отключить автоматическую остановку для нагрузочного теста, вы можете нести расходы даже при неправильной настройке нагрузочного теста.
Чтобы настроить автоматическую остановку для нагрузочного теста в портал Azure:
В портал Azure перейдите к ресурсу Azure Load Testing.
На левой панели выберите "Тесты ", чтобы просмотреть список нагрузочных тестов.
Выберите нагрузочный тест из списка и нажмите кнопку "Изменить". Кроме того, нажмите кнопку "Создать>скрипт JMeter", чтобы создать новый тест.
Перейдите на вкладку условий тестирования, чтобы настроить функцию автоматической остановки.
Включение или отключение автоматической остановки нагрузочного теста с помощью элемента управления автозаключения тестирования .
Если включить автоматическую остановку, можно заполнить поля "Процент ошибок " и " Время". Укажите время в секундах.
Нажмите кнопку "Применить" или "Проверить" и "Создать", если вы создаете новый нагрузочный тест, чтобы сохранить изменения.
Следующие шаги
Сведения о параметризации нагрузочного теста с помощью секретов см. в разделе Параметризация нагрузочного теста.
Дополнительные сведения об автоматизации тестов производительности см. в статье "Настройка автоматического тестирования производительности".