paint-brush
Taxa de transferência em testes de desempenho: por que é importantepor@qalified

Taxa de transferência em testes de desempenho: por que é importante

por QAlified7m2023/08/02
Read on Terminal Reader

Muito longo; Para ler

Os testadores de software praticam várias técnicas para verificar a qualidade dos aplicativos. Uma delas é o Teste de Performance, onde a equipe testa a velocidade, tempo de resposta, escalabilidade e confiabilidade do software. A taxa de transferência é uma métrica chave que mostra o número de solicitações que um aplicativo de software pode manipular em um tempo específico (segundo, minuto ou hora).
featured image - Taxa de transferência em testes de desempenho: por que é importante
QAlified HackerNoon profile picture
0-item

Os testadores de software praticam várias técnicas para verificar a qualidade dos aplicativos. O teste de desempenho é uma das medidas decisivas em que a equipe testa a velocidade, o tempo de resposta, a escalabilidade e a confiabilidade do software.

Neste artigo, vamos discutir os principais aspectos sobre a taxa de transferência em testes de desempenho.

Noções básicas de throughput em testes de desempenho

Antes de começar com os detalhes, vamos dar uma olhada em alguns fundamentos do teste de desempenho.

Por que Teste de Desempenho?

O teste de desempenho é importante porque:


  • Além dos problemas lógicos ou funcionais comumente relatados, os aplicativos também enfrentam problemas de rede que determinam sua confiabilidade.


  • Os clientes ficam facilmente frustrados quando a experiência de acessibilidade do aplicativo não é boa.


  • A velocidade e o desempenho do aplicativo mudam de acordo com a região onde estão sendo usados. Portanto, é importante avaliar o desempenho do aplicativo em diferentes velocidades e redes.


  • Um sistema pode funcionar perfeitamente com um número específico de usuários, mas pode se comportar de maneira diferente quando o número de usuários aumenta a partir desse limite. Portanto, é necessário verificar os fundamentos do teste de desempenho em condições específicas.

Quando você deve iniciar o teste de desempenho?

Você pode iniciar o teste de desempenho o mais cedo possível nos estágios de desenvolvimento de seu aplicativo de software. Desta forma, você pode otimizar seu servidor web e evitar custos de negócios em estágios posteriores.


Descobrir os problemas no desempenho após a implantação do aplicativo significa muitas horas de trabalho para corrigir os problemas. Portanto, pode ser muito caro.


Assim que as páginas da web básicas do aplicativo funcionarem, a equipe de garantia de qualidade deverá realizar os testes de carga iniciais. A partir desse ponto, eles devem realizar testes de desempenho regularmente para cada compilação.


Existem diferentes ferramentas e critérios para testar o desempenho dos aplicativos. Aqui vamos falar sobre uma medida importante, ou seja, throughput.

O que é throughput em testes de desempenho?

Cada aplicativo de software ou site tem muitos usuários que realizam diferentes solicitações. Os testadores precisam garantir que o aplicativo atenda à capacidade necessária de solicitações antes de entrar no ar.


Existem alguns princípios básicos de teste de desempenho que precisam ser medidos durante o processo. A taxa de transferência é um deles . Vamos descobrir o que é rendimento em testes de desempenho.

A taxa de transferência é uma métrica chave que mostra o número de solicitações que um aplicativo de software pode manipular em um tempo específico (segundo, minuto ou hora).

Antes de iniciar o teste, precisamos definir uma meta realista de taxa de transferência de desempenho, para que possamos obter resultados mais precisos e confiáveis.


Estes são alguns fatores importantes para determinar a taxa de transferência realista:


  • Quantidade estimada e tipos de usuários que vão utilizar o aplicativo ou site.


  • Comportamento do usuário, ou seja, quais ações ele vai realizar usando o aplicativo.


  • Os tipos de conexão que afetarão a resposta do sistema e também a experiência do usuário.


  • Os efeitos de pausas e atrasos no sistema.

Taxa de transferência no cenário da vida real

Aqui, explicaremos o conceito de taxa de transferência com a ajuda de um exemplo da vida real. Imagine que há uma barraca de fast food chamada “Yummy Burgers”. Eles servem hambúrgueres e batatas fritas para os clientes.


Digamos que os “Hambúrgueres Gostosos” tenham três funcionários na barraca, e cada funcionário sempre leva 5 minutos para servir a comida a um cliente.


Portanto, se eles tiverem três clientes na fila para serem atendidos por três funcionários, isso significa que “Yummy Burgers” pode servir comida para três clientes em 5 minutos.


Portanto, se precisarmos fazer um relatório de desempenho de “Yummy Burgers”, ele mostrará que sua taxa de transferência é de três clientes a cada cinco minutos.


O dilema do Yummy Burgers é que, não importa quantos clientes estejam esperando pela comida, o número máximo que eles podem atender durante um período de tempo específico será sempre o mesmo, ou seja, três. Este é o rendimento máximo .


À medida que mais clientes fazem fila para comer, eles devem esperar sua vez, criando uma fila.

O mesmo conceito se aplica ao teste de um aplicativo da web.


Se um aplicativo da Web receber 100 solicitações por segundo, mas puder lidar com apenas 70 solicitações por segundo, as 30 solicitações restantes deverão aguardar em uma fila.


Nos testes de desempenho, denotamos taxa de transferência como “Transações por segundo” ou TPS .

Taxa de transferência no JMeter de teste de desempenho:

O uso do Apache JMeter é bastante popular para testar o desempenho de um aplicativo de software. O JMeter é útil para determinar o número máximo de usuários simultâneos que o aplicativo pode manipular e também fornece uma análise gráfica para testes de desempenho.


O JMeter fornece várias maneiras de registrar o valor da taxa de transferência. Aqui estão alguns ouvintes do JMeter que você pode usar para essa finalidade:


  • Relatório Resumido
  • Relatório agregado
  • Gráfico agregado
  • Resultados do gráfico


O JMeter também fornece um componente de cronômetro, ' Constant Throughput Timer' , que você pode usar para definir o valor de Transações por segundo (TPS) para testar a carga do aplicativo.


Agora, mostraremos o uso do throughput no teste de desempenho usando o JMeter. Digamos que vamos realizar um teste de amostra com 100 threads simultâneos e rastrear o valor do throughput.


Suponha que temos a versão mais recente do JMeter instalada em nosso sistema e já realizamos todas as outras configurações necessárias. Agora, temos que construir um plano de teste.

1. Configuração do teste

Neste teste, vamos definir cinco elementos ThreadGroup. Cada um desses elementos terá um tempo de aceleração diferente, ou seja, 0, 15, 25, 35 e 45. O tempo de aceleração é a duração para iniciar cada thread. Vamos configurar 100 usuários nesses elementos ThreadGroup.


Se quisermos configurar um número maior de usuários, será necessário mais tempo de ramp-up.


Esses grupos de encadeamentos terão um amostrador HTTP que gerará solicitações na página inicial de um site de amostra (suponha que www.samplesite.com).


No Caso de Uso 1, temos um elemento ThreadGroup configurado com 100 threads, e seu tempo de ramp-up é 0.


Ele terá o campo “Number of Threads” definido como 100. Isso significa que 100 usuários enviarão solicitações de uma só vez. Da mesma forma, também podemos configurar os 4 threads restantes e definir seu tempo de aceleração como 15, 25, 35 e 45. Além disso, nomeie os samplers para cada grupo de threads.


Conforme mencionado anteriormente, esses exemplos de HTTP apontarão para a página inicial do site de exemplo.


É necessário executar esses grupos de encadeamentos em uma sequência adequada. Para isso, selecione “Test Plan” no painel de controle e marque o campo “Run Thread Groups consecutivamente”.

2. Análise dos resultados do teste

“Aggregate Report” é um ouvinte usado para analisar e observar os resultados do teste. Para usar este listener, clique com o botão direito em “Test Plan” e selecione:


Adicionar → Ouvinte → Relatório agregado


Em seguida, clique no ícone Iniciar para executar o teste.


Agora, vamos ver como entender os resultados de throughput do Relatório Agregado.


O primeiro grupo de encadeamentos com tempo de aceleração 0 mostra que todos os encadeamentos colocam uma carga instantânea no servidor iniciando de uma só vez. Este cenário tem um throughput razoavelmente alto, mas não é prático. Portanto, isso não mostrará uma saída realista.


O segundo e o terceiro grupos de encadeamentos têm um tempo de aceleração de um intervalo realista, portanto, é mais provável que eles mostrem rendimento de desempenho adequado e tempo de carregamento de solicitação.


Os grupos de encadeamentos quatro e cinco têm tempo de aceleração mais alto, o que significa que seu rendimento diminuirá.


Portanto, a saída confiável pode ser determinada a partir dos resultados do segundo e terceiro grupo de threads.

Pontos importantes a serem lembrados ao testar a produtividade:

A decisão de implantação de uma nova versão ou alteração depende da capacidade do aplicativo de lidar com TPS específico. Assim, o plano de teste de desempenho tem certas metas de rendimento. Mas precisamos garantir que essas metas sejam realistas e representem as verdadeiras características da produção.


O plano de teste é em vão se passarmos usando condições irrealistas. Por exemplo, o plano de teste descrito acima tinha valores mais altos de taxa de transferência para o primeiro grupo de threads, mas não representava o cenário real do ambiente ativo.


Portanto, ao usar esses métodos, não podemos ter uma ideia adequada se nosso aplicativo vai lidar com a carga real ou não. Portanto, a criação de testes adequados é crucial.

Agora, discutiremos alguns pontos importantes que precisamos considerar para testar a taxa de transferência de desempenho.

  • Projeto de teste apropriado: o projeto de teste determina se o throughput gerado é realista ou não. No cenário em tempo real, cada solicitação pode ser diferente e também pode desencadear processos complicados para obter os resultados necessários. Portanto, precisamos manipular os testes de acordo com o ambiente ao vivo esperado.


  • Representação de Usuários Reais: Cada usuário da aplicação pode ter requisições que afetam os recursos do sistema. Portanto, se usuários reais não estiverem sendo representados no cenário de teste, os resultados podem mostrar uso inexato de recursos no back-end, portanto, o teste não emulará as condições corretas.


  • **==Considere Pausas e Atrasos: ==**Em um ambiente ao vivo, os usuários precisam pensar, pegar e processar informações, inserir informações nos campos, etc. Mas os servidores ainda usam recursos durante essa pausa. Portanto, tente incorporar esses comportamentos de usuário em seus scripts.


  • Velocidade de conexão: os usuários do aplicativo são conectados por meio de diferentes velocidades de rede, regiões ou redes móveis. Portanto, é necessário escolher uma largura de banda que também represente essas conexões de usuário.

Conclusões

Resumindo, a taxa de transferência é um indicador de desempenho crucial de aplicativos da web . Porém, depender apenas das métricas de throughput não é suficiente. Portanto, ele precisa ser verificado com latência e tempos de resposta .


Também é muito importante criar uma taxa de transferência realista para atingir as metas de teste de desempenho definidas.