Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Узнайте о ключевых понятиях и компонентах Azure Load Testing. Эти сведения помогут вам эффективнее настроить нагрузочный тест для выявления проблем с производительностью в приложении.
Общие понятия нагрузочного тестирования
Узнайте о ключевых понятиях, связанных с выполнением нагрузочных тестов.
Виртуальные пользователи
Виртуальный пользователь выполняет конкретный тестовый кейс для вашего серверного приложения и действует независимо от других виртуальных пользователей. Вы можете использовать несколько виртуальных пользователей для имитации параллельных подключений к серверу.
Apache JMeter также называет виртуальных пользователей потоками. В скрипте тестирования JMeter элемент группы потоков позволяет указать пул виртуальных пользователей. Узнайте о группах потоков в документации Apache JMeter.
Locust называет виртуальных пользователей пользователями. Вы можете указать пользователей, необходимых для тестирования в веб-интерфейсе, в качестве аргумента командной строки, в переменной среды или в файле конфигурации. Дополнительные сведения см. в разделе "Параметры конфигурации " в документации по Locust.
Общее количество виртуальных пользователей для нагрузочного теста зависит от количества виртуальных пользователей в скрипте тестирования и количества экземпляров тестового модуля.
Для нагрузочных тестов на основе JMeter формула: Всего виртуальных пользователей = (виртуальных пользователей в JMX-файле) * (число инстансов тестового движка).
Целевое число виртуальных пользователей можно достичь, настроив количество экземпляров тестового модуля, количество виртуальных пользователей в скрипте тестирования или сочетание обоих.
Для нагрузочных тестов на основе Локуста общее число виртуальных пользователей — это количество пользователей, указанных в любом из параметров конфигурации. Затем можно настроить количество экземпляров тестового модуля, необходимых для создания общего числа пользователей.
Время увеличения
Время увеличения — это время, необходимое для достижения полного количества виртуальных пользователей в нагрузочном тесте. Если число виртуальных пользователей равно 20, а время увеличения составляет 120 секунд, то для получения всех 20 виртуальных пользователей требуется 120 секунд. Каждый виртуальный пользователь начнет 6 (120/20) секунд после запуска предыдущего пользователя.
Для Locust можно настроить наращивание с помощью частоты порождения. Частота появления — это количество пользователей, добавляемых в секунду. Например, если число пользователей равно 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 Key Vault для хранения параметров секрета или сертификатов нагрузочного теста, доступа к метрикам Azure Monitor для настройки критериев сбоя или имитации потоков проверки подлинности на основе управляемых удостоверений.
Тест
Тест описывает конфигурацию нагрузочного теста для приложения. Вы добавляете тест в существующий ресурс нагрузочного тестирования Azure.
Тест содержит тестовый план, описывающий шаги для вызова конечной точки приложения. Тестовый план можно определить одним из трех способов:
- Отправка тестового скрипта JMeter.
- Отправка тестового скрипта Locust.
- Укажите список конечных точек URL-адресов для тестирования.
Нагрузочное тестирование Azure поддерживает все протоколы связи, поддерживаемые JMeter и Locust, не только конечными точками на основе HTTP. Например, может потребоваться прочитать или записать в базу данных или очередь сообщений в тестовом скрипте.
Нагрузочное тестирование Azure в настоящее время не поддерживает другие платформы тестирования, кроме Apache JMeter и Locust.
Этот тест также указывает параметры конфигурации для запуска нагрузочного теста:
- Параметры нагрузочного теста, такие как переменные среды, секреты и сертификаты.
- Загрузка конфигурации для масштабирования нагрузочного теста в нескольких экземплярах подсистемы тестирования .
- Критерии сбоя для определения, когда тест считается пройденным или проваленным.
- Параметры мониторинга для настройки списка компонентов приложений Azure и метрик ресурсов для мониторинга во время тестового запуска.
Кроме того, можно отправить файлы входных данных CSV и тестировать файлы конфигурации в нагрузочный тест.
При запуске теста Azure Load Testing развертывает тестовый скрипт, связанные файлы и конфигурацию в экземпляры тестового движка. Затем экземпляры тестового модуля инициируют тестовый скрипт для имитации нагрузки приложения.
Каждый раз, когда вы запускаете тест, Нагрузочное тестирование Azure создает тестового запуска и присоединяет его к тесту.
Пробный запуск
Тестовый запуск представляет одно выполнение нагрузочного теста. При выполнении теста тестовый запуск содержит копию параметров конфигурации из связанного теста.
После завершения тестового запуска можно просмотреть и проанализировать результаты нагрузочного теста на панели мониторинга Нагрузочного тестирования Azure на портале Azure.
Кроме того, можно скачать журналы тестов и экспортировать файл результатов теста.
Это важно
При обновлении теста существующие тесты не наследуют новые параметры из теста автоматически. Новые параметры используются только при выполнении новых тестов, когда вы запускаете тест . Если вы повторно запускаете существующий тестовый запуск , используются его исходные настройки.
Система тестирования
Модуль тестирования — это вычислительная инфраструктура, управляемая корпорацией Майкрософт, которая запускает тестовый скрипт. Экземпляры тестового модуля параллельно запускают скрипт теста. Вы можете масштабировать нагрузочный тест, настроив количество экземпляров тестового движка. Узнайте, как настроить количество виртуальных пользователей или имитировать целевое число запросов в секунду.
Тестовые движки размещаются в том же местоположении, что и ресурс Azure Load Testing. При создании ресурса нагрузочного тестирования Azure можно настроить регион Azure.
Нагрузочное тестирование Azure использует виртуальные машины размером Standard_D4d_v4 с четырьмя виртуальными ЦП, 16 ГБ памяти и операционной системой Azure Linux в качестве тестовых ядр. Для тестов на основе JMeter тестовые движки используют JDK 21 и Apache JMeter версии 5.6.3. Для тестов на основе Locust тестовые движки используют Python 3.9.19 и Locust версии 2.33.2.
Во время выполнения тестового скрипта нагрузочное тестирование Azure собирает и агрегирует журналы платформы тестирования из всех экземпляров тестового модуля. Журналы можно скачать для анализа ошибок во время нагрузочного теста.
Компонент приложения
При запуске нагрузочного теста для приложения, размещенного в Azure, можно отслеживать метрики ресурсов для различных компонентов приложения Azure (метрики на стороне сервера). Во время выполнения нагрузочного теста и после завершения теста можно отслеживать и анализировать метрики ресурсов на панели мониторинга нагрузочного тестирования Azure.
При создании или обновлении нагрузочного теста можно настроить список компонентов приложений, которые будут отслеживаться в Azure Load Testing. Список метрик ресурсов по умолчанию можно изменить для каждого компонента приложения.
Дополнительные сведения о том, какие типы ресурсов Azure поддерживаются в нагрузочном тестировании Azure.
Метрики
Во время нагрузочного теста Azure Load Testing собирает метрики о выполнении теста. Существует два типа метрик:
Метрики на стороне клиента сообщаются тест-подсистемами. Эти метрики включают количество виртуальных пользователей, время ответа на запросы, количество неудачных запросов или количество запросов в секунду. Вы можете определить критерии сбоя теста на основе этих метрик на стороне клиента.
Метрики на стороне сервера доступны для приложений, размещенных в Azure, и предоставляют сведения о компонентах приложений Azure. Нагрузочное тестирование Azure интегрируется с Azure Monitor, включая Application Insights и Аналитику контейнеров, для сбора сведений из служб Azure. В зависимости от типа службы доступны разные метрики. Например, метрики могут быть для количества операций чтения базы данных, типа http-ответов или потребления ресурсов контейнера. Можно также определить критерии тестового сбоя на основе этих метрики на стороне сервера.
Связанный контент
Теперь вы знаете основные понятия нагрузочного тестирования Azure для начала создания нагрузочного теста.
- Узнайте, как работает нагрузочное тестирование Azure.
- Узнайте, как создать и запустить нагрузочный тест на основе URL-адресов для веб-сайта.
- Узнайте, как определить узкие места производительности в приложении Azure.
- Узнайте, как настроить автоматическое тестирование регрессии с помощью CI/CD.