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

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

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

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

Необходимые компоненты

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

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

Создание сервисного подключения в Azure Pipelines

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

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

    Замените заполнитель текста идентификатором <your-organization> проекта.

  2. Выберите параметры>> службы "Параметры проекта" и "Создать подключение службы".

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

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

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

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

    Screenshot that shows selections for managing a service principal.

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

  7. Скопируйте значение отображаемого имени в портал Azure.

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

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

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

  1. В портал Azure перейдите к ресурсу Azure Load Testing.

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

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

    Screenshot that shows the list of roles in the Add role assignment page in the Azure portal, highlighting the Load Test Contributor role.

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

  5. Выберите субъект-службу и нажмите кнопку "Выбрать".

  6. На вкладке "Рецензирование и назначение" нажмите кнопку "Рецензирование" и "Назначить", чтобы добавить назначение роли.

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

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

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

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

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

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

  1. В портал Azure перейдите к ресурсу Azure Load Testing.

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

    Screenshot that shows the list of tests for an Azure Load Testing resource.

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

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

    Screenshot that shows how to download the results file for a load test run.

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

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

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

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

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

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

Установка расширения Azure Load Testing для Azure DevOps

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

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

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

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

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

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

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

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

    Кроме того, выберите "Создать конвейер", чтобы создать новый конвейер в 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 свойства.

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

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

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

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

Screenshot that shows the workflow logging information.

Очистка ресурсов

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

  1. Удаление изменений в Azure Pipelines:

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

      Замените заполнитель текста идентификатором <your-organization> проекта.

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

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

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

        Screenshot that shows how to delete an Azure Pipelines definition.

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

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

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

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

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

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