logo

Teste de performance

Nesta seção, aprenderemos sobre testes de desempenho, por que precisamos deles, tipos de testes de desempenho e o processo de teste de desempenho.

A seguir estão os tópicos que entenderemos nesta seção:

O que são testes de desempenho?

É a parte mais importante dos testes não funcionais.

Verificar o comportamento de um aplicativo aplicando alguma carga é conhecido como teste de desempenho.

Geralmente, esse teste define a rapidez com que o servidor responde à solicitação do usuário.

Ao fazer testes de desempenho no aplicativo, nos concentraremos em vários fatores, como Tempo de resposta, carga e estabilidade do aplicativo.

Tempo de resposta: O tempo de resposta é o tempo que o servidor leva para responder à solicitação do cliente.

Carregar: Aqui, Load significa que quando Número N de usuários usando o aplicativo simultaneamente ou enviando a solicitação ao servidor por vez.

Estabilidade: Para o fator de estabilidade, podemos dizer que, quando N é o número de usuários utilizando o aplicativo simultaneamente por um determinado tempo.

Quando usamos testes de desempenho?

Faremos testes de desempenho assim que o software estiver estável e transferido para produção, podendo ser acessado por vários usuários simultaneamente, por esse motivo, podem ocorrer alguns problemas de desempenho. Para evitar esses problemas de desempenho, o testador realiza uma rodada de testes de desempenho.

Como se trata de testes não funcionais, o que não significa que sempre usamos testes de desempenho, só realizamos testes de desempenho quando o aplicativo está funcionalmente estável.

Nota: O teste de desempenho não pode ser feito manualmente, pois seu resultado caro e preciso não pode ser mantido.

Tipos de testes de desempenho

A seguir estão os tipos de testes de desempenho:

fazer enquanto estiver em java
    Teste de carga Teste de estresse Teste de escalabilidade Teste de estabilidade
Teste de performance

Vamos discutir um por um para lhe dar uma compreensão completa de Carga, Estresse, Escalabilidade, e Estabilidade teste de performance.

Teste de carga

O teste de carga é usado para verificar o desempenho de um aplicativo aplicando alguma carga menor ou igual à carga desejada, conhecido como teste de carga.

Por exemplo: Na imagem abaixo, 1000 usuários são as carga desejada , que é fornecido pelo cliente, e 3/segundo é o meta que queremos alcançar ao realizar um teste de carga.

Teste de performance

Teste de estresse

O teste de estresse é um teste que verifica o comportamento de uma aplicação aplicando carga maior que a carga desejada.

Por exemplo: Se pegarmos o exemplo acima e aumentarmos a carga desejada de 1.000 para 1.100 usuários, a meta é 4/segundo. Ao realizar o teste de estresse neste cenário, ele será aprovado porque a carga é maior (100 ou mais) do que a carga real desejada.

Teste de performance

Teste de escalabilidade

Verificar o desempenho de uma aplicação aumentando ou diminuindo a carga em escalas específicas (não de um usuário) é conhecido como teste de escalabilidade . Os testes de escalabilidade ascendente e de escalabilidade descendente são chamados de testes de escalabilidade.

O teste de escalabilidade é dividido em duas partes:

    Teste de escalabilidade ascendente Teste de escalabilidade descendente

Teste de escalabilidade ascendente

Está testando onde nós aumentar o número de usuários em uma escala específica até chegarmos a um ponto de colisão. Usaremos testes de escalabilidade ascendente para encontrar a capacidade máxima de um aplicativo.

Teste de escalabilidade descendente

diferença entre array e arraylist

O teste de escalabilidade descendente é usado quando o teste de carga não é aprovado e, em seguida, inicia diminuindo o não. de usuários em um determinado intervalo até que o objetivo seja alcançado. Para que seja fácil identificar o gargalo (bug).

Teste de estabilidade

Verificando o desempenho de um aplicativo por aplicar a carga por um determinado período de tempo é conhecido como Teste de estabilidade .

Exemplo de teste de desempenho

Tomemos um exemplo onde iremos testar o comportamento de um aplicativo onde a carga desejada é menor que 1.000 ou igual a 1.000 usuários .

Na imagem abaixo, podemos ver que o 100 acima usuários são aumentados continuamente para verificar o Carga máxima , que também é chamado teste de escalabilidade ascendente .

    Cenário 1:Quando tivermos 1.000 usuários como carga desejada e 2,7/seg for o tempo objetivo, esses cenários serão aprovados durante a execução do teste de carga porque, no teste de carga, nos concentraremos no não. de usuários, e conforme a exigência é igual a 1000 usuários.Cenário2:No próximo cenário, aumentaremos a carga desejada em 100 usuários e o tempo da meta subirá para 3,5seg. Este cenário será aprovado se realizarmos testes de estresse porque aqui a carga real é maior que (1100) a carga desejada (1000).Cenário3:Neste, se aumentarmos a carga desejada três vezes quanto
    1200 → 3,5seg: [não é menor ou igual à carga desejada, por isso será Falhar ]
    1300 → 4seg: [não é menor ou igual à carga desejada. ou seja, Falhar ]
    1400 → Falha
Teste de performance

Nota 1: O teste de volume e absorção é um tipo de teste, mas não um teste de desempenho.

Teste de volume

O teste de volume é um teste, que nos ajuda a verificar o comportamento de um aplicativo inserindo um grande volume de carga em termos de dados, é conhecido como teste de volume, e aqui vamos nos concentrar no número de taxas de dados do que no número de usuários .

Nota 2:
Volume é uma capacidade enquanto Load é uma quantidade, ou seja, teste de carga significa não. de usuários, e teste de volume significa quantidade de dados.

Teste de imersão

Neste tipo de teste, verificaremos o comportamento de uma aplicação no ambiente, que não oferece suporte por um longo período de tempo, é conhecido como teste de absorção.

Geralmente, o teste de absorção é um tipo negativo de teste, pois já sabemos que o servidor ou ambiente não oferece suporte.

Processo de teste de desempenho

O teste de desempenho não pode ser feito manualmente porque:

  • Precisamos de muitos recursos e essa abordagem se tornou mais cara.
  • E a precisão não pode ser mantida quando rastreamos o tempo de resposta manualmente.

O processo de teste de desempenho será concluído nas seguintes etapas:

  • Identifique cenários de desempenho
  • Planejar e projetar script de teste de desempenho
  • Configure o ambiente de teste e distribua a carga
  • Executar scripts de teste
  • Resultado
  • Resultado da análise
  • Identifique o gargalo
  • Execute novamente o teste
Teste de performance

Se realizarmos um fluxo positivo do processo de teste de desempenho, ele poderia seguir o processo abaixo:

Identifique cenários de desempenho

Em primeiro lugar, identificaremos os cenários de desempenho com base nos fatores abaixo:

Cenários mais comuns: Isso significa que podemos encontrar os cenários de desempenho com base nos cenários comumente usados ​​como no Aplicativo Gmail; nós iremos realizar faça login, caixa de entrada, envie itens, escreva um e-mail e saia .

Cenários mais críticos: Cenários críticos significam usados ​​regularmente e importantes para os negócios no aplicativo Gmail fazer login, escrever, caixa de entrada e logout .

Enorme transação de dados: Se tivermos dados enormes significa que n-número de usuários usam o aplicativo ao mesmo tempo.

Depois de identificarmos os cenários de desempenho, passaremos para a próxima etapa.

Planejar e projetar script de teste de desempenho

Nesta etapa, iremos instalar as ferramentas na Máquina do Engenheiro de Teste e acessar o servidor de testes e então escreveremos algum script de acordo com os cenários de teste e executaremos a ferramenta.

matriz de strings em c

Assim que terminarmos de escrever o roteiro, passaremos para a próxima etapa.

Configure o ambiente de teste e distribua a carga

Depois de escrever os scripts de teste, organizaremos o ambiente de teste antes da execução. E ainda, gerencie as ferramentas, demais recursos e distribua a carga de acordo com o ‘Padrão de Uso’ ou mencione a duração e estabilidade.

Executar scripts de teste

Assim que terminarmos de distribuir a carga, executaremos, validaremos e monitoraremos os scripts de teste.

Resultado

Após executar os scripts de teste, obteremos o resultado do teste. E verifique se o resultado atende ou não à meta no tempo de resposta determinado, e o tempo de resposta pode ser máximo, médio e mínimo.

Se a resposta não atender ao tempo de resposta exigido, iremos para o fluxo negativo onde executará as etapas abaixo:

Resultado da análise

Primeiramente analisaremos o resultado do teste se ele atende ou não ao tempo de resposta.

Identifique o gargalo

Depois disso, identificaremos o gargalo (bug ou problema de desempenho ). E o gargalo pode ocorrer por causa de aspectos como o problema no código, problema de hardware (disco rígido, processador RAM), problemas de rede, e a problema de software (sistema operacional) . E depois de encontrar o gargalo, iremos realizar afinação (conserto ou ajuste) para resolver esse gargalo.

Execute novamente o teste

Depois de corrigirmos os gargalos, execute novamente os scripts de teste e verifique se o resultado atende ao objetivo exigido ou não.

O problema ocorre nos testes de desempenho

Ao realizar testes de desempenho no aplicativo, alguns problemas podem ocorrer, e esses problemas também são chamados de problema de desempenho .

Os problemas de desempenho são os seguintes:

    Problema no tempo de resposta Problema de escalabilidade Gargalo Problema de velocidade

Problema no tempo de resposta

O tempo de resposta significa a rapidez com que o servidor responde à solicitação do cliente. Se a solicitação do usuário não for concluída no tempo de resposta determinado, poderá ser possível que o usuário perca o interesse no software ou aplicativo específico. É por isso que o aplicativo ou software deve ter um tempo de resposta perfeito para responder rapidamente às solicitações do usuário.

Problema de escalabilidade

Os problemas de escalabilidade ocorrem quando o aplicativo não consegue atender ao número n de usuários e às solicitações esperadas dos usuários ao mesmo tempo. É por isso que faremos teste de escalabilidade ascendente (verifique a capacidade máxima da aplicação) e teste de escalabilidade descendente (quando o tempo esperado não corresponde ao tempo real).

Gargalo

Gargalo é o nome informal de bug, que ocorre quando a aplicação é limitada por um único componente e gera um impacto negativo no desempenho do sistema.

As principais causas do gargalo são problemas de software (problemas relacionados ao sistema operacional), problemas de hardware (problemas relacionados ao disco rígido, RAM e processador), e problema de codificação, etc.

A seguir estão os gargalos de desempenho mais comuns:

exemplo de substring em java
  • Utilização de memória
  • Uso de disco
  • Utilização da CPU
  • Limitações do sistema operacional
  • Utilização da rede

Problemas de velocidade

Quando realizamos testes de desempenho no aplicativo, o aplicativo deve ter velocidade mais rápida para atrair o interesse e a atenção do usuário, pois se a velocidade do aplicativo for lenta, ele poderá perder o interesse do usuário no aplicativo.

Ferramentas de teste de desempenho

Temos vários tipos de ferramentas de teste de desempenho disponíveis no mercado, sendo algumas ferramentas comerciais e ferramentas de código aberto.

Ferramentas comerciais: LoadRunner[HP], WebLOAD, NeoLoad

Ferramenta de código aberto: JMeter

LoadRunner

É uma das ferramentas mais poderosas de teste de desempenho, usada para apoiar o teste de desempenho para uma ampla variedade de protocolos, diversas tecnologias e ambientes de aplicativos.

Ele identifica rapidamente as causas mais comuns de problemas de desempenho. E também prever com precisão a escalabilidade e capacidade do aplicativo.

JMeter

O software Apache JMeter é uma ferramenta de código aberto, que é um aplicativo inteiramente Java projetado para carregar o comportamento do teste funcional e medir o desempenho.

Geralmente, ele foi projetado para testar aplicativos da Web, mas agora também foi expandido para outras funções de teste.

Apache JMeter é usado para testar o desempenho de recursos estáticos e dinâmicos e de aplicativos da web dinâmicos.
Ele pode ser usado para reproduzir a carga pesada em um servidor, rede ou objeto, grupo de servidores para testar sua resistência ou para analisar o desempenho geral sob diferentes tipos de carga.

WebLOAD

Ferramenta de teste WebLOAD usada para testar testes de carga, testes de desempenho e testes de estresse de aplicativos da web.

A ferramenta WebLOAD combina desempenho, escalabilidade e integridade como um processo único para verificação de aplicativos web e móveis.

NeoLoad

A Neotys desenvolve uma ferramenta de teste chamada NeoLoad. O NeoLoad é usado para testar os cenários de teste de desempenho. Com a ajuda do NeoLoad, podemos encontrar os gargalos na web e no processo de desenvolvimento de aplicativos móveis.

A ferramenta de teste NeoLoad é mais rápida em comparação com as ferramentas tradicionais.

Além delas, algumas outras ferramentas são Carga elétrica, ferramenta de estresse da web, LoadUI Pro, StresStimulus, LoadView, LoadNinja e RedLine13, o que ajuda a testar o desempenho do software ou aplicativo.