Tutorial de primeiros passos do Apache JMeter

1. Breve introdução

O Apache JMeter é uma ferramenta de teste de estresse baseada em Java desenvolvida pela organização Apache. Usado para software de teste de estresse, foi originalmente projetado para teste de aplicativos da web, mas posteriormente expandido para outras áreas de teste. Ele pode ser usado para testar recursos estáticos e dinâmicos, como arquivos estáticos, servlets Java, scripts CGI, objetos Java, bancos de dados, servidores FTP e muito mais. O JMeter pode ser usado para simular grandes cargas em servidores, redes ou objetos, para testar sua força e analisar o desempenho geral em diferentes categorias de estresse. Além disso, o JMeter permite testes funcionais/de regressão de aplicativos criando scripts com asserções para verificar se seu programa retorna os resultados esperados. Para máxima flexibilidade, o JMeter permite o uso de expressões regulares para criar asserções.

2. Baixe e instale

Como o Jmeter é desenvolvido com base em java, primeiro você precisa baixar e instalar o JDK e configurar as variáveis ​​de ambiente. O requisito mínimo do JMeter é o Java 8, que é compatível com versões superiores. O site oficial recomenda o uso da versão mínima necessária.

Endereço de download do site oficial do Jmeter: https://jmeter.apache.org/download_jmeter.cgi

Baixar Jmeter

Após a conclusão do download, descompacte o pacote zip, localize o diretório bin e  apache-jmeter-5.2.1\bin\jmeter.batclique duas vezes para iniciar o Jmeter

Iniciar Jmeter

  • Nota: Haverá duas janelas quando for aberto, a janela de comando do Jmeter e a interface gráfica de operação do Jmeter, e a janela de comando não pode ser fechada.

Interface aproximada

3. Configurações básicas

Mudança de idioma do Jmeter

  • Método temporário : clique em  Options →  Choose Language →  Chinese(Simplified) para alternar para chinês simplificado, apenas neste momento, após fechar o Jmeter, a próxima inicialização restaurará o idioma padrão.

mudar de idioma

  • Método permanente : abra o diretório bin no arquivo descompactado do Jmeter, localize jmeter.propertieso arquivo e abra-o com um editor, #language=eninsira uma linha abaixo language=zh_CN, salve após a modificação e reinicie o Jmeter. A interface padrão é exibida em chinês simplificado.

Modificar idioma padrão

Modifique a codificação padrão do Jmeter para utf-8 para resolver caracteres distorcidos do console

  • Abra o diretório bin no arquivo descompactado do Jmeter, encontre jmeter.propertieso arquivo e abra-o com um editor

  • existir#The encoding to be used if none is provided (default ISO-8859-1)、#sampleresult.default.encoding=ISO-8859-1

  • Insira uma linha abaixoThe encoding to be used if none is provided (default utf-8)、sampleresult.default.encoding=utf-8

  • Salve e reinicie o Jmeter após a modificação

modificar código

4. Escrever scripts de teste de projeto

4.1. Adicionar grupo de tópicos

  • Clique com o botão direito em "Test Plan" → "Add" → "Thread (User)" → "Thread Group"

novo grupo de discussão

  • Configurar parâmetros do grupo de threads

configuração

Explicação detalhada dos principais parâmetros do grupo de roscas:

  1. Número de threads: número de usuários virtuais. Um usuário virtual ocupa um processo ou thread. Quantas visitas de usuário simuladas preencherão o número de threads.

  2. Tempo de aceleração (segundos): Quanto tempo leva para os usuários virtuais configurados inicializarem. Se o número de threads for 100, e o tempo de preparação for 5, então leva 1 thread 5por segundo para iniciar , ou seja, 1 thread por segundo. Equivale a simular 1 acesso de usuário por segundo, e zerar é o que entendo como acesso simultâneo.1002020

  3. Número de loops: Se o número de threads for 100, o número de loops será 100. Então o número total de solicitações é 100*100=10000 . Se "Forever" estiver marcado, todos os threads continuarão enviando solicitações até que você opte por parar de executar o script.

4.2. Adicionar interface de teste

  • Clique com o botão direito em "Your Thread Group" → "Add" → "Samplers" → "HTTP Requests"

adicionar solicitação

  • Spring-boot Preencha os parâmetros de solicitação da interface, testarei o serviço local aqui  (o código-fonte de demonstração usado neste tutorial está no final do artigo), você pode consultar a figura a seguir para preencher:

Preencha a interface

Explicação detalhada dos principais parâmetros da requisição Http (quem já fez testes de interface deve começar rapidamente):

  • Protocolo: envie o protocolo de solicitação HTTP para o servidor de destino, pode ser HTTPou HTTPS, o padrão é HTTP.

  • Nome ou IP do servidor: HTTPo nome do servidor de destino ou IP.

  • Número da porta: O número da porta do servidor de destino, o valor padrão é 80

  • Método: HTTPo método de envio da solicitação, os métodos disponíveis incluem GET, POST, HEAD, PUT, OPTIONS, TRACE, DELETEetc.

  • Caminho: URLcaminho de destino ( URLa parte restante após a remoção do endereço do servidor, porta e parâmetros).

  • Codificação de conteúdo: Método de codificação, o padrão é ISO-8859-1codificação e é configurado aqui utf-8.

  • Parâmetros: Envie os parâmetros juntamente com o pedido. Para os parâmetros enviados no pedido URL, o utilizador pode URLdefinir todos os parâmetros desta tabela, sendo que cada linha da tabela é um parâmetro (correspondente ao URLda  key=valuetabela). Note que você precisa verificar "codificação" ao passar parâmetros para chinês ".

4.3. Adicionar visualização da árvore de resultados

  • Clique com o botão direito em "Your Thread Group" → "Add" → "Listener" → "View Results Tree"

adicionar resultado

  • Aqui, modificamos o formato dos dados de resposta (escolha qualquer formato que você retornar, eu retorno json aqui), executamos a solicitação Http e você pode ver os dados de resposta retornados por essa solicitação.

Ver resultados

4.4. Adicionar variáveis ​​definidas pelo usuário

  • Adicione variáveis ​​definidas pelo usuário para parametrização da solicitação Http, clique com o botão direito do mouse em "Your Thread Group" → "Add" → "Configuration Components" → "User-Defined Variables":

variável personalizada

  • Adicione um parâmetro de nome de usuário (correspondente à sua chave de parâmetro de solicitação real, aqueles que fizeram testes de interface devem entendê-lo)

adicionar variável

  • Use este parâmetro na requisição Http, o formato é: ${key}, por exemplo:

usar parâmetros

  • Aqui tenho um método para consultar os usuários pelo nome de usuário, então após alterar os parâmetros, o resultado da execução novamente é zero dados do usuário

Veja a árvore de resultados novamente

4.5, asserção json (porque eu retorno json aqui, outros requisitos devem ser selecionados de acordo com a situação real)

  • Adicione uma asserção: Clique com o botão direito do mouse em "Sua solicitação HTTP" → "Adicionar" → "Asserção" → "json Assertion"

imagem.png

  • Configure o conteúdo específico da asserção json

conteúdo da declaração

  • Resultado da asserção: clique com o botão direito do mouse em "Sua solicitação HTTP" → "Adicionar" → "Ouvinte" → "Resultado da asserção"

resultado da afirmação

sucesso de afirmação

Para demonstrar a falha, modifiquei o conteúdo da assertiva para zerar

falha na asserção

4.6. Adicionar relatório de agregação

  • Clique com o botão direito em "Your Thread Group" → "Add" → "Listener" → "Aggregate Report" para armazenar o relatório de teste de desempenho

adicionar relatório

Até agora, concluímos um script de teste de interface básico

5. Teste de desempenho

  • Para testar o efeito, simulo 100 usuários para acessar e obter dados simultaneamente, fazer um loop 6 vezes e modificar os dados do grupo de threads da seguinte maneira:

Modificar grupo de threads

  • Volte para o relatório agregado e execute este teste de estresse

teste de pressão

  • Relatório de teste de análise (primeiro deixe este teste de estresse ser executado até a conclusão)

Dados de teste

Explicação detalhada dos parâmetros do relatório de agregação:

  1. Label: Cada  JMeter (  elementpor exemplo, tenho apenas um aqui  Spring WebFlux) tem um  Name atributo, e o valor do atributo é exibido aqui  Name .

  2. Amostras: o número de solicitações - indica quantas solicitações foram enviadas neste teste e simulei 100um ciclo de usuário 6aqui 100*6=600.

  3. Average: tempo médio de resposta (unidade: ms). O padrão é um único Requesttempo médio de resposta, quando usado Transaction Controller, também pode Transactionexibir o tempo médio de resposta em unidades.

  4. Median (Mediana): Ou seja,  50% o tempo de resposta do usuário.

  5. Percentil 90% (linha): 90% o tempo de resposta do usuário. Os vizinhos *%concordaram.

  6. Min (Min): Tempo mínimo de resposta.

  7. Valor máximo (Max): O tempo máximo de resposta.

  8. Anormal (erro) %: Taxa de erro - número de solicitações erradas/número total de solicitações.

  9. Throughput (Throughput): Throughput - Por padrão, indica o número de requisições concluídas por segundo ( Request per Second), quando utilizado  Transaction Controller , também pode indicar um  LoadRunner número  semelhante Transaction per Second .

  10. Receber KB/seg: A quantidade de dados recebidos do servidor por segundo, que equivale a KB/ LoadRunnerseg Throughput/Sec.

  11. Send KB/Seg: A quantidade de dados enviados ao servidor por segundo, que equivale a KB/ LoadRunnerSeg Throughput/Sec.

Acho que você gosta

Origin blog.csdn.net/DY_CSDN/article/details/130016640
Recomendado
Clasificación