Настройка базовых показателей для нагрузочных тестов
Теперь, когда вы определили нагрузочные тесты и пороговые значения, используйте их для создания базовых показателей.
Базовый план — это набор критериев для метрик, используемых для оценки того, завершился ли тест сбой или успешно выполнен. Например, критерии могут быть следующими:
- Среднее число запросов в секунду.
- Частота ошибок.
- Максимальное время отклика.
Чтобы настроить базовые показатели для нагрузочных тестов, необходимо:
Определите базовые показатели и критерии тестирования для отдельных потоков пользователей и общее решение.
Настройте пороговые значения для регулярных запусков, чтобы убедиться, что приложение продолжает обеспечивать ожидаемую производительность и не создает никаких ошибок.
Используйте отдельный базовый план для тестирования хаоса, который допускает ожидаемые пики ошибок и временно снижает производительность.
Это действие непрерывно и должно выполняться регулярно. Например, необходимо просмотреть базовые показатели после внедрения новых функций или изменения номеров SKU службы.
Использование нагрузочного тестирования Azure для оценки пороговых значений
На этапе разработки производительность компонентов и требований к ресурсам часто не известна четко. Нагрузочные тесты помогают определить ожидаемую производительность, включая поведение горизонтального масштабирования, общего решения и его компонентов. Они также могут помочь определить пороговые значения, которые следует ожидать для создания базовых показателей.
Задайте следующие вопросы и регулярно оцените следующее:
- Сколько времени занимает отдельная операция, поток пользователя или вызов API?
- Сколько запросов, операций и одновременных пользователей может обслуживать компонент в секунду?
- Сколько ресурсов используется?
- Как 10, 50 и 100 одновременных пользователей влияют на базовую инфраструктуру и внутренние службы?
- Когда компоненты должны масштабироваться и выходить?
Ответы приводят к тестам и пороговым значениям. Запросы в секунду, время отклика и процент ошибок являются всеми применимыми примерами для пороговых значений.
После того как вы указали сведения, используйте значения для анализа и оценки производительности общего решения и его компонентов в согласованном режиме. Кроме того, используйте базовые показатели, чтобы определить влияние изменений и смещения от ожидаемой производительности.
При выполнении тестов могут потребоваться различные требования для специальных вариантов использования, таких как неисправный компонент или пик нагрузки. В таких случаях можно ожидать более высокие частоты ошибок или более низкие запросы в секунду. Вы можете иметь отдельный базовый план, содержащий скорректированные пороговые значения для удовлетворения этих ситуаций. Например:
- Сценарии высокой нагрузки, в которых ожидается горизонтальное масштабирование и требуется. Может быть временное снижение производительности до завершения операции.
- Эксперименты хаоса в рамках конвейера непрерывной проверки. Более высокая частота ошибок может ожидаться до тех пор, пока меры устойчивости не начнут самовосстановлять приложение или выполнять отработку отказа в другой регион.
Используйте нагрузочное тестирование 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"
}
}
}
]
Еще одним важным аспектом непрерывной проверки является внедрение тестов, имитирующих реальные проблемы. В следующем уроке вы узнаете о добавлении экспериментов хаоса в процесс проверки.