View a markdown version of this page

Crie um cenário de teste - Teste de carga distribuído na AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Crie um cenário de teste

A criação de um cenário de teste envolve quatro etapas principais: definir as configurações gerais, definir o cenário, moldar os padrões de tráfego e revisar sua configuração.

Etapa 1: configurações gerais

Configure os parâmetros básicos para seu teste de carga, incluindo nome do teste, descrição e opções gerais de configuração.

Identificação do teste

  • Nome do teste (obrigatório) - Um nome descritivo para seu cenário de teste

  • Descrição do teste (Obrigatório) - Detalhes adicionais sobre a finalidade e a configuração do teste

  • Tags (opcional) - adicione até 5 tags para categorizar e organizar seus cenários de teste

Opções de agendamento

Configure quando o teste deve ser executado:

  • Executar agora - Execute o teste imediatamente após a criação.

  • Executar uma vez - Agende o teste para ser executado em uma data e hora específicas.

  • Executar em um cronograma - Use o agendamento baseado em cron para executar testes automaticamente em intervalos regulares. Você pode selecionar padrões comuns (a cada hora, diariamente, semanalmente) ou definir uma expressão cron personalizada. Para obter detalhes sobre o formato cron aceito, os padrões suportados e as restrições, consulte a referência da expressão Cron no Guia do desenvolvedor.

Fluxo de trabalho de agendamento

Quando você agenda um teste, ocorre o seguinte fluxo de trabalho:

  • Os parâmetros do cronograma são enviados para a API da solução por meio do Amazon API Gateway.

  • A API passa os parâmetros para uma função Lambda que cria uma EventBridge programação do Amazon Scheduler configurada para ser executada na data especificada.

  • Para testes únicos (Executar uma vez), a EventBridge programação do Scheduler invoca a função api-services Lambda na data e hora especificadas, que executa o teste.

  • Para testes recorrentes (Run on a Schedule), o EventBridge agendamento do Scheduler invoca a função api-services Lambda imediatamente e na cadência definida pela expressão cron ou rate até a data de expiração.

Dados dinâmicos

Marque a caixa de seleção Incluir dados ativos para visualizar métricas em tempo real enquanto o teste está sendo executado. Quando ativado, você pode monitorar:

  • Tempo médio de resposta.

  • Contagens de usuários virtuais.

  • A solicitação bem-sucedida conta.

  • Contagens de solicitações falhadas.

O recurso de dados ao vivo fornece gráficos em tempo real com dados agregados em intervalos de um segundo. Para obter mais informações, consulte Monitoramento com dados ativos.

Etapa 2: configuração do cenário

Defina o cenário de teste específico e selecione sua estrutura de teste preferida.

Seleção do tipo de teste

Escolha o tipo de teste de carga que você deseja realizar:

  • Endpoint HTTP único - Teste um único endpoint de API ou página da web com configuração simples.

  • JMeter - Carregue scripts de teste do JMeter (arquivos.jmx ou arquivos.zip).

  • K6 - Faça upload de scripts de teste K6 (arquivos.js ou arquivos.zip).

  • Locust - Faça upload dos scripts de teste do Locust (arquivos.py ou arquivos.zip).

nota

Todos os quatro tipos de teste dependem de componentes de terceiros. A solução executa testes por meio da estrutura de automação de testes Taurus, que executa JMeter, K6 ou Locust, dependendo do tipo de teste; testes de endpoint HTTP único são convertidos em um plano de teste do JMeter e executados pelo pacote Apache JMeter. Antes de criar um teste, revise as estruturas de Third-party teste para considerações de segurança, informações de licença e opções de patches.

Configuração do endpoint HTTP

Quando “Endpoint HTTP único” é selecionado, a solução gera um plano de teste do JMeter a partir de sua configuração e o executa com o binário Apache JMeter incluído. Defina estas configurações:

Endpoint HTTP (obrigatório)

Insira o URL completo do endpoint que você deseja testar. Por exemplo, .https://api.example.com/users Garanta que o endpoint seja acessível a partir da infraestrutura da AWS.

Método HTTP (obrigatório)

Selecione o método HTTP para suas solicitações. O padrão é GET. Outras opções incluem POSTPUT,DELETE, PATCHHEAD,, OPTIONS e.

Cabeçalho da solicitação (opcional)

Adicione cabeçalhos HTTP personalizados às suas solicitações. Os exemplos comuns incluem:

  • Content-Type: application/json

  • Authorization: Bearer <token>

  • User-Agent: LoadTest/1.0

    Escolha Adicionar cabeçalho para incluir vários cabeçalhos.

Carga útil do corpo (opcional)

Adicione o conteúdo do corpo da solicitação para solicitações POST ou PUT. Suporta formatos JSON, XML ou texto sem formatação. Por exemplo: {"userId": 123, "action": "test"}.

Scripts de estrutura de teste

Ao usar o JMeter, o K6 ou o Locust, faça o upload do arquivo do script de teste ou de um arquivo.zip contendo o script de teste e os arquivos de suporte. Para o JMeter, você pode incluir plug-ins personalizados em uma /plugins pasta dentro do seu arquivo.zip.

Importante

Embora seu script de teste (JMeter, K6 ou Locust) possa definir simultaneidade (usuários virtuais), taxas de transação (TPS), tempos de aceleração e outros parâmetros de carga, a solução substituirá essas configurações pelos valores especificados na tela do Traffic Shape durante a criação do teste. A configuração do Traffic Shape controla a contagem de tarefas, a simultaneidade (usuários virtuais por tarefa), a duração do aumento e a duração da espera para a execução do teste.

Etapa 3: forma do tráfego

Configure como o tráfego será distribuído durante o teste, incluindo suporte multirregional.

Multi-region configuração de tráfego

Selecione uma ou mais regiões da AWS para distribuir seu teste de carga geograficamente. Para cada região selecionada, configure:

Contagem de tarefas

O número de contêineres (tarefas) que serão lançados no cluster Fargate para o cenário de teste. Tarefas adicionais não serão criadas quando a conta atingir o limite “O recurso Fargate foi atingido”.

Simultaneidade

O número de usuários virtuais simultâneos gerados por tarefa. O limite recomendado é baseado nas configurações padrão de 2 vCPUs por tarefa. A simultaneidade é limitada pelos recursos de CPU e memória.

Determine o número de usuários

O número de usuários que um contêiner pode suportar para um teste pode ser determinado aumentando gradualmente o número de usuários e monitorando o desempenho na Amazon CloudWatch. Depois de observar que o desempenho da CPU e da memória está se aproximando do limite, você atingiu o número máximo de usuários que um contêiner pode suportar para esse teste em sua configuração padrão (2 vCPU e 4 GB de memória).

Processo de calibração

Você pode começar a determinar os limites de usuários simultâneos para seu teste usando o exemplo a seguir:

  1. Crie um teste com no máximo 200 usuários.

  2. Enquanto o teste é executado, monitore a CPU e a memória usando o CloudWatch console:

    1. No painel de navegação, em Container Insights, selecione Monitoramento de desempenho.

    2. Na página Monitoramento de desempenho, no menu suspenso esquerdo, selecione ECS Clusters.

    3. No menu suspenso à direita, selecione seu cluster do Amazon Elastic Container Service (Amazon ECS).

  3. Durante o monitoramento, observe a CPU e a memória. Se a CPU não ultrapassar 75% ou a memória não ultrapassar 85% (ignore picos únicos), você poderá executar outro teste com um número maior de usuários.

Repita as etapas de 1 a 3 se o teste não exceder os limites de recursos. Opcionalmente, você pode aumentar os recursos do contêiner para permitir um número maior de usuários simultâneos. No entanto, isso resulta em um custo maior. Para obter detalhes, consulte o Guia do desenvolvedor.

nota

Para obter resultados precisos, execute somente um teste por vez ao determinar os limites de usuários simultâneos. Todos os testes usam o mesmo cluster, e o CloudWatch container insights agrega os dados de desempenho com base no cluster. Isso faz com que os dois testes sejam reportados ao CloudWatch Container Insights simultaneamente, o que resulta em métricas imprecisas de utilização de recursos para um único teste.

Para obter mais informações sobre como calibrar usuários por motor, consulte Calibrando um teste Taurus na documentação. BlazeMeter

nota

A solução exibe as informações de capacidade disponíveis para cada região, ajudando você a planejar sua configuração de teste dentro dos limites disponíveis.

Tabela de tarefas disponíveis

A Tabela de Tarefas Disponíveis exibe a disponibilidade de recursos para cada região selecionada:

  • Região - O nome da região da AWS.

  • vCPUs por tarefa - O número de CPUs virtuais alocadas para cada tarefa (padrão: 2).

  • Limite de tarefas DLT - O número máximo de tarefas que podem ser criadas com base na cota de vCPU sob demanda da Fargate da sua conta. As novas contas geralmente têm uma cota menor; verifique seu limite atual no console Service Quotas e solicite um aumento, se necessário.

  • Tarefas DLT disponíveis - O número atual de tarefas disponíveis na região, calculado como seu limite de tarefas DLT menos as vCPUs já em uso ao executar tarefas do Fargate.

Para aumentar o número de tarefas ou vCPUs disponíveis por tarefa, consulte o Guia do desenvolvedor.

Duração do teste

Defina por quanto tempo seu teste de carga será executado:

Ramp Up

A hora de atingir a simultaneidade desejada. A carga aumenta gradualmente de 0 para o nível de simultaneidade configurado durante esse período.

Espere por

A duração para manter a carga alvo. O teste continua em total concorrência durante esse período.

Etapa 4: revisar e criar

Revise todas as suas configurações antes de criar o cenário de teste. Verificar:

  • Configurações gerais (nome, descrição, cronograma).

  • Configuração do cenário (tipo de teste, endpoint ou script).

  • Forma do tráfego (tarefas, usuários, duração, regiões).

Depois de revisar, escolha Criar para salvar seu cenário de teste.

Gerenciando cenários de teste

Depois de criar um cenário de teste, você pode:

  • Editar - Modifique a configuração do teste. Entre os casos de uso comuns estão:

    • Refinando a forma do tráfego para atingir a taxa de transação desejada.

  • Copiar - Duplique um cenário de teste existente para criar variações. Entre os casos de uso comuns estão:

    • Atualizando endpoints ou adicionando headers/body parâmetros.

    • Adicionar ou modificar scripts de teste.

  • Excluir - Remova cenários de teste que você não precisa mais.