terça-feira, 14 de dezembro de 2010

JMeter

O JMeter é uma ferramenta open-source do grupo Jakarta Apache, desenvolvida totalmente com tecnologia Java, para a execução de testes de carga. Também é possível realizar testes de performance e de caixa-preta. Para a realização de testes, a ferramenta JMeter disponibiliza diversos tipos de requisições e assertions (para validar o resultado dessas requisições), um de seus atrativos é o fato de permitir a execução de plano de testes que podem ser configurados graficamente

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 carga. E por fim, existem diversos listeners, que podem ser usados para gerar gráficos e tabelas, com base nos resultados das requisições ou dos assertions.

Plano de Testes

Para qualquer teste que venha a ser feito utilizando o JMeter, é necessário criar um Plano de Testes, incluindo os elementos do teste. Estes elementos podem ser: Thread Group, Configuration Element, Listener, Timer, Controller, Assertion, Pre-Processor Element ou Post-Processor Element. Abaixo descrevemos cada um deles.

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.

Configuration Elements

Embora não faça requisições (exceto para HTTP Proxy Server), este elemento pode modificar as requisições.

Listeners

Estes são os elementos que fornecem acesso aos resultados dos testes realizados no JMeter.

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.

Controllers

Os Controllers estão divididos em dois grupos Samplers e Logic Controllers:

  • Samplers — São controladores pré-definidos para requisições específicas. Podendo ser customizada com a inserção de configurações (Configurations), Assertions e etc.
  • Logic Controllers — São controladores mais genéricos. Podendo ser customizados com a inserção de outros controllers, configuration elements, assertions, etc.

Assertions

Usadas para verificar se a resposta obtida na requisição é a esperada. Podem ser usadas expressões regulares na comparação.

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 Requisição

O JMeter suporta os seguintes tipos de requisição em suas rotinas de testes:

  • FTP — Permite criar requisições usando o protocolo FTP e executa o comando de retrieve em um arquivo específico.
  • HTTP — Permite criar requisições usando o protocolo HTTP ou HTTPS, podendo incluir parâmetros ou arquivos a 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 — Ajuda no teste de carga de classes Java, exigindo para isso a implementação de 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 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 alfa, eles são: Web service (SOAP), Access Log, BeanShell, BSF, TCP, JMS Publisher, JMS Subscriber, JMS Point-to- Point.








antes que eu esqueça esse post foi retirado daqui
http://testersoftware.blogspot.com/2010/09/jmeter.html

Nenhum comentário:

Postar um comentário