Considerações sobre design - 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á.

Considerações sobre design

Esta seção descreve decisões de projeto e opções de configuração importantes para a solução Distributed Load Testing on AWS, incluindo aplicativos compatíveis, tipos de teste, opções de agendamento e considerações de implantação.

Aplicações compatíveis

Essa solução oferece suporte ao teste de aplicativos baseados em nuvem e aplicativos locais, desde que você tenha conectividade de rede da sua conta da AWS com seu aplicativo. A solução APIs suporta o uso de protocolos HTTP ou HTTPS.

Tipos de teste

O teste de carga distribuído na AWS oferece suporte a vários tipos de teste: testes simples de endpoint HTTP JMeter, K6 e Locust.

Testes simples de endpoint HTTP

O console web fornece uma interface de configuração de endpoint HTTP que permite testar qualquer endpoint HTTP ou HTTPS sem escrever scripts personalizados. Você define o URL do endpoint, seleciona o método HTTP (GET, POST, PUT, DELETE etc.) em um menu suspenso e, opcionalmente, adiciona cabeçalhos e cargas de corpo de solicitação personalizados. Essa configuração permite que você teste APIs com tokens de autorização personalizados, tipos de conteúdo ou quaisquer outros cabeçalhos HTTP e corpos de solicitação exigidos pelo seu aplicativo.

JMeter testes

Ao criar um cenário de teste usando o console web, você pode carregar um script JMeter de teste. A solução carrega o script no bucket S3 dos cenários. Quando as tarefas do Amazon ECS são executadas, elas baixam o JMeter script do S3 e executam o teste.

Importante

Embora seu JMeter script possa definir simultaneidade (usuários virtuais), taxas de transação (TPS), tempos de aceleração e outros parâmetros de carregamento, a solução substituirá essas configurações pelos valores especificados na tela 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.

Se você tiver arquivos JMeter de entrada, poderá compactá-los junto com o JMeter script. Você pode escolher o arquivo zip ao criar um cenário de teste.

Se você quiser incluir plug-ins, todos os arquivos.jar incluídos em um subdiretório /plugins no arquivo zip incluído serão copiados para o diretório de JMeter extensões e estarão disponíveis para teste de carga.

nota

Se você incluir arquivos JMeter de entrada com seu arquivo de JMeter script, deverá incluir o caminho relativo dos arquivos de entrada em seu arquivo de JMeter script. Além disso, os arquivos de entrada devem estar no caminho relativo. Por exemplo, quando os arquivos JMeter de entrada e o arquivo de script estiverem em/home/user directory and you refer to the input files in the JMeter script file, the path of input files must be ./INPUT_FILES. If you use /home/user/INPUT_FILES, o teste falhará porque não conseguirá encontrar os arquivos de entrada.

Se você incluir JMeter plug-ins, os arquivos.jar deverão ser agrupados em um subdiretório chamado /plugins na raiz do arquivo zip. Em relação à raiz do arquivo zip, o caminho para os arquivos jar deve ser. /Plugins/bundled_plugin.jar.

Para obter mais informações sobre como usar JMeter scripts, consulte o Manual do JMeter usuário.

Testes K6

A solução oferece suporte a testes baseados na estrutura K6. O K6 é lançado sob a licença AGPL-3.0. A solução exibe uma mensagem de confirmação de licença ao criar um novo teste K6. Você pode carregar o arquivo de teste K6 junto com todos os arquivos de entrada necessários em um arquivo de arquivamento.

Importante

Embora seu script K6 possa definir simultaneidade (usuários virtuais), estágios, limites e outros parâmetros de carga, a solução substituirá essas configurações pelos valores especificados na tela 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.

testes de gafanhotos

A solução oferece suporte a testes baseados na estrutura Locust. Você pode carregar o arquivo de teste do Locust junto com todos os arquivos de entrada necessários em um arquivo compactado.

Importante

Embora seu script Locust possa definir simultaneidade (contagem de usuários), taxa de geração e outros parâmetros de carga, a solução substituirá essas configurações pelos valores que você especificar 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.

Agendamento de testes

A solução fornece três opções de tempo de execução para executar testes de carga:

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

  • Executar uma vez - Execute o teste em uma data e hora específicas no futuro

  • Executar em um cronograma - Crie testes recorrentes usando expressões cron para definir o cronograma

Ao selecionar Executar uma vez, você especifica o tempo de execução no formato de 24 horas e a data de execução em que o teste de carga deve começar a ser executado.

Ao selecionar Executar em uma programação, você pode inserir manualmente uma expressão cron ou selecionar padrões cron comuns (como a cada hora, diariamente em um horário específico, dias da semana ou mensalmente). A expressão cron usa um formato de agendamento refinado com campos para minutos, horas, dia do mês, mês, dia da semana e ano. Você também deve especificar uma data de expiração, que define quando o teste agendado deve parar de ser executado. Para obter mais informações sobre como o agendamento funciona, consulte a seção Fluxo de trabalho de agendamento de testes deste guia.

nota
  • Duração do teste: considere a duração total dos testes ao agendar. Por exemplo, um teste com tempo de aceleração de 10 minutos e tempo de espera de 40 minutos levará aproximadamente 80 minutos para ser concluído.

  • Intervalo mínimo: garanta que o intervalo entre os testes programados seja maior do que a duração estimada do teste. Por exemplo, se o teste levar cerca de 80 minutos, programe-o para ser executado no máximo a cada 3 horas.

  • Limitação horária: o sistema não permite que os testes sejam agendados com apenas uma hora de diferença, mesmo que a duração estimada do teste seja inferior a uma hora.

Testes simultâneos

Essa solução cria um CloudWatch painel da Amazon para cada teste que exibe a saída combinada de todas as tarefas executadas no cluster do Amazon ECS em tempo real. O CloudWatch painel mostra o tempo médio de resposta, o número de usuários simultâneos, o número de solicitações bem-sucedidas e o número de solicitações malsucedidas. A solução agrega cada métrica por segundo e atualiza o painel a cada minuto.

Gerenciamento de usuários

Durante a configuração inicial, você fornece um nome de usuário e endereço de e-mail que o Amazon Cognito usa para conceder acesso ao console web da solução. O console não fornece administração de usuários. Para adicionar mais usuários, você deve usar o console do Amazon Cognito. Para obter mais informações, consulte Gerenciamento de usuários em grupos de usuários no Guia do desenvolvedor do Amazon Cognito.

Para migrar usuários existentes para grupos de usuários do Amazon Cognito, consulte o blog da AWS Abordagens para migrar usuários para grupos de usuários do Amazon Cognito.

Implantação regional

Essa solução usa o Amazon Cognito, que está disponível somente em regiões específicas da AWS. Portanto, você deve implantar essa solução em uma região onde o Amazon Cognito esteja disponível. Para obter a disponibilidade de serviços mais atual por região, consulte a Lista de serviços regionais da AWS.