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

JMeter é uma ferramenta utilizada para testes de carga nos principais serviços de rede. Ela faz parte do projeto Jakarta, da Apache 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.

[ Hits: 29.502 ]

Por: Ricardo Ferreira Costa em 20/12/2013


Introdução / Pré-requisitos / Instalação



Introdução

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


    Próxima página

Páginas do artigo
   1. Introdução / Pré-requisitos / Instalação
   2. Teste / Conclusão
Outros artigos deste autor

Genymotion - Emulando Android no GNU/Linux

TurnKey Linux - Instale e configure serviços de rede facilmente

Leitura recomendada

Criando regras simples com IP6Tables

Zoneminder: Substituindo um Unifi NVR

Interface de Rede Virtual no Debian

Nagios Core 4.0.8 com Debian 7 e Client Windows Server

Problemas encontrados na adoção do IPv6

  
Comentários
[1] Comentário enviado por pietro_scherer em 20/12/2013 - 09:02h

Muito bom o artigo, parabéns!

[2] Comentário enviado por Tacioandrade em 23/12/2013 - 04:47h

Boa noite, primeiramente parabéns pelo artigo muito bom mesmo, não conhecia essa ferramente e achei muito boa. =D

Mais tirando umas duvidas, no caso com ela posso de alguma forma customizar testes de forma simplificada com outras aplicações, como por exemplo: Mysql, Postgres, Firebird, FTP, ssh, Remote Desktop (Terminal Server do Windows), etc?

Pergunto isso pois seria uma boa para testar mais ou menos quantas conexões um servidor especifico consegue suportar e balancear de forma mais correta o hardware necessário.


Obrigado desde já pelas informações. =)

[3] Comentário enviado por linux10complica em 23/12/2013 - 11:08h

@Tacioandrade primeiramente obrigado pelo comentário.

Em relação a seu questionamento, posso informar que o Apache JMeter oferece suporte aos protocolos abaixo, de acordo com o site oficial:

Web - HTTP, HTTPS
SOAP
FTP
Database via JDBC
LDAP
Message-oriented middleware (MOM) via JMS
Mail - SMTP(S), POP3(S) and IMAP(S)
Native commands or shell scripts
TCP

Concordo que seria muito interessante testar outros protocolos com o JMeter.... Por exemplo, para testar em servidores de banco de dados (MYsql / Postgresql) será preciso adicionar o driver jdbc do java (mysql-connector-java-X.X.X-bin.jar por exemplo) na pasta lib do JMeter.

Alguns exemplos interessantes:

- Mysql

http://jmeter.apache.org/usermanual/build-db-test-plan.html

- Postgresql

http://testevangelist.blogspot.com.br/2011/03/postgresql-database-configuration-for.html

- FTP

http://jmeter.apache.org/usermanual/build-ftp-test-plan.html

Bons estudos

Att
Ricardo Ferreira Costa
Linux Descomplicado
http://www.linuxdescomplicado.com.br

[4] Comentário enviado por juniorxfce em 06/01/2014 - 11:38h

Interessante cara vlw por compartilhar.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts