Ainda pouco explorado ou pouco vivido por muitos engenheiros de qualidade, os Testes de Performance tem alto valor aplicado para você e para seu contexto de testes.
Neste artigo, vamos entender mais sobre os Testes de Performance NA PRÁTICA.
[adrotate banner=”4″]
O que são Testes de Performance?
O nome em si, muitas vezes, causa confusão na cabeça das pessoas. O conceito dos Testes de Performance engloba muitos sub-gêneros, iremos resumir em três mais utilizados. Em cada um deles, existe mais subtipos. Entretanto, neste artigo, iremos focar nestes que são a base para todos os outros.
Teste de Carga
O Teste de Carga é onde você “carrega” seu ambiente (pode ser um sistema inteiro, microsserviço, APIs, Brokers, etc) a ser testado com uma carga acima do seu workload atual durante um período. Assim, podendo também ir aumentando a carga durante um período. Entretanto, sempre dentro de um range aceitável para o seu contexto.
Teste de Stress
No Teste de Stress, você “carrega” seu ambiente a ser testado com uma carga muito acima do esperado para o seu contexto normal. Dessa forma, será possível entender como ele vai se comportar e se irá demonstrar falhas ou intermitências.
- Teste de “spike”, endurance, volume e escalabilidade são todos subgêneros com pequenas diferentes nuances para o de stress.
Chaos Teste
Como o próprio nome já diz, o Chaos Teste se trata de você avaliar e saber a partir de qual ponto seu ambiente a ser testado irá quebrar. Assim, poderá extrair métricas necessárias para as análises correspondentes (iremos falar mais sobre abaixo).
Configuração do Teste de Performance
Todos tipos de testes de performance possuem diferentes tipos de configuração de injeção. Então, iremos trazer abaixo alguns exemplos:
- Modelos de workloads abertos e fechados;
Aberto significa que seu ambiente a ser testado pode continuamente receber novas entradas de carga, independente como irá ser tratado isso.
Fechado significa que seu ambiente apenas pode receber nova carga a partir de um determinado momento ou critério pré-estabelecido.
- Entrada de carga em concorrência, sequencial e/ou paralela.
Quais são as vantagens dos Testes de Performance?
Agora, vamos falar sobre as principais vantagens dos Testes de Performance:
- Assegurar disponibilidade, saúde e estabilidade do ambiente;
- Localizar pontos em que seu ambiente apresenta “gargalos”;
- Conhecer pontos de vulnerabilidade de segurança no seu ambiente;
- Produzir métricas para diferentes propósitos como:
- Ter um baixo tempo médio de recuperação do ambiente;
- Ter uma documentação sobre a performance do seu ambiente;
- Montar estratégias de recuperação (melhor se forem automatizadas);
- Criar estratégias de teste.
Testes de Performance na prática
Agora, iremos colocar a mão na massa para criar um step-by-step de como então desenhar sua estratégia!
- Primeiro e mais importante ponto: porque e para que você vai criar seus testes? Precisamos ter muito claro o porquê vamos testar esse ambiente. Por exemplo, você vai criar esses testes porque estamos enfrentando ataques brute force no ambiente e precisamos testar isso também ou porque teremos uma black friday se aproximando?
- Depois, em literal consequência ao anterior, qual é o seu objetivo final? Alguma área requisitou para um propósito? Benchmark? Testar os pontos de maior conversa ou de maior criticidade dentro de um microsserviço? Para entender melhor o seu ambiente e assim criar uma documentação?
- Identificar qual ou quais ambientes serão o alvo.
- Consequentemente, levantar todos possíveis gargalos que esse ambiente já tenha, levantar possíveis filtros que já exista. Por exemplo, firewall ou algumas regras de bloqueios de região, IP, etc.
- Levantar uma documentação prévia sobre esse ambiente e possíveis métricas já existentes.
- Definir ONDE será executado o teste (máquina local, docker, cloud, etc). Lembre-se que cada ambiente possui suas limitações.
- Começar de fato agora com todas essas informações a criar seu plano de teste. Assim, defina quais métricas serão usadas e avaliadas: Na criação: definição de tipos de injeção, qual a carga a ser enviada e quais os cenários. No resultado: fazer asserções (se necessárias), coleta das métrica, geração de reports e persistência em banco de dados.
Exemplos básicos de métricas:
- Tempo de resposta, médio X pico;
- Latência;
- Taxa de erros;
- Uso de CPU e Memória;
- Tempo médio de recuperação;
Esses exemplos se aplicam em diversos contextos como HTTP, Infraestruturas, Brokers, Filas, banco de dados, etc.
- Terminado seu plano e sua execução, agora é só montar toda documentação e reports e entregar os resultados!
Conclusão
Neste artigo, pudemos ver uma pequena parte, a ponta do iceberg, de o que é e como funcionam os testes de performance e sua enorme importância em diversos contextos. Então, não deixem de pesquisar mais a fundo e procurar oportunidades de inserir no seu contexto.
Por fim, seguem alguns links interessantes e ferramentas que recomendo:
Autor: Francisco Antônio Navarro Moral.
[adrotate banner=”5″]
Veja também:
Como fazer testes automatizados com react
Artigos sobre Testes da Luby