Bem-vindo: Ter, 26 de Novembro 2024, 21:41 Pesquisa avançada

Saiba como testar o desempenho dos principais serviços ...

Escreveu alguma aplicação ou script que quer partilhar? Ou conhece algo que quer partilhar? Sabe alguma linguagem de programação e quer partilhar esse conhecimento com um tutorial? Tem alguma dúvida em alguma linguagem? Então este é o sítio certo.

Saiba como testar o desempenho dos principais serviços ...

Mensagempor nuno_nunes » Qui, 5 de Dezembro 2013, 21:01

... de rede usando o JMeter




O 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 Samplers e Logic Controllers:

Samplers — São controladores pré-definidos para requisições especificas (HTTP,FTP,LDAP e outros).
Logic Controllers — São controladores mais genéricos. Podendo ser customizada com a inserção de outros controllers, configuration elements, assertions, etc.

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É-REQUISITOS




O 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 post (versão 2.10), é totalmente compatível com a especificação 1.6 e superior do Java.

Não é escopo desse artigo o processo de instalação do JAVA no Linux.


BAIXANDO O JMETER




Na data de publicação desse post, 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 [ENTER]
wget http://ftp.unicamp.br/pub/apache//jmeter/binaries/apache-jmeter-2.10.tgz


INSTALANDO E EXECUTANDO O JMETER




Depois de baixado 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
sh jmeter.sh




Caso esteja em Inglês e deseje escolher o idioma PORTUGUÊS, vá em Options >> Choose Language


MEU PRIMEIRO TESTE




Neste 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 Incializaçã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. A 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 as informações obtidas pelo JMeter durante os testes [IMPORTANTE]. Para isso vá em Grupo de Usuários >> Adicionar >> Ouvinte >> Ver Árvore de Resultados e Ver Resultados em Tabela

Por fim, a estrutura do Plano de Teste ficará como segue imagem:



EXECUTANDO O TESTE




Para 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ÃO




A 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 a 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




Destilando JMeter I: Introdução e Conceitos
Testing performance of web page with Apache JMeter
Using JMeter [OFICIAL]

Fonte: Linux Descomplicado


Avatar do usuário
nuno_nunes
 
Mensagens: 3932
Registrado em: 28 Maio, 2012
Localização: Pampilhosa da Serra - Portugal

Voltar para Scripts, programação e aplicações em desenvolvimento

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes