Compartilhar via


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

Saiba como usar a extensão Teste de carga do Azure para o Visual Studio Code e criar com facilidade testes de carga Locust com o Copilot, iterar localmente e escalar sem esforço no Azure. Seja você iniciante no Locust ou um especialista em teste de desempenho, a extensão Teste de carga do Azure simplifica a criação, iteração e escala de testes diretamente no seu ambiente do 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 escrever todos os seus testes em código Python.

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

Pré-requisitos

  • Extensão Teste de carga do Azure para o VS Code. Baixe e instale aqui.
  • GitHub Copilot. Configure o Copilot no VS Code para gerar e refinar scripts de teste. Se você não tiver uma assinatura, poderá ativar uma avaliação gratuita.
  • Python e Locust. Necessário para executar e validar seus scripts de teste Locust localmente a partir do VS Code. Instale o 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.

Dica

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

Abrir o passo a passo

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

Você também pode acessar os recursos diretamente pela paleta de comandos usando o prefixo Load Testing. Alguns comandos usados com frequência incluem:

  • Teste de carga: criar teste Locust

  • Teste de carga: executar o teste de carga (local)

  • Load Testing: Run load test (Teste de Carga do Azure)

    Captura de tela mostrando os principais pontos de entrada da extensão Teste de carga do Azure para o VS Code.

Gerar um script Locust com o Copilot

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

  1. Clique no botão Criar um teste de carga no passo a passo ou execute Load Testing: Create Locust test na paleta de comandos.

  2. Você pode escolher a origem para gerar automaticamente um script de teste Locust:

    • Selecionar uma coleção do Postman, coleção do 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 uma URL única permite inserir um único ponto de extremidade, gerando um script simples que você pode personalizar ou expandir.
  3. Neste passo a passo, você pode selecionar Experimentar amostra: Pet Shop API, que usa o arquivo petstore-sample.http para gerar um script de teste Locust de exemplo.

  4. O Copilot analisa o arquivo selecionado e gera um script de teste de carga baseado em Locust, organizando automaticamente as solicitações de API para simular o uso real e lidar com a autenticação de forma segura.

  5. Assim que o script for gerado, a janela do Copilot Chat sugerirá outras etapas de configuração, como definir variáveis de ambiente. Se o Copilot sugerir variáveis de ambiente, crie um arquivo .env no 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, ao examinar o script, você pode notar que o mesmo payload de solicitação é enviado em todas as requisições:

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, aleatorizando o payload da solicitação:

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

Agora, cada solicitação simula uma interação de usuário mais realista. O código ficará semelhante ao 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 seu teste de carga de duas maneiras:

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

Executar localmente para validação rápida

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

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

  2. A interface do usuário Web do Locust é aberta automaticamente em um navegador. Pode levar alguns segundos até que o servidor Locust esteja pronto e o navegador seja aberto.

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

    Captura de tela mostrando a interface Web do Locust para executar um teste de carga localmente.

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

    Captura de tela mostrando a interface Web do Locust para exibir e analisar resultados de teste localmente.

Dica

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

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

  1. Abra um terminal no VS Code.

  2. Execute o comando a seguir:

    locust -f path/to/locustfile.py -u 10 -r 2 --run-time 1m
    
    • -f path/to/locustfile.py: especifica o script de teste do Locust.
    • -u 10: simula até 10 usuários virtuais.
    • -r 2: aumenta dois usuários virtuais por segundo.
    • --run-time 1m: executa o teste por 1 minuto.
  3. Abra um navegador em http://0.0.0.0:8089 para exibir a interface Web do Locust.

Escalar verticalmente no Teste de carga do Azure

Para cenários de alta carga, em que é preciso simular muitos 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:

    • Entrar no Azure e selecionar sua assinatura.

    • Criar um 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 configuração estiver concluída, um arquivo de configuração YAML (por exemplo, loadtest.config.yaml) será gerado e adicionado à pasta raiz do seu espaço de trabalho.

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

    • Os padrões são 200 usuários virtuais executando por 120 segundos em cada região selecionada.

    • Faça commit desse 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 as instruções fornecidas na janela de chat. Caso contrário, se tudo estiver correto, 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 é exibido no painel Saída.

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

  6. Quando o teste começar, uma notificação (mensagem do sistema) aparecerá 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 começar, uma notificação (mensagem do sistema) aparecerá 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 mostrando os resultados do teste de carga no Teste de carga do Azure.

Dica

Para acessar rapidamente os resultados de teste 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 arquivo .env e carregadas no serviço de nuvem. No entanto, como melhor prática, segredos devem ser gerenciados com segurança no Azure Key Vault. A extensão fornece diretrizes para configurar isso.

Até agora, neste início rápido, variáveis confidenciais como API_KEY foram armazenadas em um arquivo .env e carregadas no serviço de nuvem. No entanto, como melhor prática, segredos devem ser gerenciados com segurança no Azure Key Vault. A extensão fornece diretrizes para configurar isso.

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

  2. O Copilot orientará você pelas seguintes etapas:

  3. O Copilot orientará você para:

    • Criar um Azure Key Vault.
    • Atribuir uma identidade gerenciada ao recurso de teste de carga do Azure.
    • Adicionar segredos ao Azure Key Vault.
    • Configurar o arquivo YAML para referenciar segredos do Key Vault em vez de .env.

Sempre que modificar o script Locust ou a configuração YAML, será possível executar novamente o teste usando Executar teste de carga (Teste de Carga do Azure).

Resumo

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

Você pode expandir ainda mais o teste de carga para também monitorar as métricas do lado do servidor do aplicativo sob carga e especificar métricas de falha de teste para ser alertado 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 o teste de carga como parte do fluxo de trabalho de CI/CD (integração contínua e implantação contínua).