JMeter – Saiba como testar o desempenho dos principais serviços de rede

Introdução

JMeter, é uma ferramenta utilizada para testes de carga (Load Test) nos principais serviços de rede, como: HTTP, FTP, LDAP, SMTP e outros.

Esta ferramenta é parte do projeto Jakarta da Apache Software Foundation. Sendo assim, é importante mensurar quanto um serviço de rede pode suportar; obtendo valores como quantidade de conexões simultâneas suportadas, tempo de reposta e disponibilidade, por exemplo.

JMeter é flexível, simples de usar (não precisa de conhecimentos de programação para realizar os testes básicos), funciona através de uma interface gráfica ou linha de comando.

De acordo com a Wikipédia, para a realização de testes, o JMeter disponibiliza diversos tipos de requisições e assertions (validam o resultado dessas requisições), além de controladores lógicos, como loops (ciclos) e controles condicionais para serem utilizados na construção de planos de teste.

Além disso, ele disponibiliza um controle de threads (usuários virtuais), chamado Thread Group, no qual é possível configurar o número de threads, a quantidade de vezes que cada thread será executada e o intervalo entre cada execução, que ajuda a realizar os testes de stress.

E, por fim, existem diversos listeners que, se baseando nos resultados das requisições ou dos assertions, podem ser usados para gerar gráficos e tabelas.

1. Thread Group – este é ponto de começo, todos os outros elementos do Test Plan devem estar sob este.

2. Controllers – estes são divididos em dois grupos:

  • Samplers – são controladores pré-definidos para requisições especificas (HTTP, FTP, LDAP e outros).
  • Logic Controllers – são controladores mais genéricos. Podendo ser customizada com a inserção de outros controllers, configuration elements, assertions, etc.

3. Listeners – estes são os elementos que fornecem acesso as informações obtidas pelo JMeter durante os testes.

4. Timers – por padrão, o JMeter faz requisições sem pausas entre elas. Os timers são utilizados para incluir pausas entre as requisições.

Pré-requisitos

O JMeter é desenvolvido na linguagem de programação Java e, portanto, necessita que esta esteja instalada na sua máquina. A versão do JMeter, na data deste artigo (versão 2.10), é totalmente compatível com a especificação 1.6 e superior do Java.

Baixando o JMeter

Na data de criação deste artigo, a versão mais recente é a 2.10, que pode ser baixada gratuitamente através desse link:

Ou baixar a versão 2.10, diretamente executando o comando:

$ cd Downloads
$ wget
 http://ftp.unicamp.br/pub/apache//jmeter/binaries/apache-jmeter-2.10.tgz

Instalando e executando o JMeter

Depois de baixada a ferramenta, descompacte-a usando o comando abaixo:

$ tar -zxvf apache-jmeter-2.10.tgz

O arquivo compactado gerará a pasta apache-jmeter-2.10. Acesse o diretório bin contido nela e execute script jmeter.sh (ele invoca o arquivo .jar):

$ cd apache-jmeter-2.10/bin
$ sh jmeter.sh

Teste / Conclusão

Primeiro teste

Neste cenário, será criado um Plano de Testes para verificar o desempenho de um servidor Apache Web (requisições HTTP).

Primeiramente, crie um Grupo de Usuários (Threads Group), como segue a imagem:

Plano de Teste → Adicionar → Threads → Grupo de Usuários

Defina o Número de Usuários Virtuais e o Tempo de Inicialização. Para um teste simples, preencha os valores 100 e 60, respectivamente.

Nesta situação, será simulado acesso de 100 usuários virtuais em 60 segundos; média de 0,6 por segundo (proporção TempoInicialização por UsuáriosVirtuais).

Em seguida, ajuste as requisições HTTP do Testador (Sampler), como segue a imagem:

Grupo de Usuários → Adicionar → Testador → Requisições HTTP

Defina o IP do servidor e o Caminho de acesso. O campo Caminho refere-se ao caminho absoluto da URL. Caso prefira, preencha com / (barra), que irá requisitar o arquivo index automaticamente.

Posteriormente, crie um Listener, que são os elementos que fornecem acesso às informações obtidas pelo JMeter durante os testes [IMPORTANTE].

Para isso, vá em:

  • Grupo de Usuários → Adicionar → Ouvinte → Ver Árvore de Resultados
  • E: Ver Resultados em Tabela

Por fim, a estrutura do Plano de Teste, ficará como segue imagem:

Executando o teste

Para executar o Plano de Teste criado, salve em arquivo de configuração tudo que foi feito. E, posteriormente, vá em

Executar → Iniciar (Ctrl+r) para iniciar os testes:

Linux: JMeter - Saiba como testar o desempenho dos principais serviços de rede   Linux: JMeter - Saiba como testar o desempenho dos principais serviços de rede

Conclusão

A atividade de teste é fundamental para a garantia da qualidade dos serviços ofertados. Mesmo sendo pouco utilizados no cenário atual e como os custos associados à sua execução são altos, a utilização de ferramentas que automatizem a criação e execução dos mesmos, é essencial. Pois, fazer medições de tempo de resposta e simular muitos usuários acessando ao mesmo tempo uma aplicação, é inviável.

Por isso, deve-se atentar para que os testes reflitam ao máximo a execução real do software, tanto no que diz respeito às páginas navegadas, como no tempo de intervalo de acesso de uma página para outra, e também ao número de usuários simultâneos.

Mais informações:

Rolar para cima