Como usar o Jmeter para testes de desempenho

Índice

O conceito de teste de desempenho

tipo de teste de desempenho

Cenários de aplicativos de teste de desempenho (campos)

Indicadores comumente usados ​​para testes de desempenho

Processo de teste de desempenho

análise de demanda

Configurar um ambiente de teste

Projeto de Cenário de Teste

Projeto de caso de teste e desenvolvimento de script

Preparação de dados de teste

Execução e gerenciamento de testes de desempenho

Análise e ajuste do resultado do teste de desempenho

Relatórios e Rastreamento de Testes


O conceito de teste de desempenho

Definição: O desempenho do software é uma característica não funcional do software. Não se trata de saber se o software pode concluir uma função específica, mas a pontualidade exibida quando a função é concluída.

Pode-se observar pela definição que o desempenho se concentra nas características não funcionais do software, portanto, de maneira geral, o momento de intervir no teste de desempenho é após a conclusão do teste funcional. O teste de desempenho só será realizado quando o teste de função básica do sistema for verificado e o sistema tende a ser estável, caso contrário o teste de desempenho não tem sentido. Além disso, a pontualidade na definição mostra que o desempenho também é um indicador, que pode ser medido pelo tempo ou outros indicadores. Normalmente, usamos certas ferramentas ou meios para detectar se determinados indicadores do software atendem aos requisitos, que é o teste de desempenho .

Definição de teste de desempenho: refere-se ao teste de vários indicadores de desempenho do sistema, simulando várias condições de carga normais, de pico e anormais por meio de ferramentas de teste automatizadas.

Tutorial em vídeo do teste de desempenho jmeter: 2023 mais recente explicação detalhada de todo o processo do projeto de teste de desempenho jmeter de uma grande fábrica, coletado silenciosamente, você não o verá mais tarde_哔哩哔哩_bilibili icon-default.png?t=N6B9https://www.bilibili.com /video/BV1Vu411L77o/?spm_id_from=333.999.0.0

 

tipo de teste de desempenho

  • Teste de referência: Ao aplicar baixa pressão ao sistema, verifique o status operacional do sistema e registre os números relevantes como referência básica
  • Teste de carga: refere-se a aumentar continuamente a pressão no sistema ou aumentar a duração sob uma determinada pressão até que um
    ou mais indicadores de desempenho do sistema atinjam um valor crítico de segurança e o sistema seja pressurizado continuamente para atingir o gargalo, fornecendo dados de referência para afinação .
  • Teste de estresse:
    (1) Teste de estresse de estabilidade: Sob diferentes condições dadas (como uso de memória, quantas solicitações existem em um determinado período de tempo, etc.), as capacidades de processamento e resposta do sistema (a tolerância a falhas do sistema será considerado aqui) capacidade, capacidade de recuperação)
    (2) Teste de estresse destrutivo: pressurize continuamente até que o sistema falhe e desligue, para descobrir onde está a capacidade máxima de carga do sistema
  • Teste de estabilidade: Quando uma determinada pressão de negócios é aplicada ao sistema, o sistema é executado por um período de tempo para verificar se o sistema está estável.
  • Teste de simultaneidade: Testa se há bloqueios ou outros problemas de desempenho quando vários usuários acessam o mesmo aplicativo, o mesmo módulo ou registros de dados ao mesmo tempo,
  • Teste de recuperação de falha: para design de sistema com backup redundante e balanceamento de carga, para detectar se o sistema pode continuar a ser usado se ocorrer uma falha parcial no sistema
  • Teste de configuração: Através do ajuste do ambiente de software e hardware do sistema em teste, entenda o grau de impacto de vários ambientes no desempenho do sistema, de modo a encontrar o princípio de alocação ideal de vários recursos do sistema

imagem.png

Cenários de aplicativos de teste de desempenho (campos)

Cenários de aplicação de teste de desempenho (campos) incluem principalmente:
verificação de capacidade, capacidade de planejamento, ajuste de desempenho, descoberta de defeitos, comparação de benchmark de desempenho,

A tabela a seguir apresenta brevemente e compara os respectivos usos e características desses cenários:

imagem.png

A tabela a seguir mostra a relação entre as áreas de aplicativo de teste de desempenho e os métodos de teste:

imagem.png

Indicadores comumente usados ​​para testes de desempenho

1. Tempo de resposta

Definição: O tempo desde que o usuário envia uma solicitação até quando o usuário recebe os dados de resposta retornados pelo servidor é o tempo de resposta

Método de cálculo: Tempo de resposta = (tempo de rede + tempo de processamento do aplicativo)

Tempo de resposta razoável 2/5/10 (resposta ao cliente em 2 segundos é considerada muito atrativa pelo usuário, em 5 segundos, é ruim, em 10 segundos, má experiência do usuário, mais de 10 segundos, solicitação falha)

Correspondência tempo-carga de resposta:

imagem.png

Descrição do ponto de inflexão na figura:

1. Aumento repentino no tempo de resposta

2. Significa o limite atingido por um ou mais recursos do sistema

3. Os pontos de inflexão geralmente podem ser usados ​​para análise e posicionamento de teste de desempenho

2. Rendimento

Definição: O número de solicitações de clientes processadas pelo sistema por unidade de tempo

Método de cálculo: Taxa de transferência = (número de solicitações) / (tempo total)

Correspondência throughput-load:

① Estágio Ascendente: A vazão aumenta com o aumento da carga, e a vazão é proporcional à carga;

②Estágio estável: O throughput permanece estável com o aumento da carga, sem muita alteração ou flutuação;

③Estágio de descida: A vazão diminui com o aumento da carga, e a vazão é inversamente proporcional à carga;

imagem.png

Quanto maior a área de a1, mais forte a capacidade de desempenho do sistema, quanto maior a área de a2, melhor a estabilidade do sistema e quanto maior a área de a3, melhor a tolerância a falhas do sistema

Taxa de transferência

O tempo de throughput/transmissão, ou seja, a quantidade de dados transmitidos na rede por unidade de tempo, também pode se referir ao número de solicitações de clientes processadas por unidade de tempo, que é um indicador importante para medir o desempenho da rede.

Normalmente, a taxa de transferência é medida por "bytes/segundo", claro, também pode ser medida por "pedidos/segundo" e "páginas/segundo";

3. Número simultâneo

① Simultaneidade em sentido estrito: Todos os usuários executam a mesma operação ao mesmo tempo, geralmente referindo-se ao mesmo tipo de cenários de negócios, como 1.000 usuários efetuando login no sistema ao mesmo tempo;

② Simultaneidade em sentido amplo: vários usuários interagem com o sistema, esses cenários de negócios podem ser iguais ou diferentes e há muitas solicitações cruzadas e processamento;

4. Utilização de recursos

Os indicadores de recursos estão diretamente relacionados ao consumo de recursos de hardware, enquanto os indicadores do sistema estão diretamente relacionados aos cenários e requisitos do usuário:

imagem.png

Indicadores de recursos:
Uso da CPU: refere-se à porcentagem de tempo da CPU consumida pelos processos do usuário e pelos processos do sistema.Por muito tempo, o limite superior geralmente aceitável não excede 85%;

Utilização da memória: utilização da memória = (1- memória livre / tamanho total da memória) * 100%, geralmente pelo menos 10% da memória disponível, o limite superior aceitável de utilização da memória é de 85%;

E/S de disco: os discos são usados ​​principalmente para acessar dados, portanto, quando se trata de operações IO, há duas operações correspondentes. Ao armazenar dados, corresponde a escrever operações IO e ao buscar dados, corresponde a uma leitura Operação IO Geralmente, % Disk Time (a porcentagem de tempo que o disco leva para operações de leitura e gravação) é usado para medir o desempenho de leitura e gravação do disco;

Largura de banda de rede: geralmente medida pelo contador Bytes Total/sec, que é expresso como a taxa de envio e recebimento de bytes, incluindo caracteres de quadro; para determinar se a velocidade de conexão de rede é um gargalo, você pode usar o valor desse contador para comparar com a largura de banda da rede atual;

Indicadores do sistema:
número de usuários simultâneos: o número de usuários interagindo com o sistema por unidade de tempo;

Número de usuários online: o número de usuários que acessam o sistema em um determinado período de tempo, esses usuários não necessariamente enviam solicitações ao sistema ao mesmo tempo;

Tempo médio de resposta: o tempo médio de resposta das transações de processamento do sistema; o tempo de resposta da transação é o tempo consumido desde o cliente que envia a solicitação de acesso até o cliente que recebe a resposta do servidor;

Taxa de sucesso da transação: Nos testes de desempenho, as transações definidas são usadas para medir os indicadores de desempenho de um ou mais processos de negócios, como login do usuário, salvamento de pedidos e operações de envio de pedidos podem ser definidas como transações. Quantas transações definidas o sistema pode concluído com sucesso por unidade de tempo? As transações, até certo ponto, refletem as capacidades de processamento do sistema e são geralmente medidas pela taxa de sucesso das transações;

Taxa de erro de timeout: refere-se principalmente à proporção de falha de transação devido a timeout ou outros erros no sistema para a transação total;

Correspondência utilização-carga de recursos:

imagem.png

Descrição do ponto de inflexão na figura:

1. O uso de recursos de um determinado servidor está gradualmente atingindo a saturação

2. Os pontos de inflexão geralmente podem ser usados ​​para análise e posicionamento de teste de desempenho

5. Outros conceitos comumente usados:

TPS

Transaction Per Second: o número de transações por segundo, que se refere ao número de transações que o servidor pode processar dentro de uma unidade de tempo (segundos), geralmente em solicitação/segundo;

O QPS é uma consulta e o TPS é uma transação, que é o ponto de entrada de uma consulta e também inclui outros tipos de cenários de negócios; portanto, o QPS deve ser um subconjunto do TPS!

SWC

Query Per Second: taxa de consulta por segundo, que se refere à taxa de solicitações de consulta processadas pelo servidor em unidade de tempo (segundos);

Tanto o TPS quanto o QPS são indicadores importantes para medir a capacidade de processamento do sistema e geralmente são combinados com a simultaneidade para julgar a capacidade de processamento do sistema;

Hora de Pensar

O tempo de reflexão, no teste de desempenho, simula a cena real de operação do usuário. Existe um certo intervalo entre as transações operadas pelos usuários e não há pressão no servidor durante esse tempo. Este conceito é introduzido para testes simultâneos (com cenários cross-business), e a proporção de cenários de negócios está mais alinhada com o real cenários de negócios;

PV

Visualização de página: o número de visualizações de página costuma ser um indicador importante para medir o tráfego de uma página ou mesmo de um site;

Para a subdivisão, há o número de visitantes únicos, o número de visitantes repetidos, o número de visitas individuais à página e o tempo de permanência do usuário;

RT/ART

Tempo de resposta/tempo médio de resposta: Tempo de resposta/tempo médio de resposta, refere-se ao tempo que uma transação leva para ser concluída;

De um modo geral, o tempo médio de resposta é mais representativo em testes de desempenho. Para a subdivisão, existem tempos de resposta mínimos e máximos, tempos de resposta do usuário de 50% e 90%, etc.;

 Tutorial em vídeo do teste de desempenho jmeter: 2023 mais recente explicação detalhada de todo o processo do projeto de teste de desempenho jmeter de uma grande fábrica, coletado silenciosamente, você não o verá mais tarde_哔哩哔哩_bilibili icon-default.png?t=N6B9https://www.bilibili.com /video/BV1Vu411L77o/?spm_id_from=333.999.0.0

Processo de teste de desempenho

análise de demanda

Informações do sistema que precisam ser analisadas

imagem.png

Informações comerciais a serem analisadas

imagem.png

avaliação de necessidades de desempenho

Antes de implementar o teste de desempenho, precisamos fazer uma avaliação correspondente do sistema em teste. O objetivo principal é esclarecer se o teste de desempenho é necessário. Se for determinado que um teste de desempenho é necessário, é necessário estabelecer pontos e indicadores de teste de desempenho, esclarecer o que deve ser testado, quais são os indicadores de desempenho e os critérios para aprovação ou reprovação no teste? Os indicadores de desempenho também serão avaliados de acordo com a situação, sendo necessário que o sistema em teste atenda à pressão do negócio por um determinado período de tempo no futuro.
Perspectiva de negócios:
O sistema é interno ou externo à empresa? Quantas pessoas estão usando o sistema?
Perspectiva do sistema:
a) Arquitetura do sistema: b) Requisitos do banco de dados: c) Requisitos especiais do sistema:

Identifique os pontos de teste de desempenho:

  • Negócio-chave:
    determine se o projeto em teste é um negócio-chave e quais são os principais pontos de lógica de negócios, especialmente os pontos de função relacionados à transação. Tais como transferência, dedução e outras interfaces. Se o item (ou ponto de função) não for crítico para o negócio (ou ponto crítico para o negócio)

  • Valor da solicitação diária:
    Determina o valor da solicitação diária de cada ponto de função do projeto em teste (pode-se contar o valor da solicitação em diferentes granularidades de tempo, como: hora, dia, semana, mês). Se o volume diário de solicitações for alto, a pressão do sistema for alta e for um negócio-chave, o projeto precisa ser testado quanto ao desempenho e os pontos-chave de negócios podem ser identificados como pontos de desempenho

  • Complexidade lógica:
    determine a complexidade lógica de cada ponto de função do projeto em teste. Se o volume diário de solicitações de um negócio principal não for alto, mas a lógica for muito complexa, ele também precisará passar no teste de desempenho. O motivo é que em uma chamada distribuída, quando um link responde lentamente, ele afetará outros links, causando um efeito de avalanche.

  • Atividades de promoção da operação:
    Determinar a pressão futura do sistema em teste de acordo com o plano de promoção da operação. Preparar-se para dias chuvosos, prevenir problemas antes que eles aconteçam e reduzir riscos operacionais são os principais objetivos dos testes de desempenho. O desempenho do sistema em teste pode não apenas atender à pressão atual, mas também precisa atender à pressão em um determinado período de tempo no futuro. Portanto, entender o plano de promoção da operação com antecedência desempenha um grande papel na formulação de pontos de desempenho. Por exemplo, o plano de operação requer dados como quantos PVs e UVs o sistema pode suportar todos os dias ou quantas visitas ele precisa suportar após um trimestre. Quando um novo item (ou ponto de função) se enquadra no escopo do plano de promoção da operação-chave, o item (ou ponto de função) também precisa ser testado quanto ao desempenho.

Estabeleça indicadores de desempenho

a. Selecione os principais processos de negócios (importância/frequência)
b. Número de usuários simultâneos
c. Requisitos de taxa de transferência de transação
d. Requisitos de tempo de resposta
e. Requisitos de recursos de ocupação do sistema
f. Requisitos de escalabilidade

Criar um modelo de carga do sistema

  • Nível de negócios:
    (a) Taxa de transferência do processo de negócios principal
    (b) Tempo de pico de distribuição de negócios

  • Carga do sistema:
    (a) throughput de pico/cenário normal
    (b) CPU/IO/MEM/REDE

  • Fontes de dados:
    (a) monitoramento do lado do servidor
    (b) logs do banco de dados
    (c) solicitações do usuário

Desenvolva o tempo de implementação e o plano do plano de teste

Predefina a hora inicial e final e a hora final de cada submódulo deste teste de desempenho
Configuração do ambiente de teste: LAN, máquina virtual, sistema operacional, banco de dados, middleware
Participantes: quem é responsável por quais tarefas, estratégia de teste.
Saída: plano de teste, resultados da análise

Configurar um ambiente de teste

Ambiente da máquina de teste

Ambiente da máquina de execução: Esta é a máquina de execução usada para gerar carga e geralmente precisa ser executada em uma máquina física.
Ferramentas de carga: JDK/Eclipse/LoadRuner ou Jmeter ou Galting, etc.
Ferramentas de monitoramento: Prepare recursos de servidor, JVM e ferramentas de monitoramento de banco de dados para teste de desempenho para análise e ajuste subsequentes de teste de desempenho

ambiente do servidor

Ambiente operacional do sistema: geralmente é nosso ambiente de teste, sistema Linux/banco de dados/serviço de aplicativo/várias ferramentas de monitoramento.
O ambiente de teste da maioria das empresas será inferior ao ambiente de produção, e também é necessário considerar se diferentes configurações de hardware serão um importante fator limitante do desempenho do sistema! Portanto, no ambiente de teste, é necessário implantar vários ambientes de teste diferentes para verificar o desempenho do sistema aplicativo em diferentes configurações de hardware. As configurações são aproximadamente as seguintes: ①Servidor de banco de dados ②Servidor de aplicativos ③Simulador de carga ④Ambiente operacional de software,
plataforma
E analise o teste os resultados do sistema em diferentes configurações e obtenha o resultado ideal (a configuração mais adequada para o sistema atual)


Projeto de Cenário de Teste

Através da comunicação com o departamento de negócios e hábitos operacionais anteriores do usuário, determine o modo de hábito operacional do usuário, bem como o número de usuários em diferentes cenários, o número de operações, determine os indicadores de teste e realize o monitoramento de desempenho, etc.

Projeto de caso de teste e desenvolvimento de script

Escolha LoadRuner ou Jmeter, eu uso Jmeter.

Eu uso ferramentas Jmeter para gravação,
(PS: Se você pode escrever scripts diretamente, escreva o mínimo possível e grave o mínimo possível, a gravação às vezes interfere)

Modifique o script, aprimore o script, torne o script mais alinhado com a lógica de negócios e tenha uma usabilidade mais forte.
(1) Parametrizar a entrada do usuário
(2) Associar dados
(3) Adicionar coisas
(4 Adicionar pontos de verificação)

Script de depuração
(1) Reprodução única do Vugen
(2) Reprodução múltipla do Vugen
(3) Script único do controlador multiusuário
(4) Multiusuário multiscript do controlador
(5) Exibir log de reprodução

Verifique o script
(1) Verifique por ponto de verificação
(2) Verifique visualizando o log do servidor em segundo plano
(3) Veja as alterações em segundo plano em execução por meio do sistema de teste
(4) Use instruções SQL para consultar/inserir/atualizar/modificar para ver o efeito

Preparação de dados de teste

Existem duas maneiras de obter dados:

(1) Puxe dados de produção, tente manter os dados consistentes e a magnitude é suficiente
(2) Use scripts para gerar dados automaticamente ou use ferramentas de teste para gerar dados (como: use JDBC para pré-incorporar dados)

a) Carregar dados de teste: Quantos dados são necessários para testes simultâneos? Como cenário de login?

b) Tamanho dos dados do banco de dados: Para atender ao máximo o cenário de produção, é necessário simular uma grande quantidade de dados online, portanto, uma certa quantidade de dados deve ser inserida no banco de dados com antecedência.

Execução e gerenciamento de testes de desempenho

Execute o script de teste

No ambiente de teste implantado, execute os scripts de teste que projetamos em ordem de acordo com os cenários e números de negócios

Registro do resultado do teste

Dependendo das ferramentas usadas no teste, os resultados são registrados em diferentes formas; métodos de exibição: gráficos de linhas, gráficos estatísticos, tabelas, etc. para o servidor Você pode usar alguns contadores ou ferramentas de monitoramento de terceiros para registrar o uso de recursos e outras condições Após executar o teste, organize e analise os resultados.

imagem.png

Análise e ajuste do resultado do teste de desempenho

Análise de desempenho do sistema do ambiente de teste

De acordo com os resultados do teste registrados antes, após o cálculo, compare com os indicadores de desempenho predeterminados para determinar se os resultados de que precisamos foram alcançados; caso contrário, verifique o ponto de gargalo específico e, em seguida, de acordo com os dados específicos do ponto de gargalo,

Análise de localização de gargalo
Rendimento: 28º princípio (ou seja: 80% do negócio é concluído em 20% do tempo/distribuição normal)
Tempo de resposta: 2/5/10º princípio
Memória, disco, E/S, processo,
hardware de análise de rede, sistema operacional , middleware e gargalos de aplicativos
para análise específica de situações específicas

Recursos de tempo de ajuste de desempenho , recursos de hardware
de recursos humanos , escalabilidade, impacto

Análise do impacto de dispositivos de hardware no desempenho do sistema

Configure vários ambientes de teste diferentes, para que você possa analisar os diagramas de uso de recursos de hardware de diferentes ambientes de teste para determinar se o gargalo está no servidor de banco de dados, no servidor de aplicativos ou em outros aspectos e, em seguida, execute a otimização direcionada e outras operações

Análise de outros fatores influenciadores

Existem muitos fatores que afetam o desempenho do sistema, que podem ser analisados ​​a partir da cena que os usuários podem sentir, onde é relativamente lento e onde a velocidade é aceitável, aqui podemos analisá-lo de acordo com o princípio 2\5\8; quanto a outros fatores como largura de banda de rede, ações de operação,
armazenamento Uma série de fatores de influência, como pool, implementação de encadeamento, mecanismo de processamento do servidor etc., análise específica de problemas específicos,

Problemas encontrados no teste

Durante o processo de execução do teste de desempenho, algumas deficiências funcionais ou defeitos existentes podem ser encontrados, bem como locais que precisam ser otimizados, e o teste precisa ser executado várias vezes.

Relatórios e Rastreamento de Testes

O relatório de teste de desempenho é um marco no teste de desempenho. O relatório pode mostrar os resultados finais do teste de desempenho, mostrar se o desempenho do sistema atende aos requisitos e se há riscos de desempenho

O relatório do teste de desempenho precisa esclarecer:
objetivos do teste de desempenho,
ambiente do teste de desempenho,
regras de construção de dados do teste de desempenho,
estratégia do teste de desempenho,
resultados do teste de desempenho,
instruções de ajuste do teste de desempenho,
problemas encontrados no processo e soluções do teste de desempenho, etc.

Após o engenheiro de teste de desempenho concluir o teste de desempenho, ele precisa registrar os resultados do teste e usá-los como padrão de linha de base para o próximo teste de desempenho, incluindo dados de resultados de teste de desempenho, gargalos de teste de desempenho e soluções de ajuste. Ao mesmo tempo, problemas encontrados no processo de teste, incluindo gargalos de código, problemas de itens de configuração, problemas de dados e problemas de comunicação, bem como soluções ou soluções, precisam ser acumulados para o conhecimento.

 

Acho que você gosta

Origin blog.csdn.net/MXB_1220/article/details/131794796
Recomendado
Clasificación