Compartilhar 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 do Teste de Carga do Azure e o habilita para gerar carga de dentro da 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:

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 seu 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 apenas enquanto o teste de carga está em execução. Se você tiver restrições quanto à implantação de um endereço público, do Azure Load Balancer ou de um grupo de segurança de rede em sua sub-rede, você poderá desabilitar a implantação desses recursos. Para obter mais informações, consulte Configurar seu 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 a conta do Azure tem a função Colaborador de Rede, ou um pai dessa função, na rede virtual. Veja Verificar o acesso de um usuário aos recursos do Azure para verificar suas permissões.
  • 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. Saiba mais sobre como configurar o teste para carga de alta escala.
  • A sub-rede não deve ser delegada a qualquer outro serviço do Azure. Por exemplo, ela não deve ser delegada à ACI (Instâncias de Contêiner do Azure). Saiba mais sobre a delegação de sub-rede.
  • A sub-rede não deve ter o IPv6 habilitado. O Teste de Carga do Azure não dá suporte a sub-redes habilitadas para IPv6. Saiba mais sobre o IPv6 para a Rede Virtual do Azure
  • CLI do Azure versão 2.2.0 ou posterior (se você estiver usando CI/CD). Execute az --version para localizar a versão que está instalada em seu computador. Se precisar instalar ou atualizar a CLI, do Azure, confira Como instalar a CLI do Azure.

Configurar rede virtual

Para testar pontos de extremidade privados, você conecta 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 do 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 do 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 exige que as VMs injetadas em sua rede virtual tenham permissão de acesso de saída ao serviço 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, você 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. Entre no portal do Azure.

  2. Vá para 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 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.

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

  4. Selecione + Adicionar, para adicionar uma nova regra de segurança de saída. Inserir as seguintes informações 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 configurar as configurações da 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 configurações de configuração da rede virtual no assistente de criação/atualização do 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.

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

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

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

  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.

    Captura de tela que mostra a guia Carregar para a criação ou atualização de um teste de carga.

    Importante

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

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

    Quando você selecionar essa opção, verifique se há um mecanismo alternativo, como o Gateway da NAT do Azure, Firewall do Azure ou um aparelho virtual de rede (NVA) para habilitar o roteamento do 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 propriedade publicIPDisabled 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. Após o gatilho do fluxo de trabalho de CI/CD, seu 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

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

Próximas etapas