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

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

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

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

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

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

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

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

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

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

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

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

  • Ваша учетная запись Azure имеет роль участника сети или родитель этой роли в виртуальной сети. Ознакомьтесь с разделом "Проверка доступа для пользователя к ресурсам 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. Выберите "Добавить ", чтобы добавить правило безопасности исходящего трафика в группу безопасности сети.

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

Виртуальные машины подсистемы тестирования, выполняющие скрипт JMeter, внедряются в виртуальную сеть, содержащую конечную точку приложения. Теперь можно напрямую ссылаться на конечную точку в JMX-файле с помощью частного 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. Откройте мастер создания и обновления нагрузочного теста двумя способами:

    • Выберите + Создать > скрипт JMeter, если вы хотите создать новый тест.

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

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

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

  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 запускается нагрузочный тест и теперь может получить доступ к частной конечной точке приложения в виртуальной сети.

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

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

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