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


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

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

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

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

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

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

Чтобы запустить нагрузочный тест в рабочем процессе CI/CD, необходимо предоставить разрешение рабочему процессу CI/CD для доступа к ресурсу нагрузочного тестирования. Создайте учетную запись службы для рабочего процесса CI/CD и назначьте роль Load Test Contributor в 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. В списке подключений служб выберите подключение, которое вы создали ранее, и выберите Управление служебным агентом.

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

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

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

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

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

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

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

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

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

    Снимок экрана, показывающий список ролей на странице «Добавление назначения ролей» в портале Azure, с выделением роли «Участник нагрузочного теста».

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Azure Load Testing поддерживает как GitHub Actions, так и 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-файл для последующего создания отчетов.

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

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

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

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

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

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

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

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

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

        Скриншот, показывающий, как удалить определение Azure Pipelines.

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

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

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

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

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

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