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 permite que ele gere carga de dentro de sua rede virtual (injeção de rede virtual).

Esta funcionalidade possibilita os seguintes cenários de utilização:

  • Gerar carga para um ponto final implementado numa rede virtual do Azure.
  • Gerar carga para um ponto final público com restrições de acesso, como restrições dos endereços IP de cliente.
  • Gerar carga para um serviço no local, não acessível publicamente, que está ligado ao Azure através do ExpressRoute.

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

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

Diagrama que mostra a visão geral técnica da injeção de rede virtual do Teste de Carga do Azure.

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 grupo de segurança de rede (NSG).
  • Um balanceador de carga do Azure.

Esses recursos são efêmeros e existem apenas 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

  • Sua conta do Azure tem a função de Colaborador de Rede , ou um pai dessa função, na rede virtual. Consulte Verificar o acesso de um usuário aos recursos do Azure para verificar suas permissões.
  • A sub-rede que você usa para o Teste de Carga do Azure deve ter endereços IP não atribuídos suficientes para acomodar o número de mecanismos de teste de carga para seu teste. Saiba mais sobre como configurar seu teste para carga de alta escala.
  • A sub-rede não deve ser delegada a nenhum outro serviço do Azure. Por exemplo, ele não deve ser delegado às Instâncias de Contêiner do Azure (ACI). Saiba mais sobre a delegação de sub-redes.
  • A sub-rede não deve ter o IPv6 habilitado. O Teste de Carga do Azure não suporta sub-redes habilitadas para IPv6. Saiba mais sobre [IPv6 para Rede Virtual do Azure]. (/azure/virtual-network/ip-services/ipv6-overview)
  • CLI do Azure versão 2.2.0 ou posterior (se você estiver usando CI/CD). Execute az --version para localizar a versão instalada no seu computador. Se você precisar instalar ou atualizar a CLI do Azure, consulte Como instalar a CLI do Azure.

Configurar uma 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 ainda não tiver uma rede virtual, siga estes passos 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

Quando você implanta 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 configurar 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 exige que as VMs injetadas em sua rede virtual tenham 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, precisará 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. Inicie sessão no portal do Azure.

  2. Aceda ao seu grupo de segurança de rede.

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

    Crie o NSG na mesma região da sua rede virtual e, em seguida, associe-o à sua sub-rede.

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

    Captura de tela que mostra a página de visão geral do grupo de segurança de rede no portal do Azure, destacando as regras de segurança de saída.

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

    Campo Value
    Source 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 de 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 usar 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 intervalo de sub-rede 10.179.0.0/18, o arquivo JMX pode ter estas informações:

<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 forma privada em seu 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 cobranças adicionais. O Teste de Carga do Azure implanta um Balanceador de Carga do Azure e um endereço IP público em sua assinatura e pode haver um custo para o tráfego gerado. Para obter mais informações, consulte as informações de preços 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 Azure usando as credenciais para sua assinatura do Azure.

  2. Vá para o recurso de Teste de Carga do Azure e selecione Testes no painel esquerdo.

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

    • Selecione + Criar > upload de um script JMeter, se quiser criar um novo teste.

      Captura de tela que mostra a página Testes, destacando o botão para criar um novo teste.

    • Selecione um teste existente na lista e, em seguida, selecione Editar.

      Captura de tela que mostra a página Testes, destacando o botão para editar um teste.

  4. No separador Carregar, selecione Modo de tráfego privado e, em seguida, selecione a sua rede virtual e sub-rede.

    Se você tiver várias sub-redes em sua rede virtual, certifique-se de selecionar a sub-rede que hospedará as VMs do mecanismo de teste injetadas.

    Captura de tela que mostra a guia Carregar para criar ou atualizar um teste de carga.

    Importante

    Verifique se você tem permissões suficientes para gerenciar redes virtuais. Você precisa da função de 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. Revise ou preencha as informações do teste de carga. Siga estas etapas para criar ou gerenciar um teste.

  7. Selecione Rever + 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 em sua rede virtual e 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 configurar o teste de carga com suas 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 em sua assinatura do Azure:

    az login
    az account set --subscription <your-Azure-Subscription-ID>
    
  2. Recupere o 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 seu arquivo de configuração de teste YAML em seu editor favorito.

  4. Adicione a subnetId propriedade ao arquivo de configuração e forneça o ID da sub-rede copiado 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 do YAML, consulte Referência do YAML de configuração de teste.

    Importante

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

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

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

Resolução de Problemas

Para solucionar problemas na criação e execução de testes de carga em pontos de extremidade privados, consulte como solucionar problemas de testes de ponto de extremidade privados.

Próximos passos