Motivação

  • Quanto mais tarde um erro é detectado, maior o custo de corrigi-lo.
  • Como garantir seu meu sistema vai atender a demanda e a expectativa dos usuários?
  • Quantos usuários simultâneos minha aplicação suporta ?
  • Quantas requisições por segundo ?
  • Como a aplicação se comporta quando tenho 100 usuário utilizando-a?

Como obter respostas há essas perguntas sem “colocarmos nossa cara a tapa”, digo isso porque, ainda hoje muitas empresas ainda respondem essas perguntas com suas aplicações já em uso no cliente. E aí, acaba gerando clientes e usuários insatisfeitos e você fica com o “problemão” de ter que corrigir tudo isso na sua aplicação. E tendo que oferecer garantias para que isso não se repita.

Tipos de testes que garantem performance e robustez

Para oferecer desempenho e robustez em suas aplicações a melhor forma é TESTAR. E ainda bem que hoje temos muitas ferramentas para nos auxiliar nesta tarefa.

Mas antes vamos entender ou relembrar exatamente de que tipo de testes que estamos falando.

Teste de Performance

Antes de tudo, que fique claro, teste de performance NÃO É para encontrar bugs (bugs de código). Como o nome diz, medir performance, a aplicação tem que está estável, do que adianta medir performance de uma aplicação cheia de bugs ? E é claro, na hora de avaliar desempenho da sua aplicação tem utilizar ferramentas que serão utilizadas no ambiente de produção.
Para iniciar os testes de performance temos que ter em mente níveis de aceitação para poder avaliar o desempenho da aplicação, não adianta ficar testando a aplicação com 2 usuários por segundos se na vida real sua aplicação vai ter muitos mais acessos que isso. Isso também vale para a situação inversa. Focar no que realmente interessa é o diferencial para obter um bom resultado nos testes.
Então saber quanto de memória e processamento sua aplicação pode utilizar no servidor, tempo aceitável de resposta, quantos usuários posso ter na minha aplicação ao mesmo tempo … essas respostas servirão de métricas para você poder avaliar a performance da sua aplicação.

Teste de carga

Depois do sistema ter atendido ao níveis de desempenho exigido pelo cliente, é hora de avaliar como o sistema se comporta com sua carga máxima, e aumentando gradativamente a carga dos testes podemos ver como o sistema se comporta que sua carga máxima. A ídeia desse teste é manter o sistema funcionando com sua carga máxima.

Teste de stress

Levar o sistema ao caos, isso para avaliar seu comportamento, como ele se recupera. Em sistemas e principalmente sistemas web, pode ser difícil medir o numero exato de acessos, usuários num dado instante … por exemplo. Então para ficarmos preparados para esse tipo de eventualidade, temos que testar … o sistema não precisa necessariamente se manter estável mas tem que conseguir se recuperar de forma “elegante”, exibir mensagem amigáveis e voltar a sua normalidade.

Introdução ao JMeter

O JMeter é uma ferramenta open-source do grupo Jakarta Apache, desenvolvida 100% com tecnologia Java, atualmente é uma das principais ferramenta para realização de teste de performance, carga e stress. Originalmente, foi desenvolvida para execução de testes de aplicações web mas já pode ser extensível a outros tipos de testes como em aplicações distribuídas, desktop, acesso a banco …

Instalação e utilização

Para a instalação da ferramenta basta fazer o download no site da apache e executar o arquivo jmeter.bat na pasta bin.

Conhecendo a ferramenta

A interface da ferramenta é de fácil utilização.

Todos os casos de teste estão no Test Plan.

Todo Test Plan é formado por ThreadGroups. No ThreadGroup pode ser configurado quantidade de usuários(request) e período(segundos).

Em um ThreadGroup vc pode adicionar os controles que neste caso utilizei sample para simular requisições http. Adicionado um sample para requisição, por default é http mas pode ser utilizado https. No sample tbm é configurado ip servdor, porta, path da aplicação, parâmetros que serão enviado no request …

Depois é só rodar os testes.

Resultados (Listeners)

Os resultados podem ser visualizados de forma sintética ou detalhada. Existem vários tipos de listerners para que possamos verificar as informações em angulos diferentes.

A quantidade de informações que vc pode obter chega ser impressionante.

Conclusão

A ferramenta é muito interessante e muito bem documentada. Isso sem falar nas possibilidades de gerar testes customizados e poder gerar tarefas no Ant com JMeter.

A idéia aqui é falar um pouco sobre a ferramenta e a partir daí poder fazer novos estudos. Tentei abordar o assunto de forma bem resumida e a ferramenta em si já facilita bastante por ser simples de usar. O desafio aqui agora é tirar o máximo das informações geradas.

Anúncios