Tutorial de teste de carga do JMeter



Visão geral do teste de carga do JMeter

Cada aplicativo Web tem uma capacidade máxima de carga, e excedê-la pode levar a lentidão, erros ou ineficácia geral. O teste de carga é crucial para avaliar o desempenho de um aplicativo Web. Esse tipo de teste é um componente vital do ciclo de vida de desenvolvimento de software e aplicativos, especialmente ao lidar com aplicativos Web, sites ou APIs que devem lidar com tráfego de usuário significativo. Para garantir que seus aplicativos possam funcionar em condições de pico ou alto tráfego sustentado, é essencial empregar ferramentas de teste de desempenho. O Apache JMeter é uma escolha popular para esse propósito, e se você é novo em testes de desempenho, deve estar se perguntando o que é o JMeter? E como funciona o JMeter? Veremos o JMeter e como usar o JMeter para testes de desempenho.

O que é teste de carga?

O teste de carga é um tipo de teste de desempenho para determinar como seu aplicativo Web se comporta durante condições normais e de pico de carga ou até mesmo para encontrar o ponto de interrupção. É a prática de simular o uso do mundo real, ou carregar, em qualquer software, site, aplicativo web, API ou sistema para analisar e identificar fatores como capacidade de resposta, degradação e escalabilidade.

Ferramentas para Teste de Carga

As ferramentas de teste de carga são extremamente importantes para simplificar suas necessidades de teste de carga e melhorar seu desempenho digital. Não há fim para a quantidade e variedade de ferramentas e plataformas no mercado hoje, com uma variedade de recursos. Há muitas ferramentas de teste de carga, como:

    • LoadView
    • Apache JMeter
    • WebLOAD
    • LoadRunner
    • Tricentis NeoLoad

Para este guia, examinaremos o teste de carga do JMeter. Responderemos a algumas perguntas como: o que é JMeter, como fazer teste de carga JMeter e como usar JMeter para testes de desempenho de API.

O que é JMeter?

Apache JMeter, também conhecido como JMeter, é um software de código aberto amplamente utilizado projetado como uma aplicação Java 100% pura para realizar testes de carga de comportamento funcional e avaliar o desempenho. É uma ferramenta preferida entre desenvolvedores e equipes de desenvolvimento de software para testes de desempenho devido à sua extensa documentação, forte suporte da comunidade e práticas recomendadas estabelecidas. Além disso, ser gratuito e de código aberto o torna uma escolha econômica, mas como é 100% Java, pode levar tempo e recursos adicionais para sua equipe iniciar processos de teste.

O teste de carga do JMeter foi projetado para realizar testes de carga no comportamento funcional e medir seu desempenho. Você pode usar o JMeter para analisar e medir o desempenho de aplicativos ou serviços Web. Ao analisar os dados coletados e gerar relatórios, você pode observar o comportamento do aplicativo e identificar gargalos de desempenho, fornecendo insights valiosos sobre áreas em que os aprimoramentos do aplicativo são necessários.

Por que usar o JMeter?

  • Código aberto: O JMeter é totalmente gratuito, e os desenvolvedores podem usar o código-fonte.
  • Independente de plataforma: O JMeter é 100% e pode ser executado em várias plataformas.
  • Suporte para Multi-Protocolo: O JMeter oferece suporte a testes de aplicativos Web e desempenho de serviços de banco de dados. Ele suporta todos os protocolos básicos, como HTTP, JDBC, LDAP, SOAP, JMS e FTP.
  • Gravar & Reprodução: O JMeter permite que você grave a atividade do usuário em um navegador para ser simulado e, em seguida, você pode reproduzir a gravação.
  • Relatórios personalizáveis: Visualize os resultados do teste em diferentes formatos, como gráficos, tabelas ou arquivos de árvore e log.
  • Apoio à Comunidade: Há uma grande comunidade com ajuda, orientação e tutoriais.

Como executar o teste de carga do JMeter

Vejamos algumas das etapas envolvidas em como usar o JMeter para teste de carga e como configurar um teste de carga básico.
 

Etapa 1: Verificar a compatibilidade do sistema para a instalação do JMeter

Antes de prosseguir com a instalação do JMeter, é crucial garantir que seu sistema atenda aos requisitos. O JMeter é baseado em Java, então você precisa ter o Java 8 ou uma versão superior instalada em seu sistema. Confirme se seu sistema operacional é compatível com o JMeter. O JMeter foi projetado para funcionar em vários sistemas operacionais, incluindo Windows, Linux e macOS.

Depois de confirmar que seu sistema atende a esses requisitos básicos, você está pronto para prosseguir com a instalação do JMeter. Isso garante uma configuração suave e um desempenho ideal durante o teste de carga.
 

Etapa 2: Baixando e instalando o JMeter para seu sistema

Depois de garantir que seu sistema atenda a todos os requisitos necessários, faça o download da versão mais recente do JMeter — escolhendo entre binários ou arquivos de origem com base em suas necessidades específicas. Arquivos binários, compostos de versões pré-compiladas do JMeter, podem ser executados imediatamente, enquanto os arquivos de origem fornecem flexibilidade para configuração manual e compilação por desenvolvedores ou equipes. Normalmente, as versões binárias são preferidas para facilitar a instalação. Diferentes tipos de download de arquivos, como .zip e .tgz, estão disponíveis.

Depois de selecionar sua versão preferida, baixe-a para o seu sistema. Em seguida, você pode abrir o arquivo, movê-lo para um local designado ou criar uma nova pasta para acesso futuro. Inicie o processo de extração, que pode levar alguns minutos. Observe que as etapas de instalação podem variar dependendo do seu sistema operacional, mas uma vez instalado, a funcionalidade do JMeter permanece consistente.
 

Etapa 3: Criar um plano de teste de carga

Os usuários do JMeter podem começar a criar seu plano de teste de carga do zero ou também selecionar entre vários modelos de plano de teste localizados no menu suspenso do arquivo. Os modelos incluem Plano de Teste SOAP WebService, Plano de Teste Web básico e avançado, Plano de Teste FTP (File Transfer Protocol), Plano de Teste Funcional e muitos outros. Esses modelos de teste incluirão todos os elementos específicos necessários, seções e campos que você usará para criar e construir seu plano de teste de carga.

Para criar um Plano de Teste, basta navegar até Arquivo e selecionar Novo ou selecionar o botão Novo na Barra de Ferramentas. É importante notar que você deve executar JMeter no modo GUI para criar o Plano de Teste. O CLI, ou interface de linha de comando, é usado para executar o teste de carga. Em seguida, falaremos sobre como especificar o número de usuários para seu teste de carga, que também é conhecido como Grupo de Threads.
 

Etapa 4: Adicionar e configurar o grupo de threads no JMeter

Para incorporar um Grupo de Threads, siga estas etapas: Clique com o botão direito do mouse em Plano de Teste, passe o mouse sobre Threads (Usuários) e clique em Grupo de Threads.

Na caixa de diálogo Grupo de Threads subsequente, você pode editar várias Propriedades de Thread, como Número de Threads (Usuários), Período de Aumento (em segundos) e Contagem de Loops (iterações de teste). Além disso, especifique ações como atrasos, defina os tempos de início e parada do teste e defina respostas aos erros do Sampler. As propriedades do thread são:

    • Número de threads: representa a quantidade de usuários virtuais que se conectam ao servidor.
    • Período de Ramp-Up: indica o tempo que o JMeter leva para fazer a transição do número especificado de threads para um estado de execução.
    • Contagem de loop: indica o número de vezes que cada thread executa a tarefa.
    • Loop Count Infinite: Quando ativado, ele desconsidera a contagem de loops, causando um loop infinito até parar manualmente.
    • Atrasar a criação de threads até que seja necessário: atrasa a criação de threads até que um valor especificado (em segundos) seja atingido.
    • Agendador: Habilita as configurações do agendador para agendar testes em horários específicos quando ativado.

Esta etapa permite a personalização meticulosa dos parâmetros de teste de carga, fornecendo aos usuários controle sobre simultaneidade, duração e condições de teste específicas.
 

Etapa 5: Configurar exemplo no JMeter

No JMeter, os Samplers permitem que o JMeter envie diferentes tipos de solicitações. Por exemplo, eles podem ser uma solicitação HTTP (para um site, aplicativo ou API), solicitação FTP, solicitação SMTP, solicitação TCP e muitos outros. A partir daqui, você insere detalhes adicionais, como o Protocolo (HTTP/S), Nome do Servidor ou IP, Caminho (para página da Web específica) e que tipo de solicitação, como GET, POST, HEAD, PUT, etc., que pode ser usada para teste de carga de API.
 

Etapa 6: Configurar ouvintes

Para analisar os resultados do Sampler no JMeter, a próxima etapa envolve a configuração do que é chamado de Listeners. Na janela Plano de Teste do JMeter, você pode escolher entre vários ouvintes, incluindo Relatório de Resumo, Gráfico de Agregação, Exibir Árvore de Resultados, Exibir Resultados na Tabela e vários outros, para inspecionar e analisar completamente os resultados do teste. Além disso, você tem a flexibilidade de adicionar vários ouvintes a um plano de teste do JMeter. Feito isso, seu plano de teste estará pronto e você poderá continuar a executar o teste.
 

Etapa 7: Gravando os scripts de teste de carga

Se o seu objetivo é realizar testes de carga básicos em nível de protocolo ou HTTP sem configuração extensa, não há nenhuma configuração adicional necessária. No entanto, se você precisar de um teste que se assemelhe às ações do usuário, será necessário utilizar o Gravador de Script de Teste HTTP(S) no JMeter.

No Grupo de Threads, você deve adicionar o Controlador de Gravação. Este controlador permite que você navegue em um site ou aplicativo, registrando suas ações por meio de solicitações HTTP/S. Você também pode incluir vários controladores de gravação por página, e isso economiza tempo para que você não precise adicionar manualmente cada solicitação.

A desvantagem disso é que sua gravação é feita com solicitações HTTP/S e não está gravando dentro de um navegador real da perspectiva do usuário. Você também pode gravar navegadores usando o JMeter Proxy Server, mas isso pode ser um processo tedioso e difícil. Se você está procurando uma solução mais fácil e intuitiva, você pode optar por usar o LoadView, que tem o EveryStep Web Recorder. O gravador do LoadView fornece scripts de apontar e clicar usando navegadores reais sem a configuração complexa e demorada no JMeter.
 

Etapa 8: Executar e executar o teste de carga

Depois de configurar todos os detalhes e configurações do teste de carga, salve o plano de teste. Em seguida, você pode simplesmente selecionar o botão Executar na barra de ferramentas e seu teste começará. Lembre-se de executar o teste no modo CLI para obter melhores resultados.
 

Etapa 9: Exibir resultados do teste de carga

Você verá os resultados do teste na tabela, mas isso pode depender do seu ouvinte. Seus resultados incluirão métricas adicionais, como Tempo (em milissegundos), Status (mostra respostas e erros válidos), Bytes e Bytes Enviados, Latência e Tempo de Conexão. Ao examinar esses resultados, você pode identificar os locais de quaisquer erros ou instâncias de tempos de carregamento lentos.

Como executar o teste de carga de API com o JMeter

Anteriormente, discutimos as instruções passo a passo sobre como configurar um teste de carga baseado em protocolo em um site ou aplicativo com o JMeter. Agora abordaremos o teste de diferentes APIs, como APIs SOAP e REST, com o JMeter. Os procedimentos de instalação e configuração permanecem consistentes com as etapas mencionadas anteriormente. No entanto, nos concentraremos em aspectos fundamentais do teste de API e discutiremos considerações importantes ao conduzir testes de API usando o JMeter.
 

Teste de API Rest com JMeter

As APIs RESTful, abreviação de APIs de Transferência de Estado Representacional, desempenham um papel vital no desenvolvimento de diversos serviços Web. Em contraste com as APIs SOAP, o REST não é um protocolo, mas um estilo de arquitetura que depende de URIs (Uniform Resource Identifiers) e do protocolo HTTP.
 

Etapa 1: Criar um plano de teste de carga

Para começar, abra OTmímetro. Você verá que uma nova janela do Plano de Teste será aberta. Se você já tiver o JMeter aberto, também poderá selecionar o botão Novo na Barra de Ferramentas Principal para criar um novo Plano de Teste.
 

Etapa 2: Adicionar e configurar o grupo de threads no JMeter

Da mesma forma que a seção anterior, a janela Grupo de Threads é onde você pode adicionar o número de usuários (Threads), definir o tempo de ramp-up e o número de iterações de teste (Contagem de Loop) e editar muito mais propriedades.
 

Etapa 3: Configurar o Sampler

Em seguida, precisamos adicionar o Sampler. Você pode escolher entre alguns Samplers pré-configurados no JMeter ou selecionar entre um dos seus. Para este exemplo, usaremos uma opção pré-configurada.

Para iniciar esse processo, clique com o botão direito do mouse no Grupo de Threads, acionando uma janela suspensa. Escolha Adicionar e, em seguida, Amostrador. Uma lista de opções do Sampler será exibida. Para teste de API, opte por Solicitação HTTP, abrindo a janela de configuração onde você pode nomear seu teste e configurar os parâmetros para seu teste de API REST. Vale ressaltar que a janela Solicitação HTTP é dividida em seções Básica e Avançada. Para este teste, vamos nos concentrar nas configurações básicas. Vários campos, incluindo Protocolo, Nome do Servidor ou IP, Número da Porta, Solicitação HTTP (GET/POST/HEAD/PUT/DELETE, etc.), parâmetros e muito mais, estão disponíveis para configuração.

Para começar, insira a URL da API no campo Nome do Servidor ou IP (apenas o nome do domínio), juntamente com o protocolo apropriado e, no campo Caminho, adicione o caminho da API.

Se esta for uma solicitação GET, selecione GET na lista Solicitação HTTP.

Se você tiver certos parâmetros, como uma página específica, você pode adicionar essa parte da URL no campo Parâmetros.

Você também pode incluí-lo no campo Caminho, no entanto, ao adicioná-lo ao campo Parâmetros, você tem opções de campo adicionais, como Código de URL?, Tipo de Conteúdo e Incluir Iguais?

Para determinadas solicitações, é necessário incluir cabeçalhos de solicitação. Para fazer isso, vá para a solicitação HTTP na janela Plano de teste. Clicar com o botão direito do mouse revelará um menu suspenso; selecione Adicionar e, em seguida, Elemento de configuração. Essa ação abre as opções disponíveis. Nesse caso, opte pelo Gerenciador de Cabeçalho HTTP. A janela do Gerenciador de Cabeçalhos HTTP subsequente permite que você insira seus cabeçalhos de API. Depois de definir suas configurações, vá para a próxima etapa.
 

Etapa 4: Adicionar ouvintes

Para incluir ouvintes, basta clicar com o botão direito do mouse no Grupo de threads, escolher Adicionar e, em seguida, Ouvinte. Essa ação solicita um menu suspenso que oferece mais de 15 opções para selecionar. As opções populares incluem Exibir Árvore de Resultados e Exibir Resultados na Tabela. É importante observar que os ouvintes que oferecem representação gráfica, como a Árvore de Resultados de Exibição, podem consumir mais memória e CPU. Depois de adicionar seus ouvintes, salve seu plano de teste.
 

Etapa 5: Executar o teste e exibir os resultados

Depois de configurar e salvar os detalhes e as configurações do teste de carga, inicie o teste clicando no botão Executar na Barra de Ferramentas. A janela exibirá os resultados do Sampler, apresentando vários detalhes, dados e métricas, como latência, códigos de resposta, tempo de conexão, etc., referentes ao teste da API REST.
 

Teste de API SOAP com o JMeter

O SOAP (Simple Object Access Protocol) é distinto de uma API REST, pois opera sob seu próprio protocolo. Ao testar a carga das APIs SOAP, surgem considerações específicas, incluindo segurança e conformidade, requisitos de largura de banda (APIs SOAP normalmente exigem mais recursos) e aspectos funcionais, como lógica de repetição, que está ausente nas APIs REST.
 

Etapa 1: Criar um plano de teste de carga

O JMeter oferece uma variedade de modelos de Plano de Teste acessíveis através do Menu ou do ícone Modelos na Barra de Ferramentas Principal. Uma das opções disponíveis é “Criando um SOAP WebService TestPlan”. Escolher esta opção irá gerar e abrir o Plano de Teste correspondente. Como se trata de um modelo, determinados campos conterão valores de espaço reservado que exigem que você insira os dados e informações relevantes.
 

Etapa 2: Dados de entrada

Semelhante ao que discutimos na configuração de APIs REST, você precisará inserir o número de usuários (Threads), período de ramp-up e loops (iterações de teste) para teste de API SOAP.

Em um subgrupo do Grupo de Threads principal, você pode acessar as configurações de Solicitação HTTP, semelhante à configuração da API REST que abordamos anteriormente. No entanto, o layout desta seção é diferente, como padrão para exibir o corpo da solicitação da API SOAP. Esta seção também inclui subseções para Gerenciador de cabeçalho HTTP e Asserções de resposta. Semelhante à configuração da API REST, você pode incorporar elementos de configuração adicionais, como o Gerenciador de Autorização HTTP, se detalhes de autorização específicos precisarem ser incluídos.
 

Etapa 3: Adicionar HTTP Request Sampler

Para um teste de carga da API SOAP, você desejará adicionar o HTTP Request Sampler. Nesta janela, você precisará inserir os detalhes relevantes, incluindo Nome do Servidor ou IP, Caminho, Solicitação HTTP, Número da Porta e os Dados do Corpo da solicitação SOAP.
 

Etapa 4: Adicionar ouvintes

Depois de configurar o Plano de Teste, você precisará adicionar seus Ouvintes, que exibirão os resultados do teste. Novamente, você pode adicionar quantos ouvintes quiser e conforme apropriado para o teste de carga de API SOAP.
 

Etapa 5: Executar o teste

Depois que a configuração e as definições do Plano de Teste tiverem sido definidas, você poderá finalmente executar o teste de carga da API SOAP e revisar os resultados depois de concluído.

conclusão

Até agora, você já deve ter aprendido o que é o JMeter, como fazer testes de carga do JMeter e como executar testes de carga para APIs com o JMeter. Como você pode ver, a configuração de testes de carga com o JMeter vem com muitas etapas e opções de configuração diferentes, o que equivale a muito tempo gasto configurando testes, em vez de executá-los. Mesmo que o JMeter seja uma solução de código aberto e gratuita, talvez seja necessário procurar outras ferramentas de teste de carga que forneçam recursos melhores e atendam às suas necessidades de negócios.

LoadView: A melhor alternativa do JMeter

O LoadView se destaca como uma das principais soluções de teste de desempenho pago disponíveis atualmente, oferecendo uma variedade de recursos. Isso inclui um gravador de script apontar e clicar, acesso a uma rede global de servidores injetores de carga e a capacidade de configurar vários cenários de curva de carga para maior flexibilidade de teste. Ao contrário do JMeter, o LoadView não requer infraestrutura ou considerações adicionais, pois tudo é gerenciado perfeitamente. Ao contrário do JMeter, que é limitado a testes de carga em nível de protocolo, o LoadView emprega navegadores reais, permitindo que você avalie o desempenho real de sites, aplicativos e APIs críticos. Além disso, o LoadView fornece várias opções, como colocar IPs de proxy estáticos na lista de permissões ou utilizar um agente no local, permitindo testes em aplicativos atrás do firewall e fornecendo maior flexibilidade para testes de desempenho.

O LoadView fornece relatórios e painéis de desempenho fáceis de usar, oferecendo insights claros sobre os fatores que contribuem para um desempenho abaixo do ideal. Além disso, inclui um vídeo de referência para testes de páginas e aplicações web, permitindo uma comparação direta com os relatórios para visualizar a perspectiva do usuário. O LoadView oferece planos mensais e anuais flexíveis, acompanhados de suporte 24×7 para todos os clientes, independentemente do plano escolhido, diferenciando-o de algumas outras ferramentas do mercado.

Leve seu teste de carga para o
Próximo Nível

Experimente recursos incomparáveis com escalabilidade ilimitada. Sem cartão de crédito, sem contrato.