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

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

Эта функция включает следующие сценарии использования:

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

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

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

Diagram that shows the Azure Load Testing virtual network injection technical overview.

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

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

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

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

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

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

    Screenshot that shows the network security group overview page in the Azure portal, highlighting Outbound security rules.

  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, если вы хотите создать новый тест.

      Screenshot that shows the Tests page, highlighting the button for creating a new test.

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

      Screenshot that shows the Tests page, highlighting the button for editing a test.

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

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

    Screenshot that shows the Load tab for creating or updating a load test.

    Важно!

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

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

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

Создание или обновление нагрузочного теста завершается сбоем Subscription not registered with Microsoft.Batch (ALTVNET001)

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

  1. Повторите попытку создать или обновить нагрузочный тест через несколько минут.

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

Создание или обновление нагрузочного теста завершается сбоем Subnet is not in the Succeeded state (ALTVNET002)

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

  1. Проверьте состояние подсети.

    Выполните следующую команду Azure CLI, чтобы проверить состояние. Результат должен быть Succeeded.

    az network vnet subnet show -g MyResourceGroup -n MySubnet --vnet-name MyVNet
    
  2. Устраните все проблемы с подсетью. Если вы только что создали подсеть, проверьте состояние снова через несколько минут.

  3. Кроме того, выберите другую подсеть для нагрузочного теста.

Создание или обновление нагрузочного теста завершается сбоем Subnet is delegated to other service (ALTVNET003)

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

Дополнительные сведения о добавлении или удалении делегирования подсети.

Обновление или запуск нагрузочного теста завершается сбоем User doesn't have subnet/join/action permission on the virtual network (ALTVNET004)

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

  1. Ознакомьтесь с разделом "Проверка доступа для пользователя к ресурсам Azure", чтобы проверить ваши разрешения.

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

Создание или обновление нагрузочного теста завершается сбоем IPv6 enabled subnet not supported (ALTVNET005)

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

Создание или обновление нагрузочного теста завершается сбоем NSG attached to subnet is not in Succeeded state (ALTVNET006)

Группа безопасности сети (NSG), подключенная к подсети, не находится в Succeeded состоянии.

  1. Проверьте состояние группы безопасности сети.

    Выполните следующую команду Azure CLI, чтобы проверить состояние. Результат должен быть Succeeded.

    az network nsg show -g MyResourceGroup -n MyNsg
    
  2. Устраните все проблемы с NSG. Если вы только что создали группу безопасности сети или подсеть, проверьте состояние снова через несколько минут.

  3. Кроме того, выберите другую группу безопасности сети.

Создание или обновление нагрузочного теста завершается сбоем Route Table attached to subnet is not in Succeeded state (ALTVNET007)

Таблица маршрутов, подключенная к подсети, отсутствует в Succeeded состоянии.

  1. Проверьте состояние таблицы маршрутов.

    Выполните следующую команду Azure CLI, чтобы проверить состояние. Результат должен быть Succeeded.

    az network route-table show -g MyResourceGroup -n MyRouteTable
    
  2. Устраните все проблемы с таблицей маршрутов. Если вы только что создали таблицу маршрутов или подсеть, проверьте состояние снова через несколько минут.

  3. Кроме того, выберите другую таблицу маршрутов.

Создание или обновление нагрузочного теста завершается сбоем Inbound not allowed from AzureLoadTestingInstanceManagement service tag (ALTVNET008)

Входящий доступ из тега AzureLoadTestingInstanceManagement службы в виртуальную сеть не разрешен.

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

Создание или обновление нагрузочного теста завершается сбоем Inbound not allowed from BatchNodeManagement service tag (ALTVNET009)

Входящий доступ из тега BatchNodeManagement службы в виртуальную сеть не разрешен.

Выполните следующие действия, чтобы включить входящий доступ для тега BatchNodeManagement службы.

Создание или обновление нагрузочного теста завершается сбоем Route Table has next hop set for address prefix 0.0.0.0/0

В таблице маршрутов подсети задан тип следующего прыжка для виртуального (модуль) для маршрута 0.0.0.0/0/0. Эта конфигурация приведет к асимметричной маршрутизации сетевых пакетов при подготовке виртуальных машин в подсети.

Выполните одно из двух действий, чтобы устранить эту ошибку:

  • Используйте другую подсеть, которая не имеет пользовательских маршрутов.
  • Измените таблицу маршрутов подсети и задайте тип следующего прыжка для маршрута 0.0.0.0/0/0 в Интернет.

Дополнительные сведения о маршрутизации трафика виртуальной сети.

Создание или обновление нагрузочного теста завершается сбоем Subnet is in a different subscription than resource (ALTVNET011)

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

Сбой подготовки An azure policy is restricting engine deployment to your subscription (ALTVNET012)

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

Сбой подготовки Engines could not be deployed due to an error in subnet configuration (ALTVNET013)

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

  1. Проверьте состояние подсети.

    Выполните следующую команду Azure CLI, чтобы проверить состояние. Результат должен быть Succeeded.

    az network vnet subnet show -g MyResourceGroup -n MySubnet --vnet-name MyVNet
    
  2. Устраните все проблемы с подсетью. Если вы только что создали подсеть, проверьте состояние снова через несколько минут.

  3. Если проблема сохранится, откройте запрос в службу поддержки клиентов в Интернете.

    Укажите идентификатор запуска нагрузочного теста в запросе на поддержку.

Запуск нагрузочного теста завершается сбоем Subnet has {0} free IPs, {1} more free IP(s) required to run {2} engine instance load test (ALTVNET014)

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

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

Запуск нагрузочного теста завершается сбоем Management Lock is enabled on Resource Group of VNET (ALTVNET015)

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

Запуск нагрузочного теста завершается сбоем Insufficient public IP address quota in VNET subscription (ALTVNET016)

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

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

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

Запуск нагрузочного теста завершается сбоем Subnet with name "AzureFirewallSubnet" cannot be used for load testing (ALTVNET017)

Подсеть AzureFirewallSubnet зарезервирована и ее нельзя использовать для нагрузочного тестирования Azure. Выберите другую подсеть для нагрузочного теста.

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