O teste de carga é muito importante para medir o desempenho do site, do aplicativo web e da API durante picos de tráfego normais, pesados ou até mesmo repentinos. Este post ajudará a entender os testes de carga usando contêineres Docker com ferramentas de CI (Continuous Integration, integração contínua). A abordagem Docker para carregar aplicativos de teste permite compartilhar os testes entre usuários e replicar o ambiente de teste facilmente usando contêineres Docker. Explicaremos brevemente o que é docker e usando contêineres Docker e ferramentas usadas para carregar aplicativos de teste via CI.

 

O que é Docker?

estivador! Você deve ter ouvido essa palavra fascinante entre sua equipe ou lido em blogs de tecnologia e também pode soar intimidante em primeiro lugar. O Docker é uma plataforma de containerização que embala o código-fonte do seu aplicativo e todos os pacotes de dependência juntos em um formulário chamado contêiner Docker. Ele garante que o aplicativo seja executado em qualquer ambiente sem pensar na sobrecarga das configurações do sistema operacional ou do sistema. Não é legal!

Além disso, o Docker é uma ferramenta popular que torna muito fácil construir, implantar e executar aplicativos usando contêineres. Devido a isso, nossa aplicação pode ser executada em qualquer lugar com o mesmo comportamento. E o importante, Docker, é o código aberto.

 

O que é um Contêiner Docker?

Um contêiner Docker é um pacote leve, autônomo e executável de software que inclui tudo o que um aplicativo precisa: codebase, bibliotecas de sistemas, ferramentas do sistema e configurações. Um contêiner envolve o código e suas dependências, o que ajuda o aplicativo a funcionar de forma rápida e confiável de um ambiente para outro.

 

Com o Docker, os desenvolvedores podem se concentrar em escrever código sem se preocupar com o sistema em que o aplicativo é executado, isso torna o aplicativo portátil. A forma como um aplicativo é executado em sua máquina local seria tão próxima ou igual à produção.

 

Principais características do Docker

  • Facilmente escalável. Devido aos recipientes leves, os recipientes de docker podem girar em segundos e podem facilmente escalar.
  • Aumenta a produtividade. Facilita a sobrecarga técnica para desenvolvimento de aplicativos, configuração do ambiente. Além disso, ajuda a executar a aplicação em um ambiente isolado e reduz o uso de recursos.
  • Isolamento de aplicativos. Cada aplicativo é independente um do outro e executa aplicativos isoladamente.
  • Redução dos custos de infraestrutura e manutenção. Ele ajuda a suportar que as plataformas existentes sejam movidas facilmente para o Docker, que funciona de forma automatizada, reduzindo, portanto, os custos de manutenção.
  • Enxame. Swarm é uma ferramenta de agrupamento e agendamento para contêineres Docker. Ele permite que o usuário gerencie vários contêineres implantados em várias máquinas host.
  • Malha de roteamento. Ajuda no caminho de roteamento e equilíbrio do tráfego para os contêineres.

 

Benefícios do Docker

  • O Docker permite a portabilidade do aplicativo.
  • O Docker permite ciclos de lançamento mais rápidos de desenvolvimento.
  • Brilha com arquitetura de microsserviço.
  • O Docker fornece um ambiente de isolamento para aplicações.
  • O Docker permite um dimensionamento horizontal mais rápido e fácil de aplicações.
  • Permite o uso eficiente dos recursos.

 

Docker Dentro de Ferramentas CI

O maior benefício com Docker é que não tendemos a nos preocupar com conflitos de dependência. Por exemplo, se quisermos construir um projeto com Golang 1.11 e um projeto com a versão Golang 1.12, o Docker pode ajudar a segregar isso e criar imagens para ambos e até mesmo executar ambos em paralelo em recipientes diferentes sem conflitos, o que não seria possível fazer em um servidor. As imagens cozidas com diferentes versões podem ser salvas no registro e podem ser usadas como parte de ferramentas de integração contínua como jenkins.

Jenkins fornece suporte neste caso, onde ele escolhe imagens disponíveis do Docker construídas para teste de desempenho ou teste de integração e sobrecarga para cozinhar imagens do Docker do zero é salva. Cache de camada docker economiza muito tempo aqui. Como parte do nosso pipeline de CI, precisamos criar uma imagem Docker para um teste de desempenho e esta imagem pode ser executada usando CI para realizar um teste de desempenho de aplicação. Podemos até automatizar essa etapa, a cada adição ou alteração de recursos, podemos executar um teste de desempenho para benchmark e salvaguardar o impacto de desempenho devido às mudanças recentes.

 

Limitações do uso do Docker para testes de desempenho

Embora o Docker tenha muitas vantagens, ele tem algumas limitações ao fazer o teste de desempenho:

  • Quando executamos uma simulação de teste de carga pesada usando vários contêineres Docker na mesma máquina, ele pode consumir muita CPU do servidor em execução, o que pode afetar nossos resultados de teste.
  • O relatório de teste de desempenho via Docker não tem detalhes suficientes do aplicativo.
  • Talvez precisemos ajustar o so do host e os recipientes onde os testes de desempenho estão sendo executados.
  • Como os contêineres Docker são descartáveis, pode levar à perda de relatório.

Para nos salvar de todas essas limitações, podemos usar uma solução como o LoadView, que pode ser facilmente integrada com jenkins, para ajudar a automatizar o processo de teste de desempenho.

 

Integração do teste de carga loadview com Jenkins

Sempre que testamos qualquer aplicação, testamos se ele está funcionando funcionalmente como esperado. Se isso funcionar, marcamos que a funcionalidade do aplicativo está funcionando bem. Mas no mundo real, o mesmo aplicativo é usado por centenas, ou mesmo milhares de usuários, o que pode trazer suas próprias complicações. É fundamental saber que sua aplicação pode enfrentar as demandas de tráfego esperadas, especialmente se for fundamental para gerar receita.

Obviamente, nem todos os aplicativos estão vinculados à geração de receita, mas independentemente disso, a experiência do usuário ainda é um grande fator para levar os visitantes da porta online para o balcão de checkout on-line. Se em qualquer momento durante esse processo sua experiência for lenta, atrasada ou simplesmente confusa, eles perderão o interesse imediatamente. Eles não se importam que a razão de sua experiência ser ruim é porque há milhares de outros usuários em seu site ou aplicativo ao mesmo tempo. Até onde sabem, eles pensam que são os únicos usando sua aplicação. Difícil de acreditar, mas é verdade. Assim como o mundo real, eles devem esperar em filas como todo mundo às vezes. Apenas certifique-se de que sua espera seja perfeita, agradável, e não muito longa.

Precisamos validar se nossa aplicação pode lidar com esse tráfego. Assim, a cada alteração ou novo desenvolvimento de recursos, podemos executar testes de carga ou estresse no aplicativo através do nosso plugin LoadView que pode ser integrado com Jenkins.

Agora analisaremos as etapas envolvidas para executar testes de carga através da integração Jenkins com o LoadView:

  1. Antes de começarmos a usar um cenário de teste de carga do LoadView para testar sua compilação no Jenkins, precisamos ter um cenário de teste no LoadView, onde podemos adicionar uma lista de APIs que precisa ser testada por estresse.
  2. Para iniciar a integração com jenkins, precisamos de um identificador LoadView Unique para usar como token LoadView Security.
  3. No LoadView, crie um UID de integração em > integrações de conta > Adicione > API web de teste de carga de integração. Copie este UID de integração.

Interface do usuário de integração do Docker

 

  1. Para definir o teste de estresse, precisaríamos de teste de níveis de ção. O ID do cenário pode ser encontrado na página de configuração do cenário, conforme mostrado abaixo.

Cenário de teste de carga do Docker

 

Configuração do plugin LoadView em Jenkins

  1. Faça login na sua conta jenkins.
  2. Em Jenkins, vá para Credenciais > Adicionar credenciais > LoadView Security Token (UID). Configure e valide as credenciais:
  • Tipo:LoadView Security Token (UID).
  • Escopo: Definido como Global.
  • ID: Deixe o padrão ou especifique um ID exclusivo.
  • Descrição: Digite uma descrição única para diferenciá-la de outros testes.
  • UID: Digite o UID da sua conta LoadView. Uma vez adicionado, selecione Validar UID para garantir que Jenkins esteja acessível à API LoadView.

3. Em seguida, selecione um trabalho e clique em Configurar

Docker Jenkins

 

  1. Vá para Criar > ações pós-construção > Adicione o cenário de teste de carga load load da > LoadView-Runapós a construção . Especifique as configurações do teste de estresse do LoadView para a compilação:
  • Credenciais: Selecione a tecla API usando a descrição.
  • ID de cenário: Cole o ID do cenário de teste que deseja usar na compilação. Copie o ID da página de cenário no LoadView.
  • Limite de erro: Aqui você pode definir o limiar de erro aceitável para o seu cenário específico. Se a porcentagem passar desse limite, será sinalizada como uma falha dentro de Jenkins.
  • Tempo médio: Especifique o limite médio de tempo de resposta durante o teste. Como o limiar de erro, se o limite for excedido, ele será registrado como falha em Jenkins.
  1. Clique em Salvar.

Ver resultados do teste:

Quando o teste está sendo executado, o status é exibido, em tempo real, na saída do consoleJenkins .

Saída do console Jenkins

 

Resultados de desempenho de Jenkins

 

Wrap Up: Teste de carga de aplicativo docker

Embora o Docker tenha muitas vantagens, pode haver limitações ao executar testes de carga com carga pesada, como consumir muita CPU no servidor, ao usar vários recipientes Docker na mesma máquina, o que pode afetar drasticamente os resultados dos testes. Com uma solução como o LoadView, que pode ser facilmente integrado com ferramentas de CI como jenkins, somos capazes de criar e gerenciar testes de carga com milhares de conexões simultâneas a partir de uma nuvem totalmente gerenciada.

Este artigo foi uma breve introdução ao uso de Docker e Jenkins para executar testes de carga baseados em nuvem. Configure uma demonstração com um de nossos engenheiros de desempenho para saber mais sobre como configurar cenários de teste e configurar testes de carga com o LoadView.

Experimente a plataforma LoadView hoje e obtenha US$ 20 em créditos de teste de carga para começar.