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ê pode ter ouvido essa palavra fascinante entre sua equipe ou lido em blogs de tecnologia e também pode parecer intimidante em primeiro lugar. O Docker é uma plataforma de conteinerização que empacota o código-fonte do aplicativo e todos os pacotes de dependência juntos em um formulário chamado contêiner do 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 facilita muito a criação, implantação e execução de 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. Ele ajuda no 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 o Golang 1.11 e um projeto com a versão 1.12 do Golang, o Docker pode ajudar a segregar isso e criar imagens para ambos e até mesmo executar ambos em paralelo em contêiner diferente 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, com cada adição ou alteração de recurso, podemos executar um teste de desempenho para comparar e proteger o impacto do desempenho devido a alterações 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 integrado ao 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 fator enorme para levar os visitantes da porta on-line 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 pela qual sua experiência é ruim é porque existem 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 mudança ou desenvolvimento de novos recursos, podemos executar testes de carga ou estresse no aplicativo através do nosso plugin LoadView , que pode ser integrado ao Jenkins.

Veremos agora as etapas envolvidas para executar testes de carga por meio da integração do 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 do Docker e do 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 até 5 testes gratuitos para começar.