21/06/2018 Beatriz Makiyama

Executando testes de performance com JMeter

Há poucos dias, publiquei um artigo sobre o conceito de testes de performance em uma aplicação. Caso você não tenha lido, recomendo acessá-lo, pois esse artigo é uma continuação. 

Quando iniciei os meus estudos sobre Testes de Performance, logo conheci o JMeter. Essa ferramenta, desenvolvida pela Apache, traz um conjunto de soluções para avaliar fatores como desempenho, disponibilidade e escalabilidade das aplicações. Era o que precisávamos em um dos projetos da DB1. 

Para que este artigo não fique tão extenso, decidi agrupar as principais características do JMeter de acordo com a experiência que tive com a ferramenta. 

Primeiramente, o JMeter é gratuito e multiplataforma. Este talvez seja um dos maiores diferenciais da ferramenta, já que representa um bom custo-benefício. Em segundo lugar, os resultados dos testes podem ser exportados para CSV – e interpretados por outra ferramenta – ou manipulados para gerar tabelas e gráficos bem expressivos para apoiar tomadas de decisões. 

Outra característica relevante é a possibilidade de execução distribuída dos testes para atingir a maior quantidade possível de usuários simultâneos, bastante útil para simular cargas de requisições concorrentes. 

O JMeter também fornece um ambiente para programação dos testes, com possibilidade de declaração de variáveis para armazenamento de valores, e instalação de plugins para expansão das funcionalidades. Além disso, a ferramenta suporta diversos tipos de servidores e protocolos, como HTTP, HTTPS, SOAP, conexões via JDBC, LDAP, JMS, POP3 e outros. 

Para profissionais que preferem praticidade, o JMeter disponibiliza a execução de testes por linhas de comando, sem intervenção gráfica. Uma das vantagens deste recurso é a possibilidade de configurar os testes para serem executados automaticamente em um ambiente de integração contínua, como o Jenkins. 

Selecionei algumas dicas relevantes para que você tire um bom proveito da ferramenta após aprender a utilizá-la. Caso você já conheça a ferramenta, essas dicas talvez possam melhorar ainda mais a sua produtividade: 

1) Use “Árvores de Resultados” apenas com o log de erros ativo 

Filtre somente os logs de erros ao utilizar a árvore de resultados para facilitar a navegação e visualização dos dados. 

2) Aumente a memória heap do JMeter para até 75% da capacidade do computador 

Essa configuração evita os eventuais erros de falta de memória (Out of Memory Error). 

3) Mantenha o banco de dados controlado 

Após um tempo, a massa de dados criada pelos testes de performance pode sobrecarregar o banco de dados, impactando no resultado de testes posteriores. O ideal é criar um snapshot do banco de dados para ser reutilizado periodicamente ou até mesmo a cada teste. 

4) Verifique a capacidade do computador responsável pela execução dos testes 

Dependendo da quantidade de cenários, a execução pode exigir mais recursos, portanto, a capacidade do computador deve ser equivalente à essa necessidade. 

5) Se possível, não use o modo GUI (Interface Gráfica) 

Executar os testes por linha de comando reduz o consumo de memória. 

6) Mantenha a infraestrutura de testes o mais próximo possível do ambiente de produção 

Dessa forma, os resultados serão mais confiáveis. 

7) Envolva testadores, DBAs, administradores de rede, arquitetos de software e desenvolvedores no processo de testes 

Cada função tem uma participação neste processo, mesmo que pequena. É importante que todos estejam em sincronia para garantir uma entrega com qualidade. 

8) Prefira exportar os dados em formato CSV ao invés de XML 

A leitura do formato de CSV é mais rápida em função da estrutura do conteúdo, diferente do XML, que é composto por várias tags. 

9) Não execute os testes na rede local 

A velocidade da rede local geralmente é alta, implicando em resultados que nem sempre serão aceitáveis. Ao simular um ambiente de produção, os resultados serão mais realistas. 

10) Execute o mesmo conjunto de testes várias vezes no mesmo dia e durante vários dias na semana 

Essa prática garante a consistência dos resultados. 

11) Explore as opções e propriedades do JMeter 

Seja curioso(a)! Muitas propriedades do JMeter se adequam perfeitamente às particularidades de cada projeto.  

12) Não entregue relatórios técnicos para a gerência 

Lembre-se: Stakeholders não esperam relatórios com gráficos e tabelas confusas ou técnicas demais. Você deve fornecer conclusões e recomendações para melhorar a situação atual. 

Na DB1, conseguimos concluir com sucesso a execução de testes de performance. Com os resultados, foi possível detectar falhas técnicas no projeto (codificação) e pontos de melhoria na infraestrutura em produção. Após as devidas correções e com a repetição dos testes, a qualidade da aplicação foi nitidamente aperfeiçoada. 

Clique no link abaixo para acessar o site oficial do JMeter. Lá você poderá baixar a ferramenta, encontrar documentações, FAQs, tutoriais e outras informações. 

https://jmeter.apache.org/ 

Até a próxima! 

Comentários

comentários

Sobre o autor

Beatriz Makiyama Graduada em Tec. em Análise e Desenvolvimento de Sistemas e pós-graduada em Gerenciamento de Projetos em TI pela FCV. Analista de testes há 8 anos. Trabalha na área de Tecnologia da Informação há mais de 11 anos. Trabalhou com programação, automação e testes de software em diversos projetos de diferentes áreas. Possui certificações CTFL e CTFL-AT. Apaixonada por Qualidade de Software.