Что такое Нагрузочное тестирование Azure?
Нагрузочное тестирование Azure — это полностью управляемая служба нагрузочного тестирования, которая позволяет создавать высокомасштабную нагрузку. Служба имитирует трафик для приложений независимо от того, где они размещаются. Разработчики, тестировщики и инженеры качества (QA) могут использовать его для оптимизации производительности приложений, масштабируемости или емкости.
Быстро создайте нагрузочный тест для веб-приложения с помощью URL-адреса и без предварительного знания средств тестирования. Нагрузочное тестирование Azure абстрагирует сложность и инфраструктуру для выполнения нагрузочного теста в большом масштабе.
Для более сложных сценариев нагрузочного тестирования можно также создать нагрузочный тест, отправив скрипт теста. Нагрузочное тестирование Azure поддерживает выполнение тестов на основе Apache JMeter или тестов на основе Locust. Например, тестовый план может состоять из нескольких запросов приложений, требуется вызывать конечные точки, отличные от HTTP, или использовать входные данные и параметры, чтобы сделать тест более динамическим.
Если приложение размещено в Azure, нагрузочное тестирование Azure собирает подробные метрики ресурсов, чтобы помочь определить узкие места производительности в компонентах приложения Azure.
Чтобы захватить регрессию производительности приложения, добавьте нагрузочный тест в рабочий процесс непрерывной интеграции и непрерывного развертывания (CI/CD). Используйте критерии сбоя теста, чтобы определить и проверить требования к качеству приложения.
Нагрузочное тестирование Azure позволяет тестировать конечные точки или приложения частных приложений, размещенных в локальной среде. Дополнительные сведения см . в сценариях развертывания нагрузочного тестирования Azure в виртуальной сети.
На следующей схеме показан обзор архитектуры нагрузочного тестирования Azure.
Примечание.
На обзорном рисунке показано, как Нагрузочное тестирование Azure использует Azure Monitor для сбора метрик для компонентов приложения. Узнайте больше о поддерживаемых типах ресурсов Azure.
Дополнительные сведения о ключевых понятиях для нагрузочного тестирования Azure.
Сценарии использования
Нагрузочное тестирование Azure может использовать платформы тестирования Apache JMeter или Locust и поддерживает широкий спектр типов приложений и протоколов связи. В следующем списке приведены примеры поддерживаемых типов приложений или конечных точек:
- Веб-приложения с помощью HTTP или HTTPS
- Интерфейсы REST API
- Базы данных через JDBC
- Конечные точки на основе TCP
Для JMeter можно использовать подключаемые модули JMeter в скрипте тестирования, вы можете нагрузить дополнительные типы приложений.
С помощью быстрого тестирования можно протестировать одну конечную точку HTTP на основе URL-адресов. Отправив скрипт JMeter, можно использовать все протоколы связи, поддерживаемые JMeter.
Нагрузочное тестирование Azure в настоящее время не поддерживает другие платформы тестирования, кроме Apache JMeter и Locust.
Определение узких мест производительности с помощью высокомасштабных нагрузочных тестов
Проблемы с производительностью часто остаются незамеченными до тех пор, пока приложение не будет загружено. Вы можете запустить высокомасштабируемый нагрузочный тест в портал Azure, чтобы узнать, как ваше приложение работает под стрессом. Во время выполнения теста панель мониторинга Нагрузочного тестирования Azure предоставляет динамическое обновление клиентских и серверных метрик.
После завершения нагрузочного теста можно использовать панель мониторинга для анализа результатов теста и выявления узких мест производительности. Для размещенных в Azure приложений панель мониторинга отображает подробные метрики ресурсов компонентов приложений Azure. Начало работы с руководством по выявлению узких мест производительности для размещенных в Azure приложений.
Нагрузочное тестирование Azure сохраняет журнал тестов и позволяет визуально сравнивать несколько запусков для обнаружения регрессии производительности с течением времени.
Вы также можете скачать результаты теста для анализа в стороннем инструменте.
Включение автоматического нагрузочного тестирования
Вы можете интегрировать Нагрузочное тестирование Azure в конвейер CI/CD в значимых точках во время жизненного цикла разработки. Например, можно автоматически запустить нагрузочный тест в конце каждого спринта или в промежуточной среде для проверки сборки кандидата выпуска.
Начните с добавления нагрузочного тестирования в рабочий процесс CI/CD, чтобы быстро определить снижение производительности приложения под нагрузкой.
В конфигурации теста укажите критерии сбоя теста для перехвата производительности приложения или регрессии стабильности в начале цикла разработки. Например, получите оповещение, если среднее время отклика или количество ошибок превышает определенное пороговое значение.
Нагрузочное тестирование Azure автоматически остановит автоматический нагрузочный тест в ответ на определенные условия ошибки. Кроме того, можно использовать прослушиватель AutoStop в скрипте Apache JMeter. Автоматически останавливает защиту от неудачных тестов, например из-за неправильно настроенного URL-адреса конечной точки. Узнайте, как настроить автоматическую остановку для нагрузочного теста.
Вы можете активировать нагрузочное тестирование Azure из рабочих процессов Azure Pipelines или GitHub Actions или использовать Azure CLI для интеграции с другими средствами CI.
Как работает нагрузочное тестирование Azure?
Нагрузочное тестирование Azure использует Apache JMeter или Locust для выполнения нагрузочных тестов. Подключаемые модули Apache JMeter можно использовать из https://jmeter-plugins.org собственного кода подключаемого модуля или отправить его. Нагрузочное тестирование Azure поддерживает все протоколы связи, поддерживаемые JMeter. Например, используйте Нагрузочное тестирование Azure для нагрузочного тестирования подключения к базе данных или очереди сообщений. Дополнительные сведения о поддерживаемых функциях Apache JMeter.
Подсистемы тестирования нагрузочного тестирования Azure абстрагируют необходимую инфраструктуру для выполнения высокомасштабного нагрузочного теста. Каждый экземпляр модуля тестирования запускает скрипт теста для имитации большого количества виртуальных пользователей одновременного доступа к конечным точкам приложения. При создании нагрузочного теста на основе URL-адреса (быстрого теста) нагрузочное тестирование Azure автоматически создает скрипт тестирования. Чтобы масштабировать нагрузочный тест, можно настроить количество тестовых модулей.
Приложение можно разместить в любом месте: в Azure, локальной среде или в других облаках. Чтобы запустить нагрузочный тест для служб, у которых нет общедоступной конечной точки, разверните нагрузочное тестирование Azure в виртуальной сети.
Во время нагрузочного теста Azure Load Testing собирает следующие метрики ресурсов и отображает их на панели мониторинга:
Метрики на стороне клиента предоставляют подробные сведения, сообщаемые тестовой подсистемой. Эти сведения включают количество виртуальных пользователей, время отклика запроса или количество запросов в секунду.
Метрики на стороне сервера предоставляют сведения о компонентах приложения Azure. Нагрузочное тестирование Azure интегрируется с Azure Monitor, включая аналитику приложений Аналитика и контейнеров, для сбора сведений из служб Azure. В зависимости от типа службы доступны разные метрики. Например, метрики могут быть для количества операций чтения базы данных, типа http-ответов или потребления ресурсов контейнера.
Нагрузочное тестирование Azure автоматически включает рекомендации по работе с сетями Azure, чтобы убедиться, что тесты выполняются безопасно и надежно. Нагрузочные тесты автоматически останавливаются, если конечные точки приложения или компоненты Azure запускают запросы регулирования.
Служба автоматически шифрует все данные, хранящиеся в ресурсе нагрузочного тестирования, с ключами, управляемыми корпорацией Майкрософт (ключи, управляемые службой). Например, эти данные включают скрипт тестирования Apache JMeter или Locust, файлы конфигурации и многое другое. Кроме того, можно настроить службу для использования ключей, управляемых клиентом.
Место расположения данных в регионе
Нагрузочное тестирование Azure не хранит или обрабатывает данные клиента за пределами региона, в который развертывается экземпляр службы.
Связанный контент
Начните использовать нагрузочное тестирование Azure: