JMeter é uma ferramenta que realiza testes de carga e de estresse em recursos estáticos ou dinâmicos oferecidos por sistemas computacionais. Além disso, é 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 estresse. E, por fim, existem diversos listeners que, baseando-se 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.

Test Plan editar

Para qualquer teste que venha a ser feito utilizando o JMeter, é necessário criar um Test Plan incluindo os elementos do teste. Tais elementos podem ser:

  • Thread Group — É o ponto de início, sob o qual devem estar todos os outros elementos do Test Plan. Como o próprio nome ressalta, ele controla as threads que serão executadas pelo teste.
  • Controllers — São divididos em dois grupos: samplers e logic controllers.
  • Samplers — São controladores pré-definidos para requisições específicas. Podem ser personalizados com a inserção de configurações (configurations), asserções (assertions) etc.
  • Logic Controllers — São controladores mais genéricos. Podem ser personalizados com a inserção de outros controllers, configuration elements, assertions etc.
  • Listeners — São elementos que fornecem acesso às 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. Expressões regulares (Perl-style regular expression) podem ser usadas 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.

Tipos de serviços editar

O JMeter suporta requisições dos seguintes tipos de serviços em suas rotinas de testes:

  • FTP — Permite criar requisições usando o protocolo FTP (com autenticação ou não) e executa o comando de retrieve em um arquivo específico.
  • HTTP — Permite criar requisições usando o protocolo HTTPS ou HTTP (com ou sem autenticação, respectivamente), podendo incluir parâmetros ou arquivos de requisição, escolher o método usado (GET ou POST) e manipular Cookies. 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 — Auxilia no teste de carga de classes Java, exigindo que se implemente uma classe do tipo JavaSamplerClient para executar o método a ser testado. A estrutura deste objeto é similar à 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 estendida.
  • 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. São eles: Web service (SOAP), Access Log, BeanShell, BSF, TCP, JMS Publisher, JMS Subscriber, JMS Point-to-Point.

Ligações externas editar

  Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.