Uma breve introdução sobre testes de Performance, Stress e Carga

Hugo Pereira Silva
beyondTest
Published in
4 min readJun 9, 2020

--

Este post tem como intenção dar um entendimento prévio para os conteúdos futuros com o Gatling na camada de API, logo este artigo será apresentado de forma simples e objetiva, caso tenha alguma intenção de abordar a parte teórica mais a fundo e suas anuências, recomendo abrir os links de referencia no fim da página.

Abaixo estão alguns comentários dos principais tipos de testes, neles há uma descrição sucinta de suas responsabilidades, pontos relevantes, e logo em seguida em qual cenário seria interessante utilizar.

Testes de Performance

Este teste tem a finalidade de mensurar o desempenho de um sistema e seus componentes em uma situação específica de tráfego. Esse teste normalmente não fornece resultados de aprovação ou reprovação. Resumindo, a principal responsabilidade é mostrar se o sistema atende os critérios de desempenho (e/ou) determinar um comportamento de referência para a aplicação.

Principais pontos

  • Ajuda a definir os critérios de desempenho, o famoso “benchmarks”
  • Auxilia a validar o consumo dos recursos, a disponibilidade e a confiabilidade do serviço
  • Validar que o serviço performa corretamente
  • Encontrar, analisar e apontar problemas de performance
  • Validar se o Hardware e infra estão adequados para suprir a carga esperada

Quando usar testes de performance

Teste de performance é aconselhado para verificar o desempenho de servidores, banco de dados, tráfego de rede, comunicação entre micro-serviços. Esse tipo de teste e interessante ser implementado continuamente a fim de monitorar alguma degradação dos recursos que fazem parte do eco sistema do serviço.

Analogia ->Meu carro deve desempenhar um tempo de volta de 1min e 10s na pista de Interlagos, se ele fizer um tempo maior que isso temos que investigar as variáveis para entender o porque.

Testes de Stress

A intenção deste teste é sobrecarregar os recursos existentes da aplicação na tentativa de determinar o numero de operações que suportarão acima do máximo esperado ou ponto de breakdown da aplicação. O objetivo principal desse teste é ver a capacidade de resiliência durante o teste ou após sofrer alguma interrupção.

Principais pontos

  • Brechas de segurança
  • Comportamento da infraestrutura em grandes picos
  • Problemas com corrupção de dados
  • Leak de memoria (Vazamento)
  • Exposição de dados sensíveis

Quando usar testes de Stress

Teste de stress é um tipo de teste bem vindo em momentos sazonais ou em grandes campanhas e eventos ex: Black-Friday, Promoções e etc… no caso seriam eventos que exigem uma grande demanda de recursos. É um teste crucial para identificar pontos cegos e identificar como se comporta a resiliência do sistema em caso de algum eventual problema.

Analogia ->O tanque de guerra foi desenvolvido para andar a 45km(h) e tem um peso de 50 toneladas, como ele se comportaria levando o dobro do peso na velocidade máxima por tempo indeterminado.

Testes de Carga

O objetivo principal deste teste é identificar o comportamento do sistema sob uma carga específica esperada. Sendo assim a responsabilidade é verificar o comportamento durante um pico normal e alto de cargas, é ideal para verificar se a aplicação mantém um comportamento aceitável durante esse processo.

Principais pontos

  • Vazão
  • Previsão de carga em produção
  • Prever requisitos para um balanceamento de carga
  • Bottlenecks — Gargalos
  • Determinar a capacidade da aplicação

Quando usar testes de Carga

Teste de carga é um derivado do teste de performance muito utilizado para determinar quantos usuários o sistema pode suportar, verificar diferentes cenários em diferentes partes do seu sistema, ajuda a observar como determinada carga se comporta e desenvolve no sistema, nisso é possível determinar se a infraestrutura e suficiente ou não para o trafego.

Analogia ->Um ônibus com a capacidade de 45 passageiros sentados e 25 em pé, como ele se comportaria variando o pico de passageiros entre esses valores ou a soma total deles. Como ele se comportaria tendo 20 passageiros sentados e gradativamente fosse entrando 5 em 5 novos passageiros ate chegar a 70?

Bora para o próximo artigo para começar a codar um teste para API hands on com o Gatling!!!

Link do artigo>>>> Artigo Gatling

Referências:

--

--