Поделиться через


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

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

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

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

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

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

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

Locust ссылается на виртуальных пользователей как пользователей. Вы можете указать пользователей, необходимых для тестирования в веб-интерфейсе, в качестве аргумента командной строки, в переменной среды или в файле конфигурации. Дополнительные сведения см. в разделе "Параметры конфигурации " в документации по Locust.

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

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

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

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

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

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

Для Локуста можно настроить расширение с помощью частоты спада. Частота спечений — это количество пользователей, добавленных в секунду. Например, если число пользователей равно 20, а частота возникновения — 2, 2 пользователя будут добавляться каждые секунды, и для получения всех 20 пользователей требуется 10 секунд.

Время ответа

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

Задержка

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

Запросы в секунду (RPS)

Запросы в секунду (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 Monitor для настройки критериев сбоя или имитации потоков проверки подлинности на основе управляемых удостоверений.

Тест

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

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

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

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

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

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

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

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

Пробный запуск

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

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

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

Это важно

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

Система тестирования

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

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

Нагрузочное тестирование Azure использует виртуальные машины размером Standard_D4d_v4 с четырьмя виртуальными ЦП, 16 ГБ памяти и операционной системой Azure Linux в качестве тестовых ядр. Для тестов на основе JMeter тесты используют JDK 21 и Apache JMeter версии 5.6.3. Для тестов на основе Локуста тесты используют Python 3.9.19 иLocust версии 2.33.2.

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

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

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

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

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

Метрики

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

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

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

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