JMeter
Origem: Wikipédia, a enciclopédia livre.
JMeter é um ferramenta utilizada para testes de carga em serviços oferecidos por sistemas computacionais. Esta ferramenta é parte do projeto Jakarta da Apache Software Foundation.
Para a realização de testes, a ferramenta JMeter disponibiliza diversos tipos de requisições e assertions (para validar 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, que correspondem aos testes funcionais.
O JMeter disponibiliza também um controle de threads, 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.
Componentes no JMeter são recursos que podem ser utilizados para criar rotinas de testes para aplicações.
[editar] Test Plan
Para qualquer teste que venha a ser feito utilizando o JMeter, é necessário criar um Test Plan incluindo os elementos do teste. Estes elementos podem ser:
- Thread Group — Este é ponto de começo, todos os outros elementos do Test Plan devem estar sob este. Como o próprio nome ressalta, este controla as threads que serão executadas pelo teste.
- Controllers — Estes são divididos em dois grupos Samplers e Logic Controllers.
-
- Samplers — São controladores pré-definidos para requisições especificas. Podendo ser customizada com a inserção de configurações (Configurations), Assertions e etc.
-
- Logic Controllers — São controladores mais genéricos. Podendo ser customizada com a inserção de outros controllers, configuration elements, assertions, etc.
- Listeners — Estes são os elementos que fornecem acesso as informações obtidas pelo JMeter durante os testes.
- 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.
- Assertions — Usado para verificar se a resposta obtida na requisição é a esperada. Podendo ser usado expressões regulares (Perl-style regular expression) na comparação.
- Configuration Elements — Embora não faça requisições (exceto para HTTP Proxy Server), este elemento pode adicionar ou modificar as requisições.
- Pre-Processor Elements — Executa alguma ação antes de fazer a requisição. Mais usado para pré-configurações das requisições.
- Post-Processor Elements — Executa alguma ação depois de fazer a requisição. Mais usado para processar as respostas da requisição.
[editar] Tipos de serviços
O JMeter suporta requisições dos seguintes tipos de serviços em suas rotinas de testes:
- FTP — Permitir criar requisições usando o protocolo FTP (com autenticação ou não) e executa o comando de retrieve em um arquivo especifico.
- HTTP — Permitir criar requisições usando o protocolo HTTP ou HTTPS (com autenticação ou não), podendo incluir parâmetros ou arquivos a requisição, escolher o método usado (GET ou POST) e manipular Cockies. Este sampler possui dois tipos de implementação: Java HTTP ou Commons HTTPClient.
- JDBC — Com esta requisição é possível executar queries em um banco de dados específico.
- Objeto Java — Ajuda no teste de carga de classes Java, exigindo seja implementado uma classe do tipo JavaSamplerClient para executar o método a ser testado. A estrutura deste objeto é similar a usada pelo JUnit.
- SOAP/XML-RPC — Permite enviar requisições SOAP para um WebService, ou enviar XML-RPC através do protocolo HTTP.
- LDAP — Permite enviar requisições para um servidor LDAP. Possui uma implementação simplificada e outra extendida.
- Testes JUnit — Usado para fazer teste de carga em testes de unidade que utilizam o framework JUnit.
Existem outros tipos de requisições que, até a atual versão do JMeter, estão em versão alpha, eles são: Web service (SOAP), Access Log, BeanShell, BSF, TCP, JMS Publisher, JMS Subscriber, JMS Point-to-Point.