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

Aplicações compatíveis

Essa solução oferece suporte a aplicativos baseados em nuvem e aplicativos locais, desde que você tenha uma conexão de rede da sua conta da AWS com seu aplicativo. A solução oferece suporte para APIs o uso de HTTP ou HTTPS. Você também tem controle sobre os cabeçalhos da solicitação HTTP, para poder adicionar cabeçalhos de autorização ou personalizados para transmitir tokens ou chaves de API.

JMeter suporte a scripts

Ao criar um cenário de teste usando a interface de usuário (UI) dessa solução, você pode usar um script JMeter de teste. Depois de selecionar o arquivo de JMeter script, ele é carregado no bucket <stack-name>-scenariosbucket do Amazon Simple Storage Service (Amazon S3). Quando as tarefas do Amazon Elastic Container Service (Amazon ECS) estão em execução, JMeter o script é baixado do bucket do <stack-name>Amazon S3 -scenariosbucket e o teste é executado.

Se você tiver arquivos JMeter de entrada, poderá compactar os arquivos de entrada 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 seus arquivos JMeter de entrada e 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.

Suporte ao script K6

A solução oferece suporte a testes baseados na estrutura K6. O K6 é lançado com a licença AGPL-3.0. A solução exibe uma mensagem de confirmação de licença ao criar um novo teste para o K6. O arquivo de teste K6 junto com todos os arquivos de entrada necessários podem ser incluídos em um arquivo e enviados para o cenário de teste usando a opção de upload.

Suporte ao script Locust

A solução oferece suporte a testes baseados na estrutura Locust. O arquivo de teste do Locust junto com todos os arquivos de entrada necessários podem ser incluídos em um arquivo e enviados para o cenário de teste usando a opção de upload.

Agendamento de testes

Você pode agendar testes para serem executados em uma data futura ou usar a opção Executar agora. Você pode agendar um teste como uma execução única no futuro ou configurar um teste recorrente no qual você especifica a data da primeira execução e a recorrência planejada. As opções de recorrência incluem: diária, semanal, quinzenal e mensal. Para obter mais informações sobre como o agendamento funciona, consulte a seção Fluxo de trabalho de agendamento de testes deste guia.

A partir da versão 3.3.0, o Distributed Load Testing na AWS permite que os usuários programem testes de carga usando expressões cron. Selecione Executar de acordo com o cronograma e, em seguida, a guia CRON para inserir manualmente um valor cron ou usar os campos suspensos. cronExpiryDate Deve corresponder à data de execução do teste programada. Revise as datas da próxima execução (UTC) para confirmar sua programação.

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 inclui um CloudWatch painel da Amazon para cada teste e exibe a saída combinada de todas as tarefas executadas para esse teste no cluster do Amazon ECS em tempo real. O CloudWatch painel exibe 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. Cada métrica é agregada a cada segundo e o painel é atualizado 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.