IntroduçãoO JMeter, é uma ferramenta utilizada para testes de carga (Load Test) nos principais serviços de rede, como: HTTP, FTP, LDAP, SMTP e outros. Esta ferramenta é parte do projeto Jakarta da Apache Software Foundation. Sendo assim, é importante mensurar quanto um serviço de rede pode suportar; obtendo valores como quantidade de conexões simultâneas suportadas, tempo de reposta e disponibilidade, por exemplo. JMeter é flexível, simples de usar (não precisa de conhecimentos de programação para realizar os testes básicos), funciona através de uma interface gráfica ou linha de comando. De acordo com a Wikipédia, para a realização de testes, o JMeter disponibiliza diversos tipos de requisições e assertions (validam 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. Além disso, ele disponibiliza um controle de threads (usuários virtuais), 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. 1. Thread Group – este é ponto de começo, todos os outros elementos do Test Plan devem estar sob este. 2. Controllers – estes são divididos em dois grupos:
3. Listeners – estes são os elementos que fornecem acesso as informações obtidas pelo JMeter durante os testes. 4. 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. Pré-requisitosO JMeter é desenvolvido na linguagem de programação Java e, portanto, necessita que esta esteja instalada na sua máquina. A versão do JMeter, na data deste artigo (versão 2.10), é totalmente compatível com a especificação 1.6 e superior do Java. Baixando o JMeterNa data de criação deste artigo, a versão mais recente é a 2.10, que pode ser baixada gratuitamente através desse link: Ou baixar a versão 2.10, diretamente executando o comando: $ cd Downloads Instalando e executando o JMeterDepois de baixada a ferramenta, descompacte-a usando o comando abaixo: $ tar -zxvf apache-jmeter-2.10.tgz O arquivo compactado gerará a pasta apache-jmeter-2.10. Acesse o diretório bin contido nela e execute script jmeter.sh (ele invoca o arquivo .jar): $ cd apache-jmeter-2.10/bin |
|
Teste / Conclusão
Primeiro testeNeste cenário, será criado um Plano de Testes para verificar o desempenho de um servidor Apache Web (requisições HTTP). Primeiramente, crie um Grupo de Usuários (Threads Group), como segue a imagem: Plano de Teste → Adicionar → Threads → Grupo de Usuários Defina o Número de Usuários Virtuais e o Tempo de Inicialização. Para um teste simples, preencha os valores 100 e 60, respectivamente. Nesta situação, será simulado acesso de 100 usuários virtuais em 60 segundos; média de 0,6 por segundo (proporção TempoInicialização por UsuáriosVirtuais). Em seguida, ajuste as requisições HTTP do Testador (Sampler), como segue a imagem: Grupo de Usuários → Adicionar → Testador → Requisições HTTP Defina o IP do servidor e o Caminho de acesso. O campo Caminho refere-se ao caminho absoluto da URL. Caso prefira, preencha com / (barra), que irá requisitar o arquivo index automaticamente. Posteriormente, crie um Listener, que são os elementos que fornecem acesso às informações obtidas pelo JMeter durante os testes [IMPORTANTE]. Para isso, vá em:
Por fim, a estrutura do Plano de Teste, ficará como segue imagem: Executando o testePara executar o Plano de Teste criado, salve em arquivo de configuração tudo que foi feito. E, posteriormente, vá em Executar → Iniciar (Ctrl+r) para iniciar os testes: ConclusãoA atividade de teste é fundamental para a garantia da qualidade dos serviços ofertados. Mesmo sendo pouco utilizados no cenário atual e como os custos associados à sua execução são altos, a utilização de ferramentas que automatizem a criação e execução dos mesmos, é essencial. Pois, fazer medições de tempo de resposta e simular muitos usuários acessando ao mesmo tempo uma aplicação, é inviável. Por isso, deve-se atentar para que os testes reflitam ao máximo a execução real do software, tanto no que diz respeito às páginas navegadas, como no tempo de intervalo de acesso de uma página para outra, e também ao número de usuários simultâneos. Mais informações: |