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


Вручную настройте рабочий процесс CI/CD для выполнения нагрузочных тестов

Вы можете автоматизировать нагрузочный тест в Нагрузочное тестирование Azure, создав конвейер CI/CD. В этой статье вы узнаете, как вручную настроить GitHub Actions, Azure Pipelines или другие средства CI для вызова существующего теста в Нагрузочное тестирование Azure. Автоматизируйте нагрузочный тест для непрерывной проверки производительности и стабильности приложения под нагрузкой.

Чтобы добавить существующий нагрузочный тест в конвейер CI/CD:

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

Предпосылки

Настройка проверки подлинности службы

Чтобы запустить нагрузочный тест в рабочем процессе CI/CD, необходимо предоставить разрешение рабочему процессу CI/CD для доступа к ресурсу нагрузочного тестирования. Создайте служебный принципал для рабочего процесса CI/CD и назначьте роль участника нагрузочного тестирования (Load Test Contributor) для Azure в RBAC.

Создание подключения к службе в Azure Pipelines

В Azure Pipelines вы создадите подключение service в проекте Azure DevOps для доступа к ресурсам в подписке Azure. При создании подключения службы Azure DevOps создает объект субъекта-службы Microsoft Entra.

  1. Войдите в организацию Azure DevOps (https://dev.azure.com/<your-organization>) и выберите проект.

    Замените текстовый заполнитель <your-organization> указателем вашего проекта.

  2. Выберите параметры Project>Service connections>+ Новое подключение службы.

  3. В области Новое подключение службы выберите Azure Resource Manager, затем нажмите Далее.

  4. Выберите способ аутентификации "Субъект-служба" (автоматически) и выберите Далее.

  5. Введите сведения о подключении службы и нажмите кнопку "Сохранить ", чтобы создать подключение службы.

    Поле Ценность
    Уровень области Подписка.
    Подписка Выберите подписку Azure, в которую размещается ресурс нагрузочного тестирования.
    Группа ресурсов Выберите группу ресурсов, содержащую ресурс нагрузочного тестирования.
    Имя подключения службы Введите уникальное имя подключения к службе.
    Предоставление разрешения на доступ ко всем конвейерам Проверено.
  6. В списке подключений служб выберите подключение, которое вы создали ранее, и выберите Управление служебным агентом.

    Снимок экрана, показывающий варианты управления учетной записью службы.

    Портал Azure открывается на отдельной вкладке браузера и отображает сведения о учетной записи службы.

  7. На портале Azure скопируйте значение Display name.

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

Предоставление доступа к Нагрузочное тестирование Azure

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

  1. На портале Azure/c0 перейдите к ресурсу Нагрузочное тестирование Azure.

  2. Выберите элемент управления доступом (IAM)>Добавить>Добавить назначение роли.

  3. На вкладке "Роль" выберите участника нагрузочного тестирования в списке ролей функций задания.

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

  4. На вкладке "Участники" выберите " Выбрать участников", а затем используйте отображаемое имя, скопированное ранее для поиска субъекта-службы.

  5. Выберите служебный принципал и нажмите Выбрать.

  6. На вкладке Обзор и назначение выберите Обзор и назначение, чтобы добавить назначение роли.

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

Добавление файлов нагрузочных тестов в репозиторий

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

Если у вас нет существующего нагрузочного теста, добавьте следующие файлы в репозиторий исходного кода:

  • Файл YAML конфигурации нагрузочного теста. Узнайте, как создать файл конфигурации нагрузочного теста YAML.
  • Файл плана тестирования. Для тестов на основе JMeter добавьте скрипт теста JMeter (JMX файл). Для тестов на основе Locust добавьте скрипт Locust (.py файл). Для тестов на основе URL-адресов добавьте JSON-файл с запросами.
  • Все файлы свойств пользователя JMeter.
  • Все входные файлы данных, которые использует план тестирования. Например, CSV-файлы данных.

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

  1. На портале Azure/c0 перейдите к ресурсу Нагрузочное тестирование Azure.

  2. На левой панели выберите "Тесты ", чтобы просмотреть список нагрузочных тестов, а затем выберите тест.

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

  3. Выберите многоточие (...) рядом с тестовым запуском, с которым вы работаете, и выберите "Скачать входной файл".

    Браузер скачивает архивную папку, содержащую входные файлы нагрузочного теста.

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

  4. Используйте любое zip-средство для извлечения входных файлов.

    Папка содержит следующие файлы:

    • config.yaml: файл конфигурации YAML нагрузочного теста. Вы ссылаетесь на этот файл в определении рабочего процесса CI/CD.
    • .jmx или .py: скрипт теста JMeter или Locust
    • Все дополнительные входные файлы, такие как CSV-файлы или файлы свойств пользователя, необходимые для запуска нагрузочного теста.
  5. Зафиксируйте все извлеченные входные файлы в репозиторий системы управления версиями.

    Используйте репозиторий исходного кода, в котором настраивается конвейер CI/CD.

Обновление определения рабочего процесса CI/CD

Нагрузочное тестирование Azure поддерживает GitHub Actions и Azure Pipelines для выполнения нагрузочных тестов.

Установите расширение Нагрузочное тестирование Azure для Azure DevOps

Чтобы создать и запустить нагрузочный тест, определение рабочего процесса Azure Pipelines использует расширение Нагрузочное тестирование Azure из Azure DevOps Marketplace.

  1. Откройте расширение задачи Нагрузочное тестирование Azure в Azure DevOps Marketplace и выберите Получить бесплатно.

  2. Выберите Azure DevOps организацию, а затем выберите Install, чтобы установить расширение.

    Если у вас нет прав администратора для выбранной организации Azure DevOps, выберите Request, чтобы запросить администратора установить расширение.

Обновление рабочего процесса Azure Pipelines

Обновите рабочий процесс Azure Pipelines, чтобы запустить нагрузочный тест для службы нагрузочного тестирования Azure.

  1. Войдите в организацию Azure DevOps (https://dev.azure.com/<your-organization>) и выберите проект.

  2. Выберите конвейеры в левой области навигации, выберите конвейер и выберите "Изменить ", чтобы изменить определение рабочего процесса.

    Кроме того, выберите Create Pipeline, чтобы создать новый конвейер в Azure Pipelines.

  3. Используйте задачу AzureLoadTest для запуска нагрузочного теста.

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

    Замените заполнители текста <load-testing-resource> и <load-testing-resource-group> именем ресурса Azure нагрузочного тестирования и группы ресурсов.

        - task: AzureLoadTest@1
          inputs:
            azureSubscription: $(serviceConnection)
            loadTestConfigFile: 'config.yaml'
            loadTestResource: <load-testing-resource>
            resourceGroup: <load-testing-resource-group>
    

    При необходимости можно передать параметры или секреты в нагрузочный тест с помощью env или secrets свойства. Установите значение waitForCompletion: false , если вы хотите продолжить, не ожидая завершения нагрузочного теста.

  4. Используйте задачу publish для публикации результатов теста в качестве артефактов в рабочем процессе Azure Pipelines.

        - publish: $(System.DefaultWorkingDirectory)/loadTest
          artifact: loadTestResults
    

Просмотр результатов нагрузочного теста

При запуске нагрузочного теста из конвейера CI/CD можно просмотреть сводные результаты непосредственно в журнале выходных данных CI/CD. Если вы опубликовали результаты теста в качестве артефакта сборочного процесса, вы также можете скачать CSV-файл для последующего создания отчетов.

Снимок экрана: сведения о ведении журнала рабочего процесса.

Очистите ресурсы

Если вы не планируете использовать какие-либо созданные ресурсы, удалите их, чтобы не нести никаких дополнительных расходов.

  1. Удалите изменения в Azure Pipelines.

    1. Войдите в организацию Azure DevOps (https://dev.azure.com/<your-organization>) и выберите проект.

      Замените текстовый заполнитель <your-organization> указателем вашего проекта.

    2. Если вы создали новый конвейер":

      1. Выберите конвейеры и выберите конвейер.

      2. Выберите многоточие и нажмите кнопку "Удалить".

        Скриншот, на котором показано, как удалить определение Azure Pipelines.

      3. Введите имя конвейера и нажмите кнопку "Удалить ", чтобы удалить конвейер.

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

  2. Удалите подключение службы:

    1. Выберите параметры Project>Service connections и выберите подключение к службе.
    2. Выберите "Редактировать" и >, чтобы удалить подключение службы.

Дальнейшие шаги

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