O que é JMeter?
O que é JMeter? A utilização de ferramentas para testes de carga e stress é essencial para que possamos testar a performance de nossas aplicações e mantê-las com qualidade mesmo com picos de tráfego.
Com certeza, você já passou por alguma experiência ruim ao acessar um site instável, como por exemplo na hora de comprar um ingresso de um show muito aguardado. Certamente, essa experiência comprometida afetou sua opinião e até mesmo a confiança nestas plataformas que eventualmente passam por alguma degradação de performance. Aqui, mais uma vez, fica evidente a importância de testar a performance da aplicação.
Neste artigo, iremos abordar a ferramenta JMeter, uma ferramenta já consolidada e uma das mais conhecidas no mercado para realização de testes de carga e performance. Apesar de ser uma ferramenta muito popular entre os desenvolvedores web, ela tem muitos outros recursos a oferecer.
Mas, antes de adentrarmos no JMeter, precisamos entender um pouco o que vêm a ser os testes de performance.
Testes de performance
Os testes de performance visam testar como nossa aplicação se comporta em geral, principalmente em relação a quantidade de requisições simultâneas. Para isso, submetemos a aplicação a uma avaliação de carga, stress ou resistência para avaliar se os resultados são satisfatórios, visando garantir a qualidade da aplicação.
Realizar esses testes também nos ajuda a avaliar a experiência que o usuário terá na aplicação, onde conseguimos verificar qual o tempo de resposta a cada iteração, por exemplo.
Dentro do teste de performance, temos outros 3 subgrupos. Estes testes nos permitem fazer a análise e monitoramento de resultados, além de fornecerem indicadores importantes. São eles:
● Teste de carga Aqui vemos a quantidade de usuários simultâneos que a aplicação suporta, fazendo os usuários virtuais se comportarem como se fossem usuários reais. Para isso, nos testes de carga, simulamos picos de usuários, sendo feito de pouco em pouco. Também podemos injetar atrasos e paradas nos testes para uma simulação ainda mais realista. Depois, vamos aumentando o volume de usuários gradativamente, para podermos encontrar o limite de capacidade da aplicação.
● Teste de resistência Esse tipo de teste se concentra na estabilidade do sistema ao longo de um período específico, verificando se não há problemas de capacidade de recursos. Entre estes problemas em recursos a serem considerados, podemos citar vazamentos de memória e conexões com banco de dados.
● Teste de stress No teste de stress, geralmente colocamos inicialmente a capacidade máxima que a aplicação pode suportar. Após, é disparada uma grande carga contra a aplicação, onde se tem o objetivo de determinar a capacidade de recuperação e estabilidade do sistema.
É nesses tipos de testes que o JMeter vem para nos ajudar.
JMeter
JMeter é uma aplicação gratuita, open source, multiplataforma e escrita em Java, sendo um projeto da Apache Software Foundation. Ela foi desenvolvida inicialmente para testes em aplicações web, mas hoje é possível o utilizar para testes em recursos variados, como banco de dados, servidores de e-mail, requisições HTTP, FTP, TCP, SOAP e outros.
Com o JMeter, você consegue realizar os testes de performance, carga e stress que vimos acima, tornando possível mensurar performance de uma aplicação web.
Em uma aplicação web, por exemplo, você consegue gravar todas as requisições que um usuário faria, simulando ações corriqueiras dentro da aplicação. Essas ações ficam gravadas no JMeter, em uma estrutura conhecida como “grupo de teste”. Após a gravação destas ações, o JMeter possibilita disparar lotes simultâneos e numerosos destas ações, simulando um grupo de usuários. No final, a resposta do servidor para cada solicitação feita é coletada e, com base nessas respostas, as estatísticas são calculadas e as métricas de performance são geradas. O objetivo do JMeter é simular cenários de testes mais reais possíveis.