Определение критериев сбоя для нагрузочных тестов с помощью Azure Load Testing
Из этой статьи вы узнаете, как определить критерии сбоя или критерии автоматической остановки для нагрузочных тестов с помощью Azure Load Testing. Критерии сбоя позволяют определять ожидания производительности и качества для приложения под нагрузкой. Нагрузочное тестирование Azure поддерживает различные клиентские метрики для определения критериев сбоя, таких как частота ошибок или время отклика. Критерии автоматической остановки позволяют автоматически остановить нагрузочный тест, когда частота ошибок превышает заданное пороговое значение.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
- Ресурс нагрузочного тестирования Azure. Если вам нужно создать ресурс Нагрузочного тестирования 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, 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 автоматически останавливает нагрузочный тест, если процент ошибок превышает заданное пороговое значение для определенного периода времени. Автоматически останавливает защиту от неудачных тестов, например из-за неправильно настроенного URL-адреса конечной точки.
В конфигурации нагрузочного теста можно включить или отключить функцию автоматической остановки и настроить пороговое значение ошибки и временное окно. По умолчанию нагрузочное тестирование Azure автоматически останавливает нагрузочный тест с процентом ошибок, который составляет не менее 90 % в течение любого 60-секундного периода времени.
Вы можете использовать функции автоматической остановки нагрузочного тестирования Azure в сочетании с прослушивателем AutoStop в скрипте JMeter. Нагрузочный тест автоматически останавливается, когда выполняется один из критериев в конфигурации автоматической остановки или прослушиватель автостопатора JMeter.
Внимание
Если отключить автоматическую остановку для нагрузочного теста, вы можете нести расходы даже при неправильной настройке нагрузочного теста.
Чтобы настроить автоматическую остановку для нагрузочного теста в портал Azure:
В портал Azure перейдите к ресурсу Azure Load Testing.
На левой панели выберите "Тесты ", чтобы просмотреть список нагрузочных тестов.
Выберите нагрузочный тест из списка и нажмите кнопку "Изменить". Кроме того, нажмите кнопку "Создать>скрипт JMeter", чтобы создать новый тест.
Перейдите на вкладку условий тестирования, чтобы настроить функцию автоматической остановки.
Включение или отключение автоматической остановки нагрузочного теста с помощью элемента управления автозаключения тестирования .
Если включить автоматическую остановку, можно заполнить поля "Процент ошибок " и " Время". Укажите время в секундах.
Нажмите кнопку "Применить" или "Проверить" и "Создать", если вы создаете новый нагрузочный тест, чтобы сохранить изменения.
Следующие шаги
Сведения о параметризации нагрузочного теста с помощью секретов см. в разделе Параметризация нагрузочного теста.
Дополнительные сведения об автоматизации тестов производительности см. в статье "Настройка автоматического тестирования производительности".