{"id":658,"date":"2013-12-22T22:10:39","date_gmt":"2013-12-23T00:10:39","guid":{"rendered":"http:\/\/www.viazap.com.br\/?p=658"},"modified":"2013-12-22T22:19:47","modified_gmt":"2013-12-23T00:19:47","slug":"jmeter-saiba-como-testar-o-desempenho-dos-principais-servicos-de-rede","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=658","title":{"rendered":"JMeter &#8211; Saiba como testar o desempenho dos principais servi\u00e7os de rede"},"content":{"rendered":"<table width=\"100%\" border=\"0\" cellspacing=\"3\" cellpadding=\"3\">\n<tbody>\n<tr>\n<td colspan=\"2\">\n<div>\n<h1>Introdu\u00e7\u00e3o<\/h1>\n<p>O\u00a0<em>JMeter<\/em>, \u00e9 uma ferramenta utilizada para testes de carga (Load Test) nos principais servi\u00e7os de rede, como: HTTP, FTP, LDAP, SMTP e outros.<\/p>\n<p>Esta ferramenta \u00e9 parte do projeto Jakarta da\u00a0<em>Apache Software Foundation<\/em>. Sendo assim, \u00e9 importante mensurar quanto um servi\u00e7o de rede pode suportar; obtendo valores como quantidade de conex\u00f5es simult\u00e2neas suportadas, tempo de reposta e disponibilidade, por exemplo.<\/p>\n<p>JMeter \u00e9 flex\u00edvel, simples de usar (n\u00e3o precisa de conhecimentos de programa\u00e7\u00e3o para realizar os testes b\u00e1sicos), funciona atrav\u00e9s de uma interface gr\u00e1fica ou linha de comando.<\/p>\n<p>De acordo com a\u00a0<a href=\"http:\/\/pt.wikipedia.org\/wiki\/JMeter\">Wikip\u00e9dia<\/a>, para a realiza\u00e7\u00e3o de testes, o JMeter disponibiliza diversos tipos de requisi\u00e7\u00f5es e assertions (validam o resultado dessas requisi\u00e7\u00f5es), al\u00e9m de controladores l\u00f3gicos, como loops (ciclos) e controles condicionais para serem utilizados na constru\u00e7\u00e3o de planos de teste.<\/p>\n<p>Al\u00e9m disso, ele disponibiliza um controle de threads (usu\u00e1rios virtuais), chamado Thread Group, no qual \u00e9 poss\u00edvel configurar o n\u00famero de threads, a quantidade de vezes que cada thread ser\u00e1 executada e o intervalo entre cada execu\u00e7\u00e3o, que ajuda a realizar os testes de stress.<\/p>\n<p>E, por fim, existem diversos listeners que, se baseando nos resultados das requisi\u00e7\u00f5es ou dos assertions, podem ser usados para gerar gr\u00e1ficos e tabelas.<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/JMeter---How-work.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_JMeter---How-work.png\" width=\"500\" height=\"307\" border=\"0\" \/><\/a><\/div>\n<p>1.\u00a0<span>Thread Group<\/span>\u00a0&#8211; este \u00e9 ponto de come\u00e7o, todos os outros elementos do Test Plan devem estar sob este.<!--more--><\/p>\n<p>2.\u00a0<span>Controllers<\/span>\u00a0&#8211; estes s\u00e3o divididos em dois grupos:<\/p>\n<ul>\n<li><span>Samplers<\/span>\u00a0&#8211; s\u00e3o controladores pr\u00e9-definidos para requisi\u00e7\u00f5es especificas (HTTP, FTP, LDAP e outros).<\/li>\n<li><span>Logic Controllers<\/span>\u00a0&#8211; s\u00e3o controladores mais gen\u00e9ricos. Podendo ser customizada com a inser\u00e7\u00e3o de outros controllers, configuration elements, assertions, etc.<\/li>\n<\/ul>\n<p>3.\u00a0<span>Listeners<\/span>\u00a0&#8211; estes s\u00e3o os elementos que fornecem acesso as informa\u00e7\u00f5es obtidas pelo JMeter durante os testes.<\/p>\n<p>4.\u00a0<span>Timers<\/span>\u00a0&#8211; por padr\u00e3o, o JMeter faz requisi\u00e7\u00f5es sem pausas entre elas. Os timers s\u00e3o utilizados para incluir pausas entre as requisi\u00e7\u00f5es.<\/p>\n<h1>Pr\u00e9-requisitos<\/h1>\n<p>O JMeter \u00e9 desenvolvido na linguagem de programa\u00e7\u00e3o\u00a0<em>Java<\/em>\u00a0e, portanto, necessita que esta esteja instalada na sua m\u00e1quina. A vers\u00e3o do JMeter, na data deste artigo (vers\u00e3o 2.10), \u00e9 totalmente compat\u00edvel com a especifica\u00e7\u00e3o 1.6 e superior do Java.<\/p>\n<h1>Baixando o JMeter<\/h1>\n<p>Na data de cria\u00e7\u00e3o deste artigo, a vers\u00e3o mais recente \u00e9 a 2.10, que pode ser baixada gratuitamente atrav\u00e9s desse link:<\/p>\n<ul>\n<li><a href=\"http:\/\/jmeter.apache.org\/download_jmeter.cgi\">http:\/\/jmeter.apache.org\/download_jmeter.cgi<\/a><\/li>\n<\/ul>\n<p>Ou baixar a vers\u00e3o 2.10, diretamente executando o comando:<\/p>\n<p><strong>$ cd Downloads<br \/>\n$ wget<\/strong>\u00a0<a href=\"http:\/\/ftp.unicamp.br\/pub\/apache\/\/jmeter\/binaries\/apache-jmeter-2.10.tgz\">http:\/\/ftp.unicamp.br\/pub\/apache\/\/jmeter\/binaries\/apache-jmeter-2.10.tgz<\/a><\/p>\n<h1>Instalando e executando o JMeter<\/h1>\n<p>Depois de baixada a ferramenta, descompacte-a usando o comando abaixo:<\/p>\n<p><strong>$ tar -zxvf apache-jmeter-2.10.tgz<\/strong><\/p>\n<p>O arquivo compactado gerar\u00e1 a pasta\u00a0<span>apache-jmeter-2.10<\/span>. Acesse o diret\u00f3rio\u00a0<span>bin<\/span>\u00a0contido nela e execute script\u00a0<span>jmeter.sh<\/span>\u00a0(ele invoca o arquivo\u00a0<span>.jar<\/span>):<\/p>\n<p><strong>$ cd apache-jmeter-2.10\/bin<br \/>\n$ sh jmeter.sh<\/strong><\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/jmeter-tela-inicial.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_jmeter-tela-inicial.png\" width=\"500\" height=\"234\" border=\"0\" \/><\/a><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>Teste \/ Conclus\u00e3o<\/b><\/p>\n<div>\n<h1>Primeiro teste<\/h1>\n<p>Neste cen\u00e1rio, ser\u00e1 criado um Plano de Testes para verificar o desempenho de um servidor Apache Web (requisi\u00e7\u00f5es HTTP).<\/p>\n<p>Primeiramente, crie um Grupo de Usu\u00e1rios (Threads Group), como segue a imagem:<\/p>\n<p>Plano de Teste \u2192 Adicionar \u2192 Threads \u2192 Grupo de Usu\u00e1rios<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/item-1.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_item-1.png\" width=\"500\" height=\"151\" border=\"0\" \/><\/a><\/div>\n<p>Defina o N\u00famero de Usu\u00e1rios Virtuais e o Tempo de Inicializa\u00e7\u00e3o. Para um teste simples, preencha os valores 100 e 60, respectivamente.<\/p>\n<p>Nesta situa\u00e7\u00e3o, ser\u00e1 simulado acesso de 100 usu\u00e1rios virtuais em 60 segundos; m\u00e9dia de 0,6 por segundo (propor\u00e7\u00e3o TempoInicializa\u00e7\u00e3o por Usu\u00e1riosVirtuais).<\/p>\n<p>Em seguida, ajuste as requisi\u00e7\u00f5es HTTP do Testador (Sampler), como segue a imagem:<\/p>\n<p>Grupo de Usu\u00e1rios \u2192 Adicionar \u2192 Testador \u2192 Requisi\u00e7\u00f5es HTTP<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/item-2.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_item-2.png\" width=\"500\" height=\"240\" border=\"0\" \/><\/a><\/div>\n<p>Defina o IP do servidor e o Caminho de acesso. O campo Caminho refere-se ao caminho absoluto da URL. Caso prefira, preencha com\u00a0<span>\/<\/span>\u00a0(barra), que ir\u00e1 requisitar o arquivo index automaticamente.<\/p>\n<p>Posteriormente, crie um\u00a0<span>Listener<\/span>, que s\u00e3o os elementos que fornecem acesso \u00e0s informa\u00e7\u00f5es obtidas pelo JMeter durante os testes [IMPORTANTE].<\/p>\n<p>Para isso, v\u00e1 em:<\/p>\n<ul>\n<li>Grupo de Usu\u00e1rios \u2192 Adicionar \u2192 Ouvinte \u2192 Ver \u00c1rvore de Resultados<\/li>\n<li>E: Ver Resultados em Tabela<\/li>\n<\/ul>\n<p>Por fim, a estrutura do Plano de Teste, ficar\u00e1 como segue imagem:<\/p>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/estrutura.png\" width=\"425\" height=\"140\" \/><\/div>\n<h1>Executando o teste<\/h1>\n<p>Para executar o Plano de Teste criado, salve em arquivo de configura\u00e7\u00e3o tudo que foi feito. E, posteriormente, v\u00e1 em<\/p>\n<p>Executar \u2192 Iniciar (<span>Ctrl+r<\/span>) para iniciar os testes:<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/1387291803.resultado.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"Linux: JMeter - Saiba como testar o desempenho dos principais servi\u00e7os de rede\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_1387291803.resultado.png\" width=\"200\" height=\"125\" border=\"0\" \/><\/a>\u00a0\u00a0\u00a0<a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/resultado2.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"Linux: JMeter - Saiba como testar o desempenho dos principais servi\u00e7os de rede\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_resultado2.png\" width=\"200\" height=\"125\" border=\"0\" \/><\/a><\/div>\n<h1>Conclus\u00e3o<\/h1>\n<p>A atividade de teste \u00e9 fundamental para a garantia da qualidade dos servi\u00e7os ofertados. Mesmo sendo pouco utilizados no cen\u00e1rio atual e como os custos associados \u00e0 sua execu\u00e7\u00e3o s\u00e3o altos, a utiliza\u00e7\u00e3o de ferramentas que automatizem a cria\u00e7\u00e3o e execu\u00e7\u00e3o dos mesmos, \u00e9 essencial. Pois, fazer medi\u00e7\u00f5es de tempo de resposta e simular muitos usu\u00e1rios acessando ao mesmo tempo uma aplica\u00e7\u00e3o, \u00e9 invi\u00e1vel.<\/p>\n<p>Por isso, deve-se atentar para que os testes reflitam ao m\u00e1ximo a execu\u00e7\u00e3o real do software, tanto no que diz respeito \u00e0s p\u00e1ginas navegadas, como no tempo de intervalo de acesso de uma p\u00e1gina para outra, e tamb\u00e9m ao n\u00famero de usu\u00e1rios simult\u00e2neos.<\/p>\n<p>Mais informa\u00e7\u00f5es:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.bugbang.com.br\/destilando-jmeter-i-introducao-e-conceitos\/\" target=\"_blank\">Destilando JMeter I: Introdu\u00e7\u00e3o e Conceitos<\/a><\/li>\n<li><a href=\"http:\/\/jmeter-expert.blogspot.com.br\/2010\/03\/testing-performance-of-web-page-with.html\" target=\"_blank\">Testing performance of web page with Apache JMeter<\/a><\/li>\n<li><a href=\"http:\/\/jmeter.apache.org\/usermanual\/index.html\" target=\"_blank\">Using JMeter [OFICIAL]<\/a><\/li>\n<li><\/li>\n<\/ul>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Introdu\u00e7\u00e3o O\u00a0JMeter, \u00e9 uma ferramenta utilizada para testes de carga (Load Test) nos principais servi\u00e7os de rede, como: HTTP, FTP, LDAP, SMTP e outros. Esta ferramenta \u00e9 parte do projeto Jakarta da\u00a0Apache Software Foundation. Sendo assim, \u00e9 importante mensurar quanto um servi\u00e7o de rede pode suportar; obtendo valores como quantidade de conex\u00f5es simult\u00e2neas suportadas, tempo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1,51,68,271],"tags":[399,398,395,397,396],"class_list":["post-658","post","type-post","status-publish","format-standard","hentry","category-viazap","category-linux-linuxrs","category-redes-2","category-seguranca-2","tag-de-rede","tag-dos-principais-servicos","tag-jmeter","tag-o-desempenho","tag-saiba-como-testar"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=658"}],"version-history":[{"count":2,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/658\/revisions"}],"predecessor-version":[{"id":660,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/658\/revisions\/660"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}