Maximizando a performance do seu sistema com Testes de Carga utilizando Jmeter!
Olá amigos, no nosso último artigo, expliquei a importância dos testes de performance e como instalar o Jmeter. Você não leu ainda? 😱😱😱, dê uma olhada nesse link aqui.
Neste artigo, vamos nos aprofundar no Teste de Carga (Load Testing), bora lá.
Resumidamente falando, o Teste de Carga é um tipo de teste de performance que visa avaliar a capacidade de um sistema de suportar uma determinada carga de usuários ao mesmo tempo. Ele simula o tráfego real de um sistema, permitindo que os desenvolvedores identifiquem pontos fracos e problemas antes que eles afetem os usuários. Permite inclusive determinar como seu software se comportará durante condições normais e de pico de carga.
Exemplos práticos de utilização de Testes de Carga:
- Avaliar a capacidade de um site de e-commerce durante períodos de alta demanda, como promoções ou feriados (Black Friday, por exemplo).
- Verificar se um aplicativo de jogos pode lidar com o aumento do número de jogadores ao mesmo tempo (Campeonatos estaduais e mundiais de games).
- Lançamento de uma campanha publicitária (Dia dos Pais, Dia das Mães, Natal e etc).
- Reality show (sim, aquele que você tanto gosta, também tem teste de carga antes de ser disponibilizado ao Vivo hehehe).
Viu só, quase toda iniciativa grande que vemos no dia a dia, estão rodeadas de tipos de testes diferentes antes de chegar ao público final, incluindo (mas não se limitando) o Testes de Carga.
Bora praticar:
- Instalação do Jmeter: Baixe e instale a última versão do Jmeter no seu sistema, se não sabe como, corre lá no primeiro artigo, link aqui.
2. Configuração do teste: Abra o Jmeter e crie um novo projeto, adicione um “Thread Group” ao projeto e configure o número de usuários simulados, o período de tempo para o teste e o número de iterações.
3. Adicionar ações de teste: Adicione ações de teste ao seu “Thread Group”. As ações de teste podem incluir requisições HTTP, verificações de resposta, extração de dados e outras ações.
4. Adicione um Listener (ouvinte, o que irá gravar os dados da requisição para você analisar depois), vamos usar:
5. Execução do teste: Execute o teste clicando no botão “Run” na barra de ferramentas do Jmeter.
6. Análise dos resultados: Depois de concluir o teste, o Jmeter fornecerá relatórios detalhados sobre o desempenho do sistema. Os relatórios incluem informações sobre a velocidade de resposta, o tempo de processamento, a taxa de erro e outras métricas importantes.
Analisar os resultados dos reports, exigirá conhecimento sobre o sistema que está sendo testado, o SLA (Qual tempo de resposta correta de cada chamada, quantos usuários ele deve suportar e por ai vai), sem esses dados em mãos, dificilmente o report sozinho conseguirá lhe dizer se os resultados foram satisfatórios ou não, tenha isso em mente!
ALERTA IMPORTANTISSIMO!
É importante realizar testes de carga em ambientes de teste isolados, que sejam seu ou de sua empresa, para evitar impactar o desempenho do sistema em produção.
NUNCA, JAMAIS, execute um teste de performance em uma api pública, sem a permissão do proprietário da api, isso é errado e pode ter implicações jurídicas, além de causar prejuízos á operação da api, utilize as apis públicas apenas para aprender e praticar, com baixíssimo número de usuários simultâneos.
Principais métricas coletadas durante esse tipo de testes:
- Tempo de Resposta: é o tempo que o sistema demora para responder a uma solicitação. Este é um indicador importante da velocidade e eficiência do sistema.
- Taxa de Erro: é a porcentagem de solicitações que resultam em erro. Isso pode ser causado por problemas no sistema, como falta de recursos ou problemas de configuração.
- Taxa de Transferência: é a velocidade com que os dados são transferidos entre o sistema e os usuários. Isso pode ser afetado por questões de rede, como a largura de banda disponível.
- Tempo de Processamento: é o tempo que o sistema leva para processar uma solicitação. Isso pode ser afetado por questões de recursos, como CPU, memória e armazenamento.
- Latência: é o tempo que leva para uma solicitação ser processada e uma resposta ser retornada.
Nem sempre será possível ou fará sentido todas essas métrucas acima, depende do seu ambiente e do tipo de sistema que estamos avaliando, tudo deve ser adequado as necessidades do momento.
Considerações finais!
Chegamos ao fim de mais um artigo, espero que você tenha gostado, esse artigo não tem o intuito de esgotar todas as possibilidades, apenas lhe dar um norte para seus estudos, muitas melhorias podem ser realizadas a partir desse script básico e a prática e o estudo constante lhe ajudará nessa empreitada!
Meios de Contato:
Lindekin: https://www.linkedin.com/in/paulorobert/
Github: https://github.com/PauloRobert/
No próximo artigo adentraremos outro tipo de testes de performance, até lá \o/.