Что такое Нагрузочное тестирование Azure?

Нагрузочное тестирование Azure — это полностью управляемая служба нагрузочного тестирования, которая позволяет создавать высокомасштабную нагрузку. Служба имитирует трафик для приложений независимо от того, где они размещаются. Разработчики, тестировщики и инженеры качества (QA) могут использовать его для оптимизации производительности приложений, масштабируемости или емкости.

Быстро создайте нагрузочный тест для веб-приложения с помощью URL-адреса и без предварительного знания средств тестирования. Нагрузочное тестирование Azure абстрагирует сложность и инфраструктуру для выполнения нагрузочного теста в большом масштабе.

Для более сложных сценариев нагрузочного тестирования можно создать нагрузочный тест, повторно выполнив существующий скрипт тестирования Apache JMeter, популярный инструмент загрузки и производительности с открытым исходным кодом. Например, тестовый план может состоять из нескольких запросов приложений, требуется вызывать конечные точки, отличные от HTTP, или использовать входные данные и параметры, чтобы сделать тест более динамическим.

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

Чтобы захватить регрессию производительности приложения, добавьте нагрузочный тест в рабочий процесс непрерывной интеграции и непрерывного развертывания (CI/CD). Используйте критерии сбоя теста, чтобы определить и проверить требования к качеству приложения.

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

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

Diagram that shows the Azure Load Testing architecture.

Примечание.

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

Дополнительные сведения о ключевых понятиях для нагрузочного тестирования Azure.

Сценарии использования

Нагрузочное тестирование Azure использует Apache JMeter и поддерживает широкий спектр типов приложений и протоколов связи. В следующем списке приведены примеры поддерживаемых типов приложений или конечных точек:

  • Веб-приложения с помощью HTTP или HTTPS
  • Интерфейсы REST API
  • Базы данных через JDBC
  • Конечные точки на основе TCP

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

С помощью быстрого тестирования можно протестировать одну конечную точку HTTP на основе URL-адресов. Отправив скрипт JMeter, можно использовать все протоколы связи, поддерживаемые JMeter.

Нагрузочное тестирование Azure в настоящее время не поддерживает другие платформы тестирования, чем Apache JMeter.

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

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

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

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

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

Включение автоматического нагрузочного тестирования

Вы можете интегрировать Нагрузочное тестирование Azure в конвейер CI/CD в значимых точках во время жизненного цикла разработки. Например, можно автоматически запустить нагрузочный тест в конце каждого спринта или в промежуточной среде для проверки сборки кандидата выпуска.

Начните с добавления нагрузочного тестирования в рабочий процесс CI/CD, чтобы быстро определить снижение производительности приложения под нагрузкой.

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

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

Вы можете активировать Нагрузочное тестирование Azure из рабочих процессов Azure Pipelines или GitHub Actions.

Как работает нагрузочное тестирование Azure?

Нагрузочное тестирование Azure использует Apache JMeter для выполнения нагрузочных тестов. Подключаемые модули Apache JMeter можно использовать из https://jmeter-plugins.org собственного кода подключаемого модуля или отправить его. Нагрузочное тестирование Azure поддерживает все протоколы связи, поддерживаемые JMeter. Например, для нагрузочного тестирования подключения к базе данных или очереди сообщений. Дополнительные сведения о поддерживаемых функциях Apache JMeter.

Подсистемы тестирования нагрузочного тестирования Azure абстрагируют необходимую инфраструктуру для выполнения высокомасштабного нагрузочного теста. Каждый экземпляр модуля тестирования запускает скрипт JMeter для имитации большого количества виртуальных пользователей одновременного доступа к конечным точкам приложения. При создании нагрузочного теста на основе URL-адреса (быстрого теста) нагрузочное тестирование Azure автоматически создает скрипт тестирования JMeter. Чтобы масштабировать нагрузочный тест, можно настроить количество тестовых модулей.

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

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

  • Метрики на стороне клиента предоставляют подробные сведения, сообщаемые тестовой подсистемой. Эти сведения включают количество виртуальных пользователей, время отклика запроса или количество запросов в секунду.

  • Метрики на стороне сервера предоставляют сведения о компонентах приложения Azure. Нагрузочное тестирование Azure интегрируется с Azure Monitor, включая аналитику приложений Аналитика и контейнеров, для сбора сведений из служб Azure. В зависимости от типа службы доступны разные метрики. Например, метрики могут быть для количества операций чтения базы данных, типа http-ответов или потребления ресурсов контейнера.

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

Служба автоматически шифрует все данные, хранящиеся в ресурсе нагрузочного тестирования, с ключами, управляемыми корпорацией Майкрософт (ключи, управляемые службой). Например, эти данные включают скрипт Apache JMeter, файлы конфигурации и многое другое. Кроме того, можно настроить службу для использования ключей, управляемых клиентом.

Место расположения данных в регионе

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

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

Начните использовать нагрузочное тестирование Azure: