25
Introdução ao Apache JMeter Israel Ramos Quality Assurance [email protected]

Introducao_ao_JMeter_-_Por_Israel_Ramos

Embed Size (px)

Citation preview

Page 1: Introducao_ao_JMeter_-_Por_Israel_Ramos

Introdução ao Apache JMeter

Israel RamosQuality [email protected]

Page 2: Introducao_ao_JMeter_-_Por_Israel_Ramos

Agenda

• Introdução ao Apache JMeter.

• Benefícios.

• Tipos de Serviços.

• Test Plan.

• Construindo o Primeiro Test Plan.

Page 3: Introducao_ao_JMeter_-_Por_Israel_Ramos

Introdução ao Apache JMeterApache JMeter é uma aplicação de desktop 100% Java projetado para realizar teste de softwares cliente/servidor. Ele pode ser usado para testar o desempenho de recursos dinâmicos e estáticos como:

Java Servlets, Objetos Java, Bancos de dados, Servidores FTP e muito mais.

JMeter pode ser usado para simular uma carga pesada em um servidor de rede, ou objeto para testar a sua resistência ou para analisar o desempenho global no âmbito de diferentes tipos de carga.

Page 4: Introducao_ao_JMeter_-_Por_Israel_Ramos

Além disso, o JMeter pode ser utilizado para realizar testes de regressão em aplicativos, permitindo criar scripts de testes com asserções para validar se a aplicação está retornando os resultados esperados. Para maior flexibilidade, JMeter permite criar estas afirmações usando expressões regulares.Mas observe que o JMeter não é um navegador:

Page 5: Introducao_ao_JMeter_-_Por_Israel_Ramos

BenefíciosUma das características mais importantes do JMeter é que ele possibilita, ao usuário, montar um plano de teste de forma interativa e flexível. Ele oferece um conjunto eficiente de ferramentas e componentes que podem ser combinados para montar um plano de teste sob medida para cada caso.

FLEXÍBILIDADE

COBERTURA

ESCALABILIDADERELATÓRIOS

POTÊNCIA

Page 6: Introducao_ao_JMeter_-_Por_Israel_Ramos

Tipos de Serviços

Page 7: Introducao_ao_JMeter_-_Por_Israel_Ramos

Para qualquer teste que venha a ser feito utilizando o JMeter, é necessário criar um Test Plan incluindo os elementos do teste. Estes elementos podem ser:

FTP:Permitir criar requisições usando o protocolo FTP (com autenticação ou não) e executa o comando de retrieve em um arquivo especifico.

HTTP:Permitir criar requisições usando o protocolo HTTP ou HTTPS (com autenticação ou não), podendo incluir parâmetros ou arquivos a requisição, escolher o método usado (GET ou POST) e manipular Cockies. 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.

Page 8: Introducao_ao_JMeter_-_Por_Israel_Ramos

Objeto Java:Ajuda no teste de carga de classes Java, exigindo que seja implementado 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.

Page 9: Introducao_ao_JMeter_-_Por_Israel_Ramos

Test Plan

Page 10: Introducao_ao_JMeter_-_Por_Israel_Ramos

Para qualquer teste que venha a ser feito utilizando o JMeter, é necessário criar um Test Plan incluindo os elementos do teste. Estes elementos podem ser:

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 controlar as threads que serão executadas pelo teste.

Controllers:Estes são divididos em dois grupos Samplers e Logic Controllers.

Samplers:São controladores pré-definidos para requisições especificas. Podendo ser customizada com a inserção de configurações (Configurations), Assertions e etc.

Page 11: Introducao_ao_JMeter_-_Por_Israel_Ramos

Logic Controllers:São controladores mais genéricos. Podendo ser customizada com a inserção de outros controllers, configuration elements, assertions, etc.

Listeners:Estes são os elementos que fornecem acesso as informações obtidas pelo JMeter durante os testes. 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.

Assertions:Usado para verificar se a resposta obtida na requisição é a esperada. Podendo ser usado expressões regulares (Perl-style regular expression) na comparação.

Page 12: Introducao_ao_JMeter_-_Por_Israel_Ramos

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

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.

Page 13: Introducao_ao_JMeter_-_Por_Israel_Ramos

Construindo o Primeiro Test Plan

Page 14: Introducao_ao_JMeter_-_Por_Israel_Ramos

Os elementos que precisaremos para construir um Test Plan básico são:

• Thread Group

• HTTP Request (Sampler)

• HTTP Request Default (Configuration Element)

• Summary Report (Listener)

Nós faremos o seguinte:

• Adicionar usuários

• Adicionar e configurar um Default HTTP Request.

• Adicionar HTTP Requests

• Adicionar Listener para Ver/Salvar os resultados do teste

• Salvar e executar o Test Plan.

Page 15: Introducao_ao_JMeter_-_Por_Israel_Ramos

Adicionando Usuários1. Clique com o botão direito no icone do Test Plan / Add / Thread Group.

2. A direita será aberto o painel de configuração do Grupo de Usuários que você acabou de adicionar. Nomeie-o com o nome que preferir.

3. Inicialmente estaremos simulando somente 1 usuário e 1 interação. Portanto deixe tudo como e está e somente altere o parâmetro Ramp-Up Period para 0. Esse parâmetro define qual o intervalo de inicialização do grupo de usuários após o inicio do teste. Deixando esse valor em 0, nosso grupo de usuários será iniciado imediatamente ao iniciarmos o teste.

Page 16: Introducao_ao_JMeter_-_Por_Israel_Ramos

Agora estamos prontos para adicionarmos as tarefas que nosso grupo de usuários realizará.

Adicionando HTTP Request Defaults

1. Clique com o botão direito no Grupo de Usuários / Add / Config Element / HTTP Request Defaults.

2. Selecione o novo elemento criado para visualizar o Painel de configuração.

Page 17: Introducao_ao_JMeter_-_Por_Israel_Ramos

3. Renomeie o elemento para o nome que preferir.

4. Em Server Name or IP, digite uma URL: www.google.com (ou qualquer outro URL que você preferir). Vamos deixar todos os outros valores comoestão. Definindo a HTTP Request Defaults fará com que todos Sampler dentro deste grupo de usuários acessem ao mesmo servidor. No entanto , ele não realiza requisições, ele simplesmente define o padrão de requisição para o seguimento. Assim não precisaremos inserir o o caminho completo do servidor em todas as requições que iremos adicionar,

Adicionando HTTP RequestNesta etapa, iremos fazer duas requisições HTTP para o servidor de destino:

a página padrão e outra página na mesma URL. Como o JMeter executa elementos na ordem em que aparecem na árvore de plano de teste, vamos adicionar primeiro a requisição para a página padrão.

Page 18: Introducao_ao_JMeter_-_Por_Israel_Ramos

1. Clique com o botão direito em Grupo de Usuários / Add / Sampler / HTTP Request.

2. Selecione o elemento criado na árvore e configure os seguintes parâmetros:

a. Name: Home Page

b. Web Server: - Esta informação foi especificada no HTTP Request Defaults. Não há necessidade de editar esta seção, a menos que você precise redirecionar para um caminho diferente do que o especificado no Default HTTP Request.

Page 19: Introducao_ao_JMeter_-_Por_Israel_Ramos

c. Path: / - Desde que tenha especificado o nome do servidor no elemento padrão HTTP Request, não precisamos acrescentar algo mais nesse campo além de uma simples barra, já que queremos atingir a rais do site.

3. Adicione agora outra HTTP Request e configure os seguintes parâmetros:

Page 20: Introducao_ao_JMeter_-_Por_Israel_Ramos

a. Name:Translate

b. Path: /language_tools?hl=pt-br - Como nós definimos www.google.com no HTTP Request Defaults, o JMeter irá automaticamente , no momento da execução do teste, concatenar o endereço do servidor com a sub página configurada neste campo.

Adicionando ListnerFinalmente, vamos adicionar um ouvinte simples, o Aggregate Report . Este

elemento irá armazenar todo o resultado de suas requisições HTTP e exibirá as informações estatísticas em forma de tabela.

1. Clique com o botão direito em Grupo de Usuários / Add / Listner / Aggregate Report .

Page 21: Introducao_ao_JMeter_-_Por_Israel_Ramos

2. Em Write All Data to a File : em Filename digite o nome do diretório ou selecione o diretório onde o arquivo será salvo com o botão Browse... e digite o nome do arquivo de saída.

Salvando e executando o Test Plan

O JMeter obriga-nos a salvar um plano de teste antes de executá-lo.

3. Selecione Save Test Plan no menu File. JMeter permite que você salve trechos ou sucursais de um plano de teste, basta selecionar o elemento onde o ramo começa.

Page 22: Introducao_ao_JMeter_-_Por_Israel_Ramos

2. Insira um nome que preferir para o arquivo. A extensão será definida em .jmx.

3. No menu Run, selecione Start.A figura a seguir é seu Aggregate Report e pode-se olhar para ele enquanto o teste é executado. Observe que há um pequeno quadrado verde(durante a execução) no canto superior direito. O número ao lado mostra o número de threads ativas vs. o total de threads.

Page 23: Introducao_ao_JMeter_-_Por_Israel_Ramos

Esse foi um exemplo simples de um Plano de testes básico. O JMeter vai muito além disso, e possibilita criar planos de testes extremamente robustos e eficazes. Tudo dependerá de sua necessidade. O JMeter é uma ferramenta diagnósticos extremamente flexível e poderosa . Pesquise mais sobre ele e descubra o grande leque de soluções possíveis que ele proporciona.

Documento elaborado em: 03/11/2010

Referências:

• Jakarta Meter- User Manual - http://jakarta.apache.org/jmeter/usermanual

• Packt Publishing - 2008 - Emily H. Halili – Apache Jmeter - A practical beginner's guide to automated testing and performance measurement for your websites

Page 24: Introducao_ao_JMeter_-_Por_Israel_Ramos

Araraquara - América Centro EmpresarialRua Padre Duarte, 151 – 3º andarTels: (55 16) 3333-5707

(55 11) 2626-7181

Ribeirão Preto - New Century Av. Presidente Vargas, 2001 – 14º andarTels: (55 16) 3623-9101

(55 11) 2626-7181

São PauloAv. Paulista, 2064 – 3º andarTels: (55 11) 2626-7181

Informações:[email protected]. Comercial: [email protected]: [email protected] Humanos: [email protected]: [email protected]

Escritórios

Page 25: Introducao_ao_JMeter_-_Por_Israel_Ramos

Obrigado!

Israel RamosQuality [email protected]