Comece com o JMeter para testar o desempenho do seu site
Publicados: 2022-05-10Sites lentos e com baixo desempenho nunca atrairão um público. Além disso, embora seu site possa funcionar na velocidade da luz durante os testes, você sabe como ele funcionará quando houver um aumento repentino de tráfego? Ou se o seu negócio teve um surto de crescimento que requer integrações e funcionalidades adicionais?
O que você procura é uma forma de testar o desempenho do seu site em vários cenários. E é aí que entra o teste de desempenho. O principal objetivo do teste de desempenho é garantir que o desempenho do site seja o esperado antes de ser lançado no mercado. Ele ajuda a testar a velocidade, confiabilidade, tempo de resposta e uso de recursos. Uma fantástica ferramenta de código aberto para todos esses testes de desempenho é o JMeter. Dê uma olhada mais profunda no JMeter e descubra como você pode implementar um teste neste artigo.

Por que testes de desempenho
O objetivo do teste de desempenho não é encontrar bugs, mas eliminar falhas de desempenho. Sem realizar um teste de desempenho completo, o site pode sofrer com problemas como ficar lento enquanto vários usuários o usam simultaneamente ou pouca usabilidade. Uma das razões mais importantes para o teste de desempenho é evitar o tempo de inatividade.
Você sabia que cerca de 59% das empresas da Fortune 500 têm cerca de 1,6 horas de inatividade todas as semanas? Um tempo de inatividade de 5 minutos em 2013 custou ao Google.com incríveis US$ 545.000! Uma interrupção inesperada do serviço da Web custou à Amazon uma perda de US$ 1.100 por segundo. Fonte.
Tudo isso pode ser evitado se um teste de desempenho puder simular carga pesada nos servidores, executar testes funcionais, testes de aplicativos e testes de protocolos.
Teste de desempenho usando JMeter
O aplicativo Apache JMeter é um software de código aberto, um aplicativo puramente baseado em Java, projetado para testar carga ou teste de desempenho. Ele foi projetado pela primeira vez por Stefano Mazzocchi da Apache Software Foundation. O JMeter pode simular uma carga pesada em um servidor criando toneladas de usuários virtuais simultâneos para o servidor web.
Como o JMeter realiza testes
O JMeter cria uma solicitação e a envia ao servidor. Depois de receber a solicitação do servidor, ele os coleta e visualiza esses detalhes em um gráfico ou tabela. Em seguida, ele processa a solicitação do servidor e, por fim, gera o resultado do teste em vários formatos, como texto, XML, JSON. A partir dos dados coletados, os usuários podem observar o comportamento do aplicativo e os gargalos de desempenho, oferecendo insights sobre onde o aplicativo precisa de melhorias.
Por que JMeter
- Código aberto - JMeter é um software de código aberto e pode ser baixado gratuitamente
- Independente de plataforma - JMeter é desenvolvido em Java, que é a linguagem de programação mais popular do mundo. Portanto, ele pode ser executado em qualquer sistema operacional.
- Suporte a vários protocolos - O JMeter não apenas suporta testes de aplicativos da Web, mas também avalia o desempenho do servidor de banco de dados. Todos os protocolos básicos como HTTP, JDBC, LDAP, SOAP, JMS e FTP são suportados pelo JMeter.
- Fácil de usar - O JMeter possui uma GUI abrangente, que ajuda a criar planos de teste e configurar os elementos. Adicionar elementos também é fácil. Você só precisa clicar com o botão direito do mouse no plano de teste e adicionar o que precisa fazer.
Elementos do JMeter
- Thread Group - Thread Group é uma coleção de Threads. Cada thread representa um usuário usando o AUT. Cada Thread imita uma solicitação de usuário real para o servidor.
- Samplers - JMeter suporta testes HTTP, FTP, JDBC e muitos outros protocolos. Grupos de threads simulam solicitações de usuários ao servidor. Ajuda o Grupo de Tópicos a saber que tipo de solicitações (HTTP, FTP etc.) ele precisa fazer.
- Ouvintes - Os ouvintes facilitam a visualização dos resultados dos Samplers na forma de tabelas, gráficos, árvores ou texto simples em alguns arquivos de log.
- Configuração - Os elementos de configuração no JMeter são usados para configurar ou modificar as solicitações do amostrador feitas ao servidor.
Como instalar o jmeter
Há apenas um pré-requisito para baixar e instalar o JMeter: ter o Java instalado em seu sistema.

- Baixe o JMeter e instale aqui - https://jmeter.apache.org/download_jmeter.cgi
- Para iniciar o JMeter: Apache jmeter pasta > pasta bin > clique em jmeter.bat
Criar um plano de teste
Etapa 1: adicionar um grupo de tópicos
Vá para adicionar, depois Threads(Users) e selecione Thread users.


Opções
A. Ação a ser tomada após ocorrer um erro
B. Número de threads - Nº de usuários
C. Período de aceleração em segundos - intervalo de tempo entre os acessos dos usuários
D. Contagem de loops - Quantas vezes o teste será executado para o número de usuários
Etapa 2: adicionar solicitação HTTP
Clique com o botão direito do mouse no grupo Thread , adicione um sampler e clique em Http request.
Opções
A. Adicionar “Nome do servidor”
B. Não dê http ou HTTPS pois estes são protocolos que virão na outra caixa e que serão tomados automaticamente no caso de requisição http.
C. Caixa de diálogo Caminho → adicionar barra.

Etapa 3: adicionar ouvinte
Clique com o botão direito do mouse no grupo Thread , adicione um Listener e clique em View result in Table.

Etapa 4: Executando o teste
Salve o teste e clique no botão de seta verde.


Hora de analisar o resultado
- Número da amostra - O não. de threads ou usuários. No relatório, ele mencionará que “esta é a amostra número 1”, o que significa que é o thread 1, depois o thread número 2 e assim por diante.
- Hora de início - Hora de início para cada thread ou usuário
- Nome do thread - O nome do thread é basicamente o nome do grupo de threads aqui. No nome do grupo de threads temos este número 1-1 , 1-2… então este primeiro significa primeira iteração com o primeiro usuário , primeira iteração com o segundo usuário e assim por diante.
- Rótulo - Rótulo é o nome da sua amostra ou solicitação.
- Tempo da amostra - quanto tempo esta amostra (rótulo) levou em termos de am/s.
- Status - Status da solicitação.
- Bytes - Bytes recebidos
- Bytes enviados - Bytes que foram enviados
- Latência - Uma solicitação de tempo do usuário/navegador e o tempo de resposta. Resposta em termos de solicitação viajou do servidor para o cliente/navegador que não inclui o tempo de processamento do servidor. (somente tempo de solicitação e resposta)
- Tempo de conexão - O tempo de conexão é quanto tempo seu aplicativo levou para se conectar ao servidor em milissegundos.
É importante saber que o tempo de latência e conexão deve ser sempre baixo. Um maior tempo de conexão ou latência implica que há um problema com o desempenho do site.