Partilhar via


Guia de início rápido: criar e executar um teste de carga com o Visual Studio Code e o GitHub Copilot

Aprenda a utilizar a extensão de Teste de Carga do Azure para o Visual Studio Code para criar facilmente testes de carga Locust usando o Copilot, fazer iterações localmente e dimensionar sem esforço no Azure. Quer seja novo no Locust ou um especialista em testes de desempenho, a extensão Azure Load Testing simplifica a criação, iteração e dimensionamento de testes, diretamente a partir do seu ambiente VS Code. O Teste de Carga do Azure é um serviço gerenciado que permite executar um teste de carga em escala de nuvem. Locust é uma ferramenta de teste de carga de código aberto que permite que você escreva todos os seus testes em código Python.

Este guia de início rápido orienta-o na geração, refinamento e execução de testes de carga realistas. No final, você tem um script de teste de carga totalmente funcional gerado a partir de uma coleção Postman, coleção Insomnia ou arquivo .http, aprimorado com melhorias baseadas no Copilot e pronto para ser dimensionado no Teste de Carga do Azure.

Pré-requisitos

  • Extensão de Teste de Carga do Azure para VS Code. Faça o download e instale-o aqui.
  • Copiloto do GitHub. Configure o Copilot no VS Code para gerar e refinar scripts de teste. Se não tiver uma subscrição, pode ativar uma versão de avaliação gratuita.
  • Python & Locust. Necessário para executar e validar os seus scripts de teste de Locust localmente a partir do Visual Studio Code (VS Code). Instale Locust aqui.
  • Uma conta do Azure com uma assinatura ativa. Necessário para executar testes de carga em escala no Teste de Carga do Azure. Crie uma conta gratuitamente.

Sugestão

O GitHub Copilot Chat da VS Code oferece vários modelos de IA. Você pode alternar modelos usando o seletor de modelos no campo de entrada de chat. Se você não tiver certeza de qual usar, recomendamos GPT-4o.

Abra o passo a passo

Para começar, abra a paleta de comandos no VS Code e execute: Load Testing: Open Walkthrough. Este passo a passo fornece os principais pontos de entrada da extensão.

Você também pode acessar os recursos diretamente da paleta de comandos usando o prefixo Teste de Carga . Alguns comandos comumente usados incluem:

  • Teste de Carga: Criar teste de Locust

  • Teste de carga: Executar teste de carga (local)

  • Teste de Carga: Executar um teste de carga (Azure Load Testing)

    Captura de tela que mostra os principais pontos de entrada para a extensão VS Code do Teste de Carga do Azure.

Gerar um script Locust com Copilot

Você pode gerar um script Locust a partir de qualquer coleção Postman existente, coleção Insomnia ou arquivo .http. Se o arquivo contiver várias solicitações, o Copilot tentará sequenciá-las em um cenário coeso.

  1. Clique no botão Criar um teste de carga no passo a passo ou execute Teste de carga: Criar teste de gafanhotos a partir da paleta de comandos.

  2. Você pode escolher a fonte para gerar automaticamente um script de teste de gafanhotos:

    • A seleção de uma coleção Postman, coleção Insomnia ou arquivo .http permite que o Copilot extraia várias operações de API, dados de solicitação e detalhes de autenticação, criando um teste de carga mais completo e realista.
    • Escolher URL único permite que você insira um único URL de ponto final, gerando um script simples que você pode personalizar ou expandir.
  3. Para este passo a passo, você pode selecionar Try Sample: Pet Shop API, que usa o arquivo para gerar um script de teste de gafanhotos petstore-sample.http de exemplo.

  4. O Copilot analisa o ficheiro selecionado e gera um script de teste de carga baseado em Locust, sequenciando automaticamente os pedidos de API para simular o uso no mundo real e gerindo a autenticação de forma segura.

  5. Depois que o script for gerado, a janela Copilot Chat sugerirá outras etapas de configuração, como a definição de variáveis de ambiente. Se o Copilot sugerir variáveis de ambiente, crie um .env arquivo em seu projeto e adicione os valores recomendados.

Personalizar o script de teste de carga

Antes de executar o teste, você pode refiná-lo com o Copilot. Por exemplo, examinando o script, você pode notar que a mesma carga útil de solicitação é enviada com cada solicitação:

payload = {
    "id": self.pet_id,
    "name": "Fluffy",
    "category": {"id": 1, "name": "Dogs"},
    "photoUrls": ["https://example.com/photo.jpg"],
    "tags": [{"id": 1, "name": "cute"}],
    "status": "available"
}

Para tornar o teste mais dinâmico, randomizando a carga útil da solicitação:

  1. Abra o painel Copilot Chat .
  2. Digite: Randomize request payloads e pressione Enter.
  3. O copiloto gera uma modificação sugerida para introduzir a randomização.
  4. Clique em Aplicar no Editor que aparece acima do trecho de código gerado na janela Copilot Chat.
  5. Depois de analisar as alterações, clique em Manter para aceitar e atualizar o script.
  6. Salve o arquivo

Agora, cada solicitação simula uma interação do usuário mais realista. O código se parece com o seguinte trecho:

payload = {
    "id": self.pet_id,
    "name": f"Pet{random.randint(1, 1000)}",
    "category": {"id": random.randint(1, 10), "name": random.choice(["Dogs", "Cats", "Birds"])},
    "photoUrls": [f"https://example.com/photo{random.randint(1, 100)}.jpg"],
    "tags": [{"id": random.randint(1, 10), "name": random.choice(["cute", "friendly", "playful"])}],
    "status": random.choice(["available", "pending", "sold"])
}

Executar o teste de carga

Você pode executar o teste de carga de duas maneiras:

  • Executar localmente para validação rápida
  • Executar no Teste de Carga do Azure para carga em alta escala de várias regiões

Executar localmente para validação rápida

Para validar rapidamente seu teste, execute-o localmente usando Locust do Visual Studio Code:

  1. Abra a paleta de comandos e execute: Teste de carga: Execute o teste de carga (local).

  2. A interface do usuário da Web Locust é iniciada automaticamente em um navegador. Pode levar alguns segundos para que o servidor Locust esteja pronto e para o navegador abrir.

  3. Na página Iniciar novo teste de carga , revise os campos de entrada e clique em Iniciar. O gafanhoto começa a enviar solicitações, registrar quaisquer falhas e acompanhar estatísticas de desempenho.

    Captura de tela que mostra a interface do usuário da Web Locust para executar um teste de carga localmente.

  4. Explore a interface do usuário Locust para analisar tempos de resposta, taxas de erro e taxa de transferência de solicitações.

    Captura de tela que mostra a interface do usuário da Web Locust para exibir e analisar os resultados do teste localmente.

Sugestão

Se o Locust relatar falhas para as solicitações Retrieve Pet e Update Pet, pode ser devido à forma como a API da Pet Store processa as solicitações. Tente pedir ao Copilot para "Adicionar atrasos aleatórios entre solicitações no run_scenario". Se você suspeitar de um problema com o script em si, defina DEBUG_MODE=True como uma variável de ambiente e execute novamente o teste para obter informações de depuração mais detalhadas.

Se preferir executar o teste a partir de um terminal VS Code:

  1. Abra um terminal no VS Code.

  2. Execute o seguinte comando:

    locust -f path/to/locustfile.py -u 10 -r 2 --run-time 1m
    
    • -f path/to/locustfile.py: Especifica o script de teste Locust.
    • -u 10: Simula até 10 usuários virtuais.
    • -r 2: Aumenta dois utilizadores virtuais por segundo.
    • --run-time 1m: Executa o teste durante 1 minuto.
  3. Abra um navegador e aceda a http://0.0.0.0:8089 para visualizar a interface Web do Locust.

Escalar no Teste de Carga do Azure

Para cenários de alta carga em que você precisa simular milhares de usuários virtuais simultâneos em várias regiões, você pode executar seu teste no Teste de Carga do Azure.

Para executar um teste em larga escala:

  1. Abra a paleta de comandos e execute: Teste de Carga: Executar teste de carga (Teste de Carga do Azure).

  2. Selecione Criar um arquivo de configuração....

  3. Siga a configuração guiada, que inclui:

    • Iniciar sessão no Azure e selecionar a sua subscrição.

    • Criar um novo recurso de Teste de Carga do Azure ou selecionar um existente.

    • Escolher regiões de teste de carga para distribuir o tráfego globalmente.

  4. Quando a instalação estiver concluída, um arquivo de configuração do YAML (por exemplo, loadtest.config.yaml) será gerado e adicionado à pasta raiz do espaço de trabalho.

    • Esse arquivo define o script Locust, parâmetros de carregamento, variáveis de ambiente, regiões e quaisquer outros arquivos (por exemplo, conjuntos de dados CSV).

    • Os valores predefinidos são 200 utilizadores virtuais executando durante 120 segundos em cada região selecionada.

    • Confirme esse arquivo em seu repositório para reutilizar e automatizar futuras execuções de teste de carga.

  5. O Copilot valida a configuração antes da execução. Siga todas as instruções fornecidas na janela de chat. Caso contrário, se tudo der certo, o script de teste e seus artefatos relacionados serão carregados no Teste de Carga do Azure e preparados para execução. Esse processo pode levar até um minuto e o progresso é mostrado no painel Saída .

    Captura de tela que mostra o progresso do teste de carga no console de saída do VS Code.

  6. Quando o teste começa, uma notificação (mensagem de notificação instantânea) aparece no canto inferior direito do VS Code. Clique no botão Abrir no Portal do Azure para monitorar a execução do teste em tempo real.

  7. Quando o teste é iniciado, uma notificação (mensagem tipo toast) aparece no canto inferior direito. Clique no botão Abrir no Portal do Azure para monitorar a execução do teste em tempo real.

    Captura de tela que mostra os resultados do teste de carga no Teste de Carga do Azure.

Sugestão

Para acessar rapidamente os resultados de testes de execuções anteriores, use o comando: Teste de carga: Exibir execuções de teste de carga.

Neste início rápido, variáveis confidenciais como API_KEY foram armazenadas em um .env arquivo e carregadas para o serviço de nuvem. No entanto, como prática recomendada, os segredos devem ser gerenciados com segurança no Cofre de Chaves do Azure. A extensão fornece orientações sobre como configurar isso.

Até agora, neste início rápido, variáveis sensíveis como API_KEY foram armazenadas em um .env arquivo e carregadas para o serviço de nuvem. No entanto, como prática recomendada, os segredos devem ser gerenciados com segurança no Cofre de Chaves do Azure. A extensão fornece orientações sobre como configurar isso.

  1. Abra a janela Copilot Chat , digite @testing /setupLoadTestSecretsInAzure e pressione Enter.

  2. O Copilot orienta-o através dos seguintes passos:

  3. O Copilot guia-o através de:

    • Criando um Cofre de Chaves do Azure.
    • Atribuir uma identidade gerenciada ao seu recurso de Teste de Carga do Azure.
    • Adicionar segredos ao Cofre de Chaves do Azure.
    • Configurando o arquivo YAML para fazer referência aos segredos do Key Vault em vez de .env.

Sempre que você modificar seu script Locust ou configuração YAML, poderá executar novamente o teste executando Executar teste de carga (Teste de Carga do Azure).

Resumo

Neste início rápido, utilizou a extensão Azure Load Testing para o Visual Studio Code para criar facilmente testes de carga Locust utilizando o Copilot, iterar localmente e escalar sem esforço no Azure. A extensão de Teste de Carga do Azure para VS Code simplifica o processo de criação de um script de teste realista para seu cenário de teste. O Teste de Carga do Azure abstrai a complexidade da configuração da infraestrutura para simular a carga de usuário de alta escala para seu aplicativo.

Você pode expandir ainda mais o teste de carga para monitorizar também as métricas do servidor do aplicativo sob carga e especificar métricas de falha nos testes para receber um alerta quando o aplicativo não atender aos seus requisitos. Para garantir que o aplicativo continue a ter um bom desempenho, você também pode integrar testes de carga como parte de seu fluxo de trabalho de integração contínua e implantação contínua (CI/CD).