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

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 e Logic Controllers:

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 post (versão 2.10), é totalmente compatível com a especificação 1.6 e superior do Java.

Não é escopo desse artigo o processo de instalação do JAVA no Linux.

BAIXANDO O JMETER

Na data de publicação desse post, 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 [ENTER]
wget http://ftp.unicamp.br/pub/apache//jmeter/binaries/apache-jmeter-2.10.tgz

INSTALANDO E EXECUTANDO O JMETER

Depois de baixado 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 [ENTER]
sh jmeter.sh

Caso esteja em Inglês e deseje escolher o idioma PORTUGUÊS, vá em Options >> Choose Language

MEU 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 Incializaçã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. A 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 as 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:

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 a 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.

Ricardo Ferreira

Ricardo Ferreira

Fundador do Linux Descomplicado - LD.

Sempre em busca de novos conhecimentos, preza por conteúdo de qualidade e auto-explicativo. Por isso, persiste em criar um site com artigos relevantes para todos os leitores do Linux Descomplicado!
Ricardo Ferreira

Comentários

comentários

Curso Docker - Introdução a administração de containers

Docker é uma plataforma para desenvolvimento, provisionamento e execução de aplicações usando tecnologia de containers.

Se você é um desenvolvedor ou sysadmin você poderá ter diversas vantagens usando a plataforma Docker:
  • Desenvolve uma vez...executa em qualquer lugar;
  • Sem preocupações (dependências e/ou pacotes)... foco no desenvolvimento;
  • Elimina inconsistências na entrega das aplicações e/ou serviços;;
  • Evita o “localhost funciona”;
  • Promove uma infraestrutura escalável;

Este curso é introdutório a plataforma Docker e lhe dará melhor compreensão sobre as vantagens da ferramenta.


Inscreva-se agora »

VOCÊ TAMBÉM PODERÁ LER...

  • Carlos Carvalho

    Vou começar a utilizá-lo em uma infra essa semana. Excelente ferramenta.