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:
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:
Inicie sessão no portal do Azure.
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.
Selecione Regras de segurança de saída na navegação à esquerda.
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. 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.
Entre no portal do Azure usando as credenciais para sua assinatura do Azure.
Vá para o recurso de Teste de Carga do Azure e selecione Testes no painel esquerdo.
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.
Selecione um teste existente na lista e, em seguida, selecione Editar.
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.
Importante
Verifique se você tem permissões suficientes para gerenciar redes virtuais. Você precisa da função de Colaborador de Rede .
(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.
Revise ou preencha as informações do teste de carga. Siga estas etapas para criar ou gerenciar um teste.
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.
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>
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
Abra seu arquivo de configuração de teste YAML em seu editor favorito.
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 comoTrue
. 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 .
Salve o arquivo de configuração do YAML e confirme suas alterações no repositório do código-fonte.
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
- Saiba mais sobre os cenários para implantar o Teste de Carga do Azure em uma rede virtual.
- Saiba como solucionar problemas de testes de ponto de extremidade privados.