Vous êtes sur la page 1sur 13

TUTORIAL DE INSTALAO E CONFIGURAO DO JMETER

ITAMAR GALVO MRCIO SANTOS TIAGO GIFFONI marciosantos@uol.com.br tiagorg2@yahoo.com.br itamargalvao@hotmail.com

INTRODUO Os Testes de Performance , tem como finalidade garantir a integridade e assegurar a qualidade de um sistema ou site, tendo como objetivos principais encontrar erros e corrigi-los. Servem tambm para obter medida de requisitos no funcionais do software, tais como confiabilidade ou desempenho, usandose tcnicas estatsticas apropriadas. A realizao de testes tem por objetivo determinar se o desempenho do sistema integrado adequado, de acordo com os requisitos do sistema. Testes de performances podem ser realizados ao longo do desenvolvimento, mas somente quando todos os componentes so finalmente integrados que se pode ter uma medida real do seu desempenho , mostrar a relao entre risco de teste versus requisito de qualidade em aplicaes Web, ou seja, quais os requisitos de qualidade que mais comprometem o correto funcionamento destes sistemas caso no sejam corretamente testados. Segundo Molinari, o desempenho o requisito de qualidade que deveria ter mais cuidado em aplicaes Web. Esta importncia ainda mais crtica em aplicaes Web tendo em vista o grande volume de dados gerenciados.

JMETER

JMETER uma ferramenta do grupo APACHE, para a realizao de testes de performance, CARGA E STRESS. Apesar de ser este o foco do JMETER (testes de performance, carga e stress) ele tambm pode ser utilizado para realizar testes em WEB SERVICES, banco de dados e tambm automatizar

alguns teste funcionais, seu uso, alias, bastante amplo. Lgico que existem ferramentas que desempenham o mesmo papel que o JMETER como o caso WAST (Web Application Stress Test), WebLoad mas vamos aborar JMETER neste momento. O JMETER em sua operao mais bsica e nos posts decorrentes irei aprofundando na sua aplicao. Quem v o JMETER pela primeira vez no deve se sentir muito confortvel devido a sua relativa falta de intuitividade, mas isso logo passa depois que voc entende sua estrutura, que pelo que vocs iro ver, que bem simples. A melhor forma de entender a estrutura de elementos da rvore do JMETER mostrando logo de incio um script do JMETER todo pronto, pois assim fica mais prtico. Irei portanto, usar como exemplo um script que escrevi para alguns testes de performance e stress, so scripts simples que mostram como fcil usar esta ferramenta. Antes, irei mostrar onde se encontram os elementos que sero utilizados no exemplo que irei dar, veja na imagem abaixo como chegar neles. O JMETER permite diversas requisies tais como:

FTP Request HTTP Request JDBC Request Java Request SOAP/XML-RPC Request WebService(SOAP) Request LDAP Request LDAP Extended Request Access Log Sampler BeanShell Sampler BSF Sampler TCP Sampler JMS Publisher JMS Subscriber JMS Point-to-Point JUnit Request Mail Reader Sampler Test Action

PRE-REQUISITOS

A verso mais recente do JMeter, usada na poca da elaborao deste artigo, a 2.3.2. Para sua instalao temos os seguintes pr-requisitos: 1. JDK 1.4 ou superior corretamente instalado. Voc poder baixar o ambiente Java diretamente na Sun Microsystem pelo endereo

http://java.sun.com/j2se/1.5.0/download.jsp. 2. Um sistema operacional que execute uma JVM compatvel com o ambiente descrito acima. Exemplo: Microsoft Windows (XP, 2003), Solaris, AIX, Linux, etc. 3. Dependendo da carga que ser testada, um ou mais equipamentos com boa capacidade de processamento e memria.

PASSO A PASSO

O JMeter vem empacotado no formato zip ou tgz (tar). Optamos por fazer o download no formato zip por ser mais conhecido pela maioria dos usurios no site http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi O segundo passo na instalao do JMeter descompactar o arquivo em uma pasta. Para ilustrar esse procedimento, optou-se por descompactar o JMeter no diretrio raiz do disco C em um ambiente Microsoft e executar a partir C:\JMETER\Jakarta Jmeter 2.3\bin\jmeter.bin

Bem agora vamos para o script com os elementos utilizados Vamos na ordem: 1. Inserindo Histria - Thread Group (Add > New > Thread Group) Este o comeo de qualquer script (ou plano de teste, se preferir) no JMETER, este elemento inicia seu script, todos os outros elementos que sero interpretados pelo JMETER devem ficar obrigatoriamente abaixo deste thread group, voc pode, se preferir, organizar seu script em vrios thread groups sem problemas. aqui no Thread Group que voc ir indicar nmero de conexes simultneas, Ramp-up e Tempo de Execuo.

2. HTTP Request Defaults (Thread Group > Add > Config Element > HTTP Request Defaults) Aqui voc define o padro de seus requests HTTP, este elemento basicamente gerncia os HTTP requests que essa thread est prestes a fazer. O que basicamente deve estar preenchido neste elemento o campo Server Name or IP. 3. HTTP Cookie Manager (Thread Group > Add > Config Element > HTTP Cookie Manager) Suporte a Cookies, voc pode remover este elemento, mas recomendo deixar. Este elemento garante que cada Thread vai receber seu prprio cookie. 4. CSV Data Set Config (Thread Group > Add > Config Element > CSV Data Set Config)

Esta aqui uma facilidade do JMETER, em telas de login ou qualquer tela que voc tenha que passar dados para o browser, voc pode usar este elemento, ele funciona da seguinte forma. Voc preenche arquivo .csv com os parmetros

que voc vai querer passar, conforme imagem abaixo. Salve e depois volte ao elemento CSV Data Set Config e informe respectivamente nome para os valores acima admin e 1234, conforme imagem abaixo

Neste momento, ao rodar o script o JMETER vai vincular USER=admin e PASS=1234, e voc pode chamar estes valores em qualquer lugar do script assim: ${USER} e ${PASS}. No caso deste script irei utilizar estes valores no campo abaixo. 5. /redes2/login.do Aqui onde comea a interao com o browser, ou seja, onde as requisies so efetivamente realizadas, existe uma forma bem fcil de conseguir estas informaes, usando uma funcionalidade chamada HTTP Proxy Server.

Com o HTTP Proxy Server voc pode gravar aes no browser e o JMETER ir gravando tudo pra voc, basta que voc informe nas configuraes de seu browser a porta 8080 (voc pode alterar para qualquer porta disponvel no seu pc) e pressionar PLAY

Pronto, feito isso, o JMETER dever lhe poupar de realizar manualmente estes passos. Como mencionado no tpico 5) irei usar os valores ${USER} e ${PASS} aqui.

6. Browser-derived headers Estes controles o HTTP Proxy Server adiciona automaticamente, no se preocupe com eles. 7. /redes2/viewHome.do Mais um request gravado pelo HTTP Proxy Server

8. Browser-derived headers Estes controles o HTTP Proxy Server adiciona automaticamente, no se preocupe com eles. 9. /iredes2/confirmCreateNarrative.do Mais um request gravado pelo HTTP Proxy Server 10. Browser-derived headers Estes controles o HTTP Proxy Server adiciona automaticamente, no se preocupe com eles. 11. Counter - (Thread Group > Add > Pre Processors > Counter) Esta aqui outra facilidade do JMETER, quando existe a necessidade de se incluir vrios registros seqencialmente no banco, a melhor forma de se fazer isso via estes Counters, ele vai basicamente incrementar em +1 (isto no entanto configurvel)

No caso acima ele vai comear com 1 incrementar de 1 em 1 at 100 e o nome de referncia H, ou seja, onde voc quiser utilizar este counter, basta chamar ${H} onde queres incrementar, veja imagem abaixo.

12. View Results in Table - (Thread Group > Add > Listener > View Results in Table) Bem aqui a parte dos relatrios, este relatrio exibir os seguintes valores.

13. View Results Tree - (Thread Group > Add > Listener > View Results Tree) Os resultados esto vazios, mas ele lista aqui todos os requests e alem disso aqui voc tambem pode renderizar o HTML e ver exatamente o que este request fez, timo para debugar caso ocorra algum problema.

14. Graph Results - (Thread Group > Add > Listener > Graph Results)

15. Save Responses to a file - (Thread Group > Add > Post Processors > Save Resonses to a file) Salva requisies em um arquivo No Graphs to Display esta identificado abaixo o que cada medidor significa: DATA - Traa os valores de dados reais. AVERAGE Traa a media MEDIAN Traa o mediano (o valor intermedirio) DEVIATION Traa o desvio padro (uma medida da variao) THROUGHPUT Traa o nmero de amostras por a unidade de tempo. (definio sobre o que Throughput no site

http://br.answers.yahoo.com/question/index?qid=20060731114758AAFAaRX) As Indicadores individuais na parte inferior da exposio so os valores atuais. " LATEST SAMPLE" o mais atrasado; O tempo decorrido atual da amostra mostrado no grfico como o " DATA".

16. Generate Summary Results - (Thread Group > Add > Post Processors > Generate Summary Results) Salva um sumrio em um arquivo Voc pode organizar tudo em vrias threads desta forma

E antes de finalizar esta parte que a mais importante

Estas so as propriedades de uma Thread, voc deve informar nela o que voc vai fazer:

Number of Threads - Quantidade de Threads que ser realizada Ram-UP - Tempo que o JMETER para executar as threads informada acima Loop - Quantas vezes ele ir realizar esta atividade No caso acima 10 requisies em 60 segundos repetindo 5 vezes

No final consolido estes resultados em uma planilha

Ferramentas alternativas para testes de performance no Linux utilizado geralmente em servidor Apache.
Uma alternativa a ferramenta OpenSTA, distribuda de forma popular, software de fonte aberta que realiza o teste de regresso, de carga e de esforo. Tambm conhecida como alternativa do pobre homem a LoadRunner & a seda. Utilizar emulation de vinho, no existe nenhuma evidncia documentada de no ter funcionado com sucesso.

LDTP- Projeto de teste do Desktop Linux, criado para produzir a estrutura de automatizao de testes de alta qualidade, e com ferramentas pioneiras, que so utilizadas para testar desktops com Linux e melhor-los. Ele utiliza bibliotecas de acessibilidade, e realizar suas funes atravs de interfaces do utilizador de suas aplicaes. Possui ferramentas para gravar test-cases que se baseia em usurio-seleo na aplicao.

Espere do NIST est ferramenta utilizada para automatizar aplicaes interativas, exemplo: telnet, FTP, passwd, fsck, rlogin, ponta, ssh, etc. utilizado tambm para testar estas mesmas aplicaes, e adicionando o TK tambm se pode envolver aplicaes interativas em X11 GUIs. Esta

ferramenta faz facilmente as sortes das tarefas que so classificadas proibitivas difceis com qualquer outra coisa, uma ferramenta inestimvel, com ela o usurio poder automatizar as tarefas mais difceis de uma forma muito fcil. O Espere tambm realiza testes de Unix, e foi escrito por Don Libes, para aplicaes interativas.

DejaGNU -

uma estrutura para testar outros programas. Tem como

finalidade fornecer uma nica parte frontal para todos os testes. como uma biblioteca feita sob encomenda dos procedimentos do Tcl crafted para suportar a escrita de um chicote de fios de teste. Um chicote de fios de teste nada mais que a infra-estrutura do teste que criada para suportar um programa ou uma ferramenta especfica. Cada programa pode ter os test suites mltiplos,

suportados toda por um nico chicote de fios de teste. DejaGnu escrito dentro espera, que usa por sua vez o Tcl - utilize ferramentas a lngua de comando. Baseou-se n a estrutura da automatizao do teste da regresso e de carga.

As alternativas comerciais so:

ProxySniffer - a ferramenta trabalha a partir do proxy mede o perodo de resposta e a estabilidade das aplicaes web sob condies de carga reais simulando centenas ou milhares de usurios de correia fotorreceptora.

PureLoad - uma ferramenta de teste da carga que simula uma quantidade grande de usurios que executam pedidos de encontro s aplicaes baseadas usurio. Utilizado para verificar se a aplicao encontrar os critrios de desempenho previstos. Ele emite relatrios informando problemas de qualidade e de desempenho e tambm estatsticas detalhadas extradas durante o teste de carga. Realiza tambm sustentao extensiva para facilitar a gravao e teste de aplicaes baseadas nas seqncias de fotorreceptora.

CONCLUSO Os testes de performance so de bastantes importncia, pois analisa um determinado trafego e um melhor desempenho da rede, assim como detecta falhas para que seja projetadas novas solues que melhorem o desempenho da aplicao executada. O JMETER uma ferramenta que executa este teste , sendo de fcil implementao, h diversas no mercado mais complexas mais o JMETER desempenha muito bem seu papel.

Referencias http://www.zezologs.org/blog/ferramenta-de-testes-JMETER/ http://evandropaes.wordpress.com/2007/01/25/jmeter-%e2%80%93executando-testes-de-desempenho/

http://blog.taragana.com/index.php/archive/opensta-load-stress-testing-toolalternatives-on-linux/pt/ http://www.testexpert.com.br/?q=node/890 http://imasters.uol.com.br/artigo/9172 http://diariodaqualidade.blogspot.com/2007/11/o-opensta-no-morreu-euvoltei.html www.slideshare.net/freedomdayms/utilizando-jmeter-para-realizar-testes-decarga-em-aplicaes-web-presentation/ http://www.vivaolinux.com.br/artigo/Jakarta-JMeter-Testando-o-desempenhode-seus-sites/

https://www.mar.mil.br/sdms/6917.ppt http://www.vivaolinux.com.br/artigo/Jakarta-JMeter-Testando-o-desempenhode-seus-sites?pagina=3 http://www.vivaolinux.com.br/artigo/Jmeter-com-qualidade-e-performance/ http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi