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


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

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

Эта функция включает указанные ниже сценарии использования.

  • Создайте нагрузку на конечную точку, развернутую в виртуальной сети Azure.
  • Создайте нагрузку на общедоступную конечную точку с ограничениями доступа (например, ограничением IP-адресов клиента).
  • Создайте нагрузку на локальную службу (не общедоступную), которая подключена к Azure через ExpressRoute.

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

На следующей схеме представлен технический обзор:

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

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

  • Виртуальные машины подсистемы тестирования. Эти виртуальные машины вызывают конечную точку приложения во время нагрузочного теста.
  • Общедоступный IP-адрес.
  • Группа безопасности сети (NSG).
  • Балансировщик нагрузки Azure.

Эти ресурсы являются временными и существуют только во время выполнения нагрузочного теста. Если у вас есть ограничения на развертывание общедоступного IP-адреса, подсистемы балансировки нагрузки Azure или группы безопасности сети в подсети, можно отключить развертывание этих ресурсов. Дополнительные сведения см. в разделе "Настройка нагрузочного теста".

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

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

  • Ваша учетная запись Azure имеет роль Network Contributor, или родительскую роль этого назначения, в виртуальной сети. Ознакомьтесь с разделом "Проверка доступа для пользователя к ресурсам Azure", чтобы проверить ваши разрешения.
  • Подсеть, используемая для нагрузочного тестирования Azure, должна иметь достаточное количество свободных IP-адресов, чтобы вместить количество движков нагрузочного тестирования для вашего теста. Узнайте больше о настройке теста для высокомасштабируемой нагрузки.
  • Подсеть не должна быть делегирована какой-либо другой службе Azure. Например, его не следует делегировать Экземпляры контейнеров Azure (ACI). Дополнительные сведения о делегировании подсети.
  • Подсеть не должна включать IPv6. Нагрузочное тестирование Azure не поддерживает подсети с поддержкой IPv6. Узнайте больше об IPv6 для виртуальной сети Azure
  • Azure CLI версии 2.2.0 или более поздней версии (если вы используете CI/CD). Запустите az --version , чтобы найти версию, установленную на компьютере. Если вам нужно установить или обновить Azure CLI, см . инструкции по установке Azure CLI.

Настройка виртуальной сети

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

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

Внимание

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

Создание подсети

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

(Необязательно) Настройка правил трафика

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

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

Чтобы настроить исходящий доступ для Azure Load Testing, выполните приведенные действия.

  1. Войдите на портал Azure.

  2. Перейдите в группу безопасности сети.

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

    Создайте СЗГ в том же регионе, что и ваша виртуальная сеть, а затем свяжите её с подсетью.

  3. Выберите правила безопасности исходящего трафика в области навигации слева.

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

  4. Нажмите кнопку +Добавить, чтобы добавить новое правило безопасности исходящего трафика. Введите следующие сведения, чтобы создать новое правило.

    Поле Значение
    Источник Any
    Диапазоны исходных портов *
    Назначение Any
    Диапазоны портов назначения *
    Имя azure-load-testing-outbound
    Description Используется для различных операций, связанных с оркестрацией нагрузочных тестов.
  5. Выберите "Добавить ", чтобы добавить правило безопасности исходящего трафика в группу безопасности сети.

Настройка скрипта нагрузочного теста

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

Например, для конечной точки с IP-адресом 10.179.0.7 в виртуальной сети с диапазоном подсети 10.179.0.0/18 файл JMX может иметь следующие сведения:

<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Internal service homepage" enabled="true">
  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="Service homepage" enabled="true">
    <collectionProp name="Arguments.arguments"/>
  </elementProp>
  <stringProp name="HTTPSampler.domain">10.179.0.7</stringProp>
  <stringProp name="HTTPSampler.port">8081</stringProp>
  <stringProp name="HTTPSampler.protocol"></stringProp>
  <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  <stringProp name="HTTPSampler.path"></stringProp>
  <stringProp name="HTTPSampler.method">GET</stringProp>
</HTTPSamplerProxy>

Настройка нагрузочного теста

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

Внимание

При развертывании нагрузочного тестирования Azure в виртуальной сети взимается дополнительная плата. Azure Load Testing развертывает Azure Load Balancer и общедоступный IP-адрес в вашей подписке, и за созданный трафик может взиматься плата. Дополнительные сведения см. в разделе о ценах на виртуальную сеть.

Настройте виртуальную сеть в портале Azure

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

  1. Войдите на портал Azure с помощью учетных данных вашей подписки Azure.

  2. Перейдите к ресурсу Нагрузочного тестирования Azure и выберите "Тесты " в левой области.

  3. Откройте мастер создания и обновления нагрузочного теста двумя способами:

    • Выберите + Создать > Загрузите сценарий, если вы хотите создать новый тест.

      Снимок экрана: страница

    • Выберите существующий тест из списка и нажмите кнопку "Изменить".

      Снимок экрана: страница

  4. На вкладке "Загрузка" выберите режим частного трафика, а затем выберите виртуальную сеть и подсеть.

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

    Снимок экрана: вкладка

    Внимание

    Убедитесь, что у вас есть достаточные разрешения для управления виртуальными сетями. Вам требуется роль участника сети.

  5. (Необязательно) Установите флажок Отключить развертывание общедоступного IP-адреса, если вы не хотите развертывать общедоступный IP-адрес, подсистему балансировки нагрузки и группу безопасности сети в подсети.

    При выборе этого параметра убедитесь, что существует альтернативный механизм, например шлюз Azure NAT, Брандмауэр Azure или сетевое виртуальное устройство (NVA), чтобы включить маршрутизацию исходящего трафика из подсети.

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

  7. Выберите "Просмотреть + создать и затем Создать (или Применить, если обновляете существующий тест).

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

Настройка виртуальной сети для конвейеров CI/CD

Чтобы настроить нагрузочный тест с параметрами виртуальной сети, обновите файл конфигурации теста YAML.

  1. Откройте терминал и используйте Azure CLI для входа в подписку Azure:

    az login
    az account set --subscription <your-Azure-Subscription-ID>
    
  2. Получите идентификатор подсети и скопируйте полученное значение:

    az network vnet subnet show -g <your-resource-group> --vnet-name <your-vnet-name> --name <your-subnet-name> --query id
    
  3. Откройте файл конфигурации тестов YAML в избранном редакторе.

  4. Добавьте свойство subnetId в файл конфигурации и укажите ранее скопированный идентификатор подсети.

    version: v0.1
    testName: SampleTest
    testPlan: SampleTest.jmx
    description: 'Load test the website home page'
    engineInstances: 1
    subnetId: <your-subnet-id>
    publicIPDisabled: False
    

    При необходимости, можно задать значение для свойства publicIPDisabled к True. Для получения дополнительной информации о конфигурации YAML см. справочник по тестовой конфигурации YAML.

    Внимание

    Убедитесь, что у вас есть достаточные разрешения для управления виртуальными сетями. Вам требуется роль участника сети.

  5. Сохраните файл конфигурации YAML и зафиксируйте изменения в репозитории исходного кода.

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

Устранение неполадок

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

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