terça-feira, 30 de abril de 2013

Prove seu sistema com o JMetter

Há alguns  posts atrás, eu havia comentado que faria um post sobre Jmetter para que a gente possa estar sobrecarregando nosso sistema.
"Muahaha"!!!!
Já que vamos estressar nosso software fique atento as seguintes situaçoes:
1) o ambiente que vamos utilizar é o mais próximo possível do real?
2) caso negativo existe a possibilidade de simularmos esse ambiente? (Quando falo em ambiente não me refiro somente a base e versão do seu software, mas sim a infraestrutura,  middleware).
3) Existe a possibilidade de executar esses testes em produção? Se sim combine com o negócio e as áreas envolvidas e teste em janelas que tem impacto.
Feito isso vamos aos testes.
O primeiro passo é fazermos download do Jmetter:
A sua instalação é muito simples, basta apenas descompactar o arquivo e usar o jar.
Ao abrir o jmetter vemos a separação de dois grupos:
- Plano de Teste
- Área de Trabalho

Basicamente essa divisão serve para uma melhor organização. A área de trabalho é como se fosse uma área de rascunho, de testes. Já o plano de teste é aquilo que você realmente vai executar quando der um play.
Um exemplo simples, é quando precisamos configurar um proxy para captura, usamos a área de trabalho. Quando temos os artefatos necessários os colocamos em um Grupo de Usuários no Plano de Teste.
Se você já sabe o que vai precisar testar, quais urls vai utilizar (com suas variáveis, seus métodos, exe: GET, POST), podemos direto utilizar a opção de plano de teste.
Caso ao contrario, você pode capturar essas informaçõee, estarei mostrando como fazer isso em um próximo Post.
Passo a passo para quem está começando:
Na opção Plano de Teste clique com o botão direito e vá em -> Adicionar-> Thread(Users)-> Grupo de Usuários.
Você pode colocar o nome desse grupo de usuários conforme a sua necessidade.
Nessa tela nós temos uma série de opções, parte delas estão relacionadas a ações se houver falha e outra parte as configurações dos usuários virtuais. Vamos nos concentrar mais na configuração dos usuários.
  • Número de Usuários Virtuais: Com quantos usuários vamos simular o teste;
  • Tempo de inicialização em segundos: Tempo total de inicialização dos usuários. Se você colocar 200 usuário e 1 segundo o jmetter vai inicializar todos ao mesmo tempo;
  • Contador de Iteração: Quantas iterações (pense como laços de repetição) irão serem necessárias a cada usuário para que o teste finalize.
Indico que para começarmos a brincadeira, que deixemos um usuário virtual e as outras opções o default.
O próximo passo é adicionarmos um gerenciador HTTP, que será o responsável pelo gerenciamento de sua conexão.
Nele é possivel configurar o User Agent que iremos simular no teste.
Para isso vá em Grupo de Trabalho clique com o botão direito e então vá em  Adicionar->Elemento de Configuração-> Gerenciador de cabeçalho http:

O user agent vai variar de acordo com o que você quer simular.
Esse geralmente é o que eu uso:

User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0
Para testes com mobiles é só mudar o user Agent:
 
User-Agent Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5
Feito isso vamos aos testes.
 Vamos adicionar nossos testadores, para isso clique com o botão direito sobre o Grupo de usuários e vá em Adicionar-> Testador> Requisição HTTP

Devem ser informados os seguintes dados:

  • Nome para a requisição (qualquer nome que identique bem a etapa do teste para você)
  • Nome do Servidor: aqui você coloca somente o dominio.
  • Caminho: O resto da URL.

Nesse ponto já podemos dar um play.
No momento que deres play, verás que o contador a direita irá ficar 1/1 e logo em seguida 0/1.
E se seu site estiver ok, nenhum alerta seá contado:

Vamos adicionar alguns ouvintes para vermos o que está sendo executado. Há várias opções de ouvintes, eu gosto de usar duas: View Results Three e Simple Data Writer
Para adicioná-los vamos clicar com o botão direito sobre o Grupo de usuários e ir em Adicionar->Ouvintes->View Results Three
Se dermos play novamente, podemos ver o retorno do teste:

Podemos escolher o que queremos que seja exibido, se somente erro, sucesso ou ambos. Também é possivel exibir não somente o texto de resposta mas fazer download dos resources e exibir o html

Podemos também gerar um relatório desses testes, com um Simple Data Writer.
Adicionar->Ouvintes->View Results Three


Nesse tipo de escritor, todos os resultados dos seus testes ficarão armazenados em um arquivo. Uma dica legal é usar parametros para sempre  gerar um novo arquivo. Para isso adicione parametros como data e hora no nome do arquivo: D:\JMETTER\TesteGuriatech_${__time(YMDHMS)}.xls

O basicão é isso.
O proximo passo é começarmos a brincar com os temporizadores e alguns parametros nos testadores. Isso fará com que o nosso teste fique mais real, visto que nossos usuários não irão entrar todos ao mesmo tempo e executar todos os links no mesmo momento.
Sem o temporizador é isso que o jmetter tenta fazer, colocar todos a rodar.

Enquanto isso podemos ir adicionando mais requisições HTTP, e aumentando o número de usuários virtuais.
Divirtam-se!
No próximo post sobre Jmetter vou falar um pouco desses temporizadores e dos parametros para as requisições http.

Ficou com dúvida?
Escreva nos comentários abaixo que respoderei!





Nenhum comentário:

Postar um comentário