Основные понятия для новых пользователей Нагрузочного тестирования Azure

Узнайте о ключевых понятиях и компонентах Azure Load Testing. Эти сведения помогут вам эффективнее настроить нагрузочный тест для выявления проблем с производительностью в приложении.

Общие понятия нагрузочного тестирования

Узнайте о ключевых понятиях, связанных с выполнением нагрузочных тестов.

Виртуальные пользователи

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

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

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

Формула: Всего виртуальных пользователей = (виртуальных пользователей в JMX-файле) * (число экземпляров тестовой подсистемы).

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

Время увеличения

Время нарастания — это время для получения полного количества виртуальных пользователей для нагрузочного теста. Если число виртуальных пользователей равно 20, а время увеличения составляет 120 секунд, то для получения всех 20 виртуальных пользователей требуется 120 секунд. Каждый виртуальный пользователь начнет 6 (120/20) секунд после запуска предыдущего пользователя.

Время ответа

Время отклика отдельного запроса или истекшее время в JMeter — это общее время, начиная с момента отправки запроса сразу после получения последнего ответа. Время отклика не включает время отрисовки ответа. Любой клиентский код, например JavaScript, не обрабатывается во время нагрузочного теста.

Задержка

Задержка отдельного запроса — это общее время, начиная с момента отправки запроса сразу после получения первого ответа. Задержка включает всю обработку, необходимую для сборки запроса и сборки первой части ответа.

Запросов в секунду

Запросы в секунду (RPS) или пропускная способность — это общее количество запросов к серверу приложению, которое создает нагрузочный тест в секунду.

Формула: RPS = (количество запросов) / (общее время в секундах).

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

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

Формула: виртуальные пользователи = (RPS) * (задержка в секундах).

Например, учитывая задержку приложения в 20 миллисекунд (0,02 секунды), чтобы имитировать 100 000 RPS, необходимо настроить нагрузочный тест с 2000 виртуальными пользователями (100 000 * 0,02).

Компоненты нагрузочного тестирования Azure

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

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

Ресурс нагрузочного тестирования

Ресурс нагрузочного тестирования Azure — это ресурс верхнего уровня для действий нагрузочного тестирования. Этот ресурс предоставляет централизованное место для просмотра нагрузочных тестов, результатов тестирования и связанных артефактов.

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

Чтобы запустить нагрузочный тест для приложения, добавьте тест в ресурс нагрузочного тестирования. Ресурс может содержать ноль или более тестов.

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

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

Тест

Тест описывает конфигурацию нагрузочного теста для приложения. Вы добавляете тест в существующий ресурс нагрузочного тестирования Azure.

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

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

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

Этот тест также указывает параметры конфигурации для запуска нагрузочного теста:

Кроме того, можно отправить файлы входных данных CSV и тестировать файлы конфигурации в нагрузочный тест.

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

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

Запуск теста

Тестовый запуск представляет одно выполнение нагрузочного теста. При выполнении теста тестовый запуск содержит копию параметров конфигурации из связанного теста.

После завершения тестового запуска можно просмотреть и проанализировать результаты нагрузочного теста на панели мониторинга Azure Load Testing в портал Azure.

Кроме того, можно скачать журналы тестов и экспортировать файл результатов теста.

Внимание

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

Модуль тестирования

Модуль тестирования — это вычислительная инфраструктура, управляемая корпорацией Майкрософт, которая запускает тестовый скрипт. Экземпляры тестового модуля параллельно запускают скрипт теста. Вы можете масштабировать нагрузочный тест , настроив количество экземпляров подсистемы тестирования. Узнайте, как настроить количество виртуальных пользователей или имитировать целевое число запросов в секунду.

Тестовые подсистемы размещаются в том же расположении, что и ресурс Azure Load Testing. При создании ресурса нагрузочного тестирования Azure можно настроить регион Azure.

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

Компонент приложения

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

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

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

Метрики

Во время нагрузочного теста Azure Load Testing собирает метрики о выполнении теста. Есть два типа метрик:

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

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

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