Share via


Testar pontos de extremidade privados implantando o Teste de Carga do Azure em uma rede virtual do Azure

Neste artigo, saiba como testar pontos de extremidade de aplicativos privados com o Teste de Carga do Azure. Você cria um recurso de Teste de Carga do Azure e o habilita para gerar carga de dentro de sua rede virtual (injeção de rede virtual).

Essa funcionalidade permite os seguintes cenário de uso:

  • Gerar carga para um ponto de extremidade implantado em uma rede virtual do Azure.
  • Gerar carga para um ponto de extremidade público com restrições de acesso, como restrição de endereços IP do cliente.
  • Gerar carga para um serviço local, não acessível publicamente, que está conectado ao Azure por meio do ExpressRoute.

Saiba mais sobre os cenários para implantação do Teste de Carga do Azure em sua rede virtual.

O diagrama seguinte fornece uma visão geral técnica:

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

Quando você inicia o teste de carga, o serviço de Teste de Carga do Azure injeta os seguintes recursos do Azure na rede virtual que contém o ponto de extremidade do aplicativo:

  • As máquinas virtuais do mecanismo de teste. Essas VMs invocam o ponto de extremidade do aplicativo durante o teste de carga.
  • Um endereço IP público.
  • Um NSG (grupo de segurança de rede).
  • Um Azure Load Balancer.

Esses recursos são efêmeros e existem somente enquanto o teste de carga está em execução. Se você tiver restrições na implantação de um endereço IP público, balanceador de carga do Azure ou grupo de segurança de rede em sua sub-rede, poderá desabilitar a implantação desses recursos. Para obter mais informações, consulte Configurar o teste de carga.

Se você restringir o acesso à sua rede virtual, precisará configurar sua rede virtual para habilitar a comunicação entre esses Testes de Carga do Azure e as VMs injetadas.

Pré-requisitos

Configurar rede virtual

Para testar pontos de extremidade privados, conecte o Teste de Carga do Azure a uma rede virtual do Azure. A rede virtual deve ter pelo menos uma sub-rede e permitir o tráfego de saída para o serviço de Teste de Carga do Azure.

Se você ainda não tiver uma rede virtual, siga estas etapas para criar uma rede virtual do Azure no portal do Azure.

Importante

A rede virtual deve estar na mesma assinatura e na mesma região que o recurso de teste de carga.

Criar uma sub-rede

Ao implantar o Teste de Carga do Azure em sua rede virtual, é recomendável usar sub-redes separadas para o Teste de Carga do Azure e para o ponto de extremidade do aplicativo. Essa abordagem permite que você configure políticas de acesso ao tráfego de rede especificamente para cada finalidade. Saiba mais sobre como adicionar uma sub-rede a uma rede virtual.

(Opcional) Configurar regras de tráfego

O Teste de Carga do Azure requer que as VMs injetadas em sua rede virtual tenham permissão de acesso de saída ao serviço de Teste de Carga do Azure. Por padrão, quando você cria uma rede virtual, o acesso de saída já é permitido.

Se você planeja restringir ainda mais o acesso à sua rede virtual com um grupo de segurança de rede ou se já tiver um grupo de segurança de rede, será necessário configurar uma regra de segurança de saída para permitir o tráfego das VMs do mecanismo de teste para o serviço de Teste de Carga do Azure.

Para configurar o acesso de saída para o Teste de Carga do Azure:

  1. Entre no portal do Azure.

  2. Vá para o grupo de segurança da rede.

    Se você ainda não tiver um NSG, siga estas etapas para criar um grupo de segurança de rede.

    Crie um NSG na mesma região que a rede virtual e associe-o à sub-rede.

  3. Selecione Regras de segurança de saída na navegação à esquerda.

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

  4. Selecione + Adicionar, para adicionar uma nova regra de segurança de saída. Insira as informações a seguir para criar uma nova regra.

    Campo Valor
    Origem Qualquer
    Intervalos de portas de origem *
    Destino Qualquer
    Intervalos de portas de destino *
    Nome azure-load-testing-outbound
    Descrição Usado para várias operações envolvidas na orquestração de testes de carga.
  5. Selecione Adicionar para adicionar a regra de segurança de saída ao grupo de segurança de rede.

Configurar o script do teste de carga

As VMs do mecanismo de teste, que executam o script JMeter, são injetadas na rede virtual que contém o ponto de extremidade do aplicativo. Agora você pode consultar diretamente o ponto de extremidade no arquivo JMX usando o endereço IP privado ou a resolução de nomes em sua rede.

Por exemplo, para um ponto de extremidade com endereço IP 10.179.0.7, em uma rede virtual com o intervalo de sub-rede 10.179.0.0/18, o arquivo JMX pode ter esta informação:

<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>

Configurar o teste de carga

Para incluir pontos de extremidade hospedados de modo privado no teste de carga, você precisa definir as configurações de rede virtual para o teste de carga. Você pode definir as configurações de rede virtual no portal do Azure ou especificá-las no arquivo de configuração de teste YAML para pipelines de CI/CD.

Importante

Ao implantar o Teste de Carga do Azure em uma rede virtual, você incorrerá em encargos adicionais. O Teste de Carga do Azure implanta um Azure Load Balancer e um endereço IP público em sua assinatura e pode haver um custo para o tráfego gerado. Para saber mais, veja as Informações de preço da Rede Virtual.

Configurar a rede virtual no portal do Azure

Você pode especificar as definições de configuração de rede virtual no assistente de criação/atualização de teste de carga.

  1. Entre no portal do Microsoft Azure usando as credenciais de assinatura do Azure.

  2. Acesse o recurso de Teste de Carga do Azure e selecione Testes no painel esquerdo.

  3. Abra o assistente de criação/atualização do teste de carga de duas maneiras:

    • Selecione + Criar > Carregar um script JMeter, se você quiser criar um novo teste.

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

    • Selecione um teste existente na lista e depois selecione Editar.

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

  4. Na guia Carregar, selecione modo de tráfego Privado e, e seguida, selecione sua rede virtual e sub-rede.

    Se você tiver várias sub-redes na rede virtual, selecione a sub-rede que hospedará as VMs injetadas do mecanismo de teste.

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

    Importante

    Verifique se você tem permissões suficientes para gerenciar redes virtuais. Você precisa da função Colaborador de Rede.

  5. (Opcional) Marque Desabilitar implantação de IP público se não quiser implantar um endereço IP público, balanceador de carga e grupo de segurança de rede em sua sub-rede.

    Ao selecionar essa opção, verifique se há um mecanismo alternativo como o Gateway NAT do Azure, o Firewall do Azure ou um dispositivo virtual de rede (NVA) para habilitar o roteamento de tráfego de saída da sub-rede.

  6. Examine ou preencha as informações do teste de carga. Siga estas etapas para criar ou gerenciar um teste.

  7. Selecione Examinar e criar e, em seguida, Criar (ou Aplicar, ao atualizar um teste existente).

    Quando o teste de carga é iniciado, o Teste de Carga do Azure injeta as VMs do mecanismo de teste na rede virtual e na sub-rede. O script de teste agora pode acessar o ponto de extremidade do aplicativo hospedado de forma privada em sua rede virtual.

Configurar a rede virtual para pipelines de CI/CD

Para definir o teste de carga com as configurações de rede virtual, atualize o arquivo de configuração de teste YAML.

  1. Abra um terminal e use a CLI do Azure para entrar na assinatura do Azure:

    az login
    az account set --subscription <your-Azure-Subscription-ID>
    
  2. Recupere a ID da sub-rede e copie o valor resultante:

    az network vnet subnet show -g <your-resource-group> --vnet-name <your-vnet-name> --name <your-subnet-name> --query id
    
  3. Abra o arquivo de configuração de teste YAML no seu editor favorito.

  4. Adicione a propriedade subnetId ao arquivo de configuração e forneça a ID da sub-rede copiada anteriormente:

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

    Opcionalmente, você pode definir a publicIPDisabled propriedade como True. Para obter mais informações sobre a configuração YAML, confira a referência a YAML da configuração de teste.

    Importante

    Verifique se você tem permissões suficientes para gerenciar redes virtuais. Você precisa da função Colaborador de Rede.

  5. Salve o arquivo de configuração YAML e confirme as alterações no repositório de código-fonte.

  6. Depois que o fluxo de trabalho de CI/CD é acionado, o teste de carga é iniciado e agora pode acessar o ponto de extremidade do aplicativo hospedado de forma privada em sua rede virtual.

Solução de problemas

A criação ou atualização do teste de carga falha com Subscription not registered with Microsoft.Batch (ALTVNET001)

Quando você configura um teste de carga em uma rede virtual, a assinatura precisa ser registrada com Microsoft.Batch.

  1. Tente criar ou atualizar o teste de carga novamente após alguns minutos.

  2. Se o erro persistir, siga estas etapas para registrar sua assinatura no provedor de recursos Microsoft.Batch manualmente.

A criação ou atualização do teste de carga falha com Subnet is not in the Succeeded state (ALTVNET002)

A sub-rede que você está usando para o teste de carga não está no estado Succeeded e não está pronta para implantar o teste de carga nela.

  1. Verifique o estado da sub-rede.

    Execute o comando da CLI do Azure a seguir para verificar o estado. O resultado deve ser Succeeded.

    az network vnet subnet show -g MyResourceGroup -n MySubnet --vnet-name MyVNet
    
  2. Resolva os problemas com a sub-rede. Se você acabou de criar a sub-rede, verifique o estado novamente após alguns minutos.

  3. Como alternativa, selecione outra sub-rede para o teste de carga.

Falha ao criar ou atualizar o teste de carga com o erro Subnet is delegated to other service (ALTVNET003)

A sub-rede usada para implantar o teste de carga não pode ser delegada a outro serviço do Azure. Remova a delegação existente ou selecione outra sub-rede que não esteja delegada a um serviço.

Saiba mais sobre como adicionar ou remover uma delegação de sub-rede.

Atualizar ou iniciar o teste de carga falha com User doesn't have subnet/join/action permission on the virtual network (ALTVNET004)

Para atualizar ou iniciar um teste de carga, você deve ter permissões suficientes para implantar o Teste de Carga do Azure na rede virtual. Você precisa da função Colaborador de Rede, ou um pai dessa função, na rede virtual.

  1. Veja Verificar o acesso de um usuário aos recursos do Azure para verificar suas permissões.

  2. Siga estas etapas para atribuir a função Colaborador de Rede à sua conta.

A criação ou atualização do teste de carga falha com IPv6 enabled subnet not supported (ALTVNET005)

O Teste de Carga do Azure não dá suporte a sub-redes habilitadas para IPv6. Selecione outra sub-rede para a qual o IPv6 não está habilitado.

A criação ou atualização do teste de carga falha com NSG attached to subnet is not in Succeeded state (ALTVNET006)

O NSG (grupo de segurança de rede) anexado à sub-rede não está no estado Succeeded.

  1. Verifique o estado do NSG.

    Execute o comando da CLI do Azure a seguir para verificar o estado. O resultado deve ser Succeeded.

    az network nsg show -g MyResourceGroup -n MyNsg
    
  2. Resolva os problemas com o NSG. Se você acabou de criar o NSG ou a sub-rede, verifique o estado novamente após alguns minutos.

  3. Como alternativa, selecione outro NSG.

A criação ou atualização do teste de carga falha com Route Table attached to subnet is not in Succeeded state (ALTVNET007)

A tabela de rotas anexada à sub-rede não está no estado Succeeded.

  1. Verifique o estado da tabela de rotas.

    Execute o comando da CLI do Azure a seguir para verificar o estado. O resultado deve ser Succeeded.

    az network route-table show -g MyResourceGroup -n MyRouteTable
    
  2. Resolva os problemas com a tabela de rotas. Se você acabou de criar a tabela de rotas ou a sub-rede, verifique o estado novamente após alguns minutos.

  3. Como alternativa, selecione outra tabela de rotas.

A criação ou atualização do teste de carga falha com Inbound not allowed from AzureLoadTestingInstanceManagement service tag (ALTVNET008)

Não é permitido o acesso de entrada da marca de serviço AzureLoadTestingInstanceManagement para a rede virtual.

Siga estas etapas para habilitar o acesso de tráfego para a marca de serviço AzureLoadTestingInstanceManagement.

A criação ou atualização do teste de carga falha com Inbound not allowed from BatchNodeManagement service tag (ALTVNET009)

Não é permitido o acesso de entrada da marca de serviço BatchNodeManagement para a rede virtual.

Siga estas etapas para habilitar o acesso de entrada para a marca de serviço BatchNodeManagement.

A criação ou atualização do teste de carga falha com Route Table has next hop set for address prefix 0.0.0.0/0

A tabela de rotas de sua sub-rede tem o tipo de conjunto de próximo salto definido como Solução de virtualização para a rota 0.0.0.0/0. Essa configuração causaria roteamento assimétrico para pacotes de rede ao provisionar as máquinas virtuais na sub-rede.

Execute uma das duas ações para resolver esse erro:

Saiba mais sobre o roteamento de tráfego da rede virtual.

A criação ou atualização do teste de carga falha com Subnet is in a different subscription than resource (ALTVNET011)

A rede virtual não está na mesma assinatura e região que o recurso de teste de carga do Azure. Mova ou recrie a rede virtual do Azure ou o recurso de teste de carga do Azure para a mesma assinatura e região.

O provisionamento falha com o erro An azure policy is restricting engine deployment to your subscription (ALTVNET012)

Uma política do Azure está restringindo a implantação do mecanismo de teste de carga à sua assinatura. Confira as suas restrições de política e tente novamente. Se você tiver restrições de política na implantação do endereço IP público, do balanceador de carga do Azure ou do grupo de segurança de rede, poderá desabilitar a implantação desses recursos. Consulte Configurar seu teste de carga.

O provisionamento falha com o erro Engines could not be deployed due to an error in subnet configuration (ALTVNET013)

As instâncias do mecanismo de teste de carga não puderam ser implantadas devido a um erro na configuração da sub-rede. Verifique sua configuração de sub-rede. Se o problema persistir, gere um tíquete com suporte junto com a ID de execução do teste.

  1. Verifique o estado da sub-rede.

    Execute o comando da CLI do Azure a seguir para verificar o estado. O resultado deve ser Succeeded.

    az network vnet subnet show -g MyResourceGroup -n MySubnet --vnet-name MyVNet
    
  2. Resolva os problemas com a sub-rede. Se você acabou de criar a sub-rede, verifique o estado novamente após alguns minutos.

  3. Se o problema persistir, abra uma solicitação de suporte ao cliente online.

    Forneça a ID de execução do teste de carga dentro da solicitação de suporte.

Falha ao iniciar o teste de carga com Subnet has {0} free IPs, {1} more free IP(s) required to run {2} engine instance load test (ALTVNET014)

A sub-rede usada para o Teste de Carga do Azure deve ter endereços IP não atribuídos suficientes para acomodar o número de mecanismos do teste de carga para o teste.

Siga estas etapas para atualizar as configurações de sub-rede e aumentar o intervalo de endereços IP.

Falha ao iniciar o teste de carga com Management Lock is enabled on Resource Group of VNET (ALTVNET015)

Se houver um bloqueio no grupo de recursos que contém a rede virtual, o serviço não poderá injetar as máquinas virtuais do mecanismo de teste em sua rede virtual. Remova o bloqueio de gerenciamento antes de executar o teste de carga. Saiba como configurar bloqueios no portal do Azure.

Falha ao iniciar o teste de carga com Insufficient public IP address quota in VNET subscription (ALTVNET016)

Quando você inicia o teste de carga, o Teste de Carga do Azure injeta os seguintes recursos do Azure na rede virtual que contém o ponto de extremidade do aplicativo:

  • As máquinas virtuais do mecanismo de teste. Essas VMs invocam o ponto de extremidade do aplicativo durante o teste de carga.
  • Um endereço IP público.
  • Um NSG (grupo de segurança de rede).
  • Um Azure Load Balancer.

Verifique se você tem cota para pelo menos um endereço IP público disponível em sua assinatura para usar no teste de carga.

Falha ao iniciar o teste de carga com Subnet with name "AzureFirewallSubnet" cannot be used for load testing (ALTVNET017)

A sub-rede AzureFirewallSubnet está reservada e você não pode usá-la para o Teste de Carga do Azure. Selecione outra sub-rede para o teste de carga.

Próximas etapas