Ilustração de uma pessoa segurando duas peças de quebra-cabeça roxas encaixadas, com um notebook abaixo e um sol ao fundo.

O Guia Definitivo de
Testes Contínuos

Qualidade Reconhecida Por

08. Testes de Desempenho

Os testes de desempenho servem para simular a carga no sistema sob teste a fim de analisar seu desempenho (tempos de resposta e uso de recursos) para encontrar gargalos e oportunidades de melhoria.

Existem ferramentas específicas para a simulação que automatizam as ações que geram essa carga, por exemplo, as interações entre o usuário e o servidor. Para simular muitos usuários com pouca infraestrutura de testes, as interações são automatizadas no nível do protocolo, o que torna a automação mais complexa (quanto ao trabalho de preparação necessário) do que os scripts automatizados no nível da interface gráfica.

Duas abordagens para os testes de desempenho podem ser distinguidas: testar cedo no desenvolvimento (testando o desempenho de unidades, componentes ou serviços) e testar antes de entrar em produção (no modo de testes de aceitação). O ponto mais importante aqui é que ambas as abordagens são essenciais. É necessário simular a carga esperada antes de entrar no ar, mas nem tudo deve ser deixado para o último minuto, já que, se houver problemas, eles certamente serão mais complexos de resolver. Além disso, testar cada componente com frequência reduz o custo das correções, mas não há garantia de que tudo funcionará corretamente quando integrado e instalado em um servidor e sob a carga esperada.

Aqui, os DevOps são necessários, pois são eles que conseguem analisar os diferentes componentes da aplicação, do sistema operacional, dos bancos de dados etc., e podem lidar com diferentes ferramentas de monitoramento para analisar onde pode haver um gargalo, sendo capazes de ajustar quaisquer configurações conforme necessário. Também é imperativo envolver os desenvolvedores nessas tarefas, já que a automação, uma tarefa de programação, é necessária e, muitas vezes, as melhorias que devem ser feitas estão no nível dos SQLs, do esquema de dados ou em um nível de lógica, algoritmos, código etc.

Para executar testes de desempenho automatizados com frequência, um problema importante é descobrir como garantir que os scripts de teste sejam de fácil manutenção. Isso acontece porque a automação é feita no nível do protocolo e, no caso de sistemas web, por exemplo, é no nível do HTTP, tornando os scripts altamente suscetíveis a mudanças na aplicação. Algumas das ferramentas que surgiram para superar esse problema e que usamos na Abstracta são o Taurus e o Gatling. Embora tenham abordagens diferentes, ambos lidam com uma linguagem de script simples e buscam reduzir sua complexidade. Por exemplo, o Gatling aplica padrões de design de testes como o Page Object, que podem reduzir o impacto das mudanças, aumentando a manutenibilidade.

Isso mostra que, antes de selecionar uma ferramenta, é extremamente importante definir os objetivos dos testes de desempenho, a fim de escolher a que melhor atende às suas necessidades e aos seus desafios. Cada ferramenta vem com suas próprias vantagens e desvantagens e funcionalidades que compensam em diferentes aspectos.

Para saber mais sobre ferramentas e abordagens de testes de desempenho, visite nosso blog de engenharia de desempenho.

Considere os testes de desempenho para a aceitação de um produto, simulando a carga de produção esperada, bem como acompanhar todo o processo de desenvolvimento com testes de desempenho unitários para facilitar a CI.

Baixe o Guia Definitivo de Testes Contínuos em PDF

Tudo o que as equipes precisam saber para o shift-left testing e alcançar o nível de maturidade nos seus processos de engenharia de qualidade que viabiliza o CI/CD.

O conteúdo deste material está em inglês. Você pode solicitar o download normalmente pelo formulário.

Use um e-mail válido que você verifica com frequência.

Este site é protegido por reCAPTCHA e se aplicam a Política de Privacidade e os Termos de Serviço do Google.