Teste de Performance

O Que É Teste de Performance e Por Que É Importante?


 

O teste de performance mede como um site, aplicação web ou API responde conforme o tráfego, usuários simultâneos e volume de transações mudam. Isso ajuda as equipes a avaliar tempos de resposta, throughput, erros, estabilidade e escalabilidade antes que os usuários sejam afetados.



Performance test dashboard showing response time and throughput curves as concurrent users ramp up against a web application

Visão Geral do Teste de Desempenho

Um teste de desempenho coloca um número definido de usuários ou requisições simultâneas em um site, aplicativo web ou API, aumenta essa demanda ao longo de uma curva planejada e registra o que muda: tempos de resposta, throughput, taxa de erros e quanta capacidade do servidor, banco de dados e rede o sistema utilizou para acompanhar. O resultado é um conjunto de números comparados com uma meta, não uma impressão de quão rápido o site aparenta ser.

A meta pode ser um site público, uma jornada autenticada através de um portal ou aplicativo SaaS, uma sequência de chamadas API ou um aplicativo web interno protegido por firewall.

O objetivo não é fazer um site rápido em geral. É confirmar que suas páginas, fluxos de trabalho e chamadas API mais importantes atendem aos requisitos definidos nos níveis de tráfego esperados. Um checkout pode funcionar normalmente para um usuário, mas ficar lento ou expirar quando centenas de clientes fazem pedidos ao mesmo tempo.

O teste funcional confirma que uma página ou transação funciona corretamente. O teste de desempenho mede se ela permanece rápida, estável e confiável conforme o tráfego aumenta.

O Que Você Pode Testar em Desempenho?

O teste de desempenho geralmente cobre quatro alvos HTTP/S: sites, aplicativos web, APIs e aplicativos web internos. Cada um requer scripts e medições diferentes.

AlvoO Que o Teste MedeJornadas Típicas
SitesResposta da página e estabilidade conforme o tráfego de visitantes aumenta, incluindo o efeito no servidor web, CDN, origem e scripts externos.Página inicial, landing pages, páginas de produtos, busca no site.
Aplicações webJornadas multi-etapas executadas por usuários simultâneos, incluindo o tempo que um navegador real gasta renderizando e executando JavaScript.Login, busca, formulários, carrinhos de compra, checkout, portais, dashboards autenticados.
APIsTempos de resposta dos endpoints, throughput, erros, autenticação, manipulação de payload e sequências de chamadas multi-etapas em diferentes volumes de requisições.Endpoints REST e SOAP, troca de token seguida de chamadas de dados, backends móveis e parceiros.
Aplicações web internasAs medições acima, executadas contra sistemas inacessíveis da internet pública através de IPs estáticos liberados ou um injetor de carga instalado localmente.Intranets, portais de RH e finanças, ambientes de pré-produção.

Por que o Teste de Desempenho é Importante

O valor de um teste de desempenho é uma resposta específica que chega antes que os usuários encontrem o problema:

  • Gargalos aparecem antes do lançamento. Uma consulta lenta ou um pool de conexões subdimensionado aparece em um relatório de teste em vez de na fila de suporte.
  • Planos de capacidade e escalabilidade são verificados. Regras de autoscaling, configurações de cache CDN e tamanhos de instância são suposições até que o tráfego as comprove.
  • As jornadas que geram receita permanecem protegidas. Login, busca, checkout, upload de arquivos e as chamadas API por trás deles são os caminhos a testar primeiro.
  • Eventos de pico produzem menos lentidões, erros e interrupções. Lançamentos, campanhas, janelas de inscrição e vendas sazonais geralmente têm padrões de tráfego previsíveis que podem ser testados antecipadamente.
  • Regressões são detectadas. Mudanças de código, API, banco de dados, infraestrutura e serviços externos alteram parcialmente o desempenho, e o desvio se acumula ao longo das versões.
  • Decisões de lançamento e objetivos de nível de serviço têm evidências. Um número p95 contra uma meta é mais fácil de agir do que uma opinião de que o site “parece lento”.

Tipos de Teste de Desempenho

Cada tipo aplica o tráfego de forma diferente para responder a uma questão específica. A maioria dos programas combina vários tipos.

Tipo de TesteQuestão RespondidaUso Típico
Teste de cargaO sistema suporta a demanda esperada e máxima?Confirmar que uma campanha planejada ou uma manhã normal de segunda-feira permanecem dentro dos limites de tempo de resposta e erro.
Teste de estresseOnde o sistema falha e como se recupera?Ultrapassar o pico para encontrar o primeiro componente que quebra, depois verificar a recuperação quando a carga diminui.
Teste de picoO que acontece quando a demanda sobe ou cai repentinamente?Vendas relâmpago, lançamentos de ingressos, propagandas na TV, notificações push e a recuperação depois.
Teste de resistência (soak)O desempenho degrada durante uma execução longa?Manter a carga normal por horas para expor crescimento de memória, vazamentos de conexão, preenchimento de disco e efeitos de expiração de cache.
Teste de volumeO que acontece quando o sistema processa grandes quantidades de dados?Catálogos grandes, importações em massa, geração de relatórios e consultas em tabelas grandes.
Teste de escalabilidadeA capacidade adicionada produz a melhoria esperada conforme a demanda cresce?Verificar se dobrar instâncias ou aumentar limites de autoscale de fato aumenta o número de usuários suportados.
Teste de capacidadeQuantos usuários, requisições ou transações o sistema atual suporta dentro dos critérios de aceitação?Definir um limite documentado para planejamento de capacidade e compromissos com vendas e marketing.
Teste de base (baseline)Qual é o resultado atual que futuras mudanças serão comparadas?Registrar uma execução de referência antes de um lançamento, migração ou mudança na infraestrutura.

Teste de resistência e teste soak são dois nomes para o mesmo teste, não dois tipos diferentes. E a linha entre teste de carga e teste de estresse é a que as equipes mais confundem, então tem uma página própria: teste de carga vs. teste de estresse.

Diagram showing performance testing as the parent category with eight test types beneath it: load, stress, spike, endurance, volume, scalability, capacity, and baseline

Teste de desempenho é a categoria. Cada tipo abaixo altera quanto tráfego chega, quão rápido, e por quanto tempo.

Teste de Desempenho vs. Teste de Carga

Teste de desempenho é a prática mais ampla de avaliar velocidade, estabilidade, escalabilidade e uso de recursos sob diferentes condições. Teste de carga é um tipo de teste de desempenho focado na demanda esperada e de pico.

Os termos são frequentemente usados como sinônimos porque o teste de carga é normalmente o primeiro teste de desempenho que as equipes executam. Outros tipos de teste são necessários para encontrar pontos de ruptura, degradação a longo prazo ou problemas de escalabilidade.

Teste de DesempenhoTeste de Carga
EscopoCategoria ampla contendo vários tipos de testeUm tipo de teste de desempenho
Principal questãoComo o sistema performa sob condições definidas?Ele suporta a demanda esperada e de pico?
Condições possíveisBaseline, carga, estresse, pico, resistência, volume e escalabilidadeTráfego realista normal e de pico
SaídaEvidências sobre velocidade, estabilidade, escalabilidade, uso de recursos e gargalosEvidências sobre desempenho conforme usuários ou transações aumentam

Para uma comparação que também cobre testes de estresse, leia teste de desempenho vs. teste de estresse vs. teste de carga.

Como Realizar Testes de Desempenho

Os passos abaixo aplicam-se a uma landing page, fluxo de checkout ou sequência autenticada de API.

1. Defina a Meta e os Critérios de Aceitação

Declare o que o teste precisa comprovar, em números. Exemplos: tempo de resposta p95 abaixo de 2 segundos para checkout com 1.500 usuários simultâneos; taxa de erro abaixo de 0,5%; a API de pedidos mantém 400 transações por segundo. Um teste sem critérios de aprovação/recusa produz dados, mas não uma decisão.

2. Modele o Tráfego do Site, Aplicação ou API

Recolha análises web, logs de acesso, dados APM e previsões de negócio. Identifique as páginas ou jornadas críticas, como o tráfego se divide entre elas, pico de simultaneidade, taxas de requisição, tempo de reflexão entre etapas, mix geográfico e chamadas API por sessão. Visualizações de página não são usuários simultâneos: 100.000 visualizações diárias podem significar um pico de algumas centenas de sessões simultâneas, e o modelo deve indicar quais.

3. Prepare um Ambiente de Teste Representativo

Combine o stack web de produção, build da aplicação, tamanho do banco, comportamento de CDN e cache, dependências da API, integrações e regras de escalabilidade o mais próximo possível. Use contas de teste seguras e sandboxes de pagamento. Onde o ambiente deve ser diferente, registre a diferença para que ninguém interprete o resultado como garantia de produção.

4. Escolha o Tipo de Teste e o Método de Teste

Escolha carga, estresse, pico, resistência, volume, escalabilidade ou uma combinação com base na questão do passo 1. Depois escolha como gerar tráfego. Testes HTTP/S enviam requisições diretamente e são eficientes para volume alto contra páginas e APIs. Testes em navegadores reais executam JavaScript e seguem comportamentos multi-etapas do usuário, medindo o que a pessoa espera. Muitas equipes executam testes via protocolo para escala e um grupo menor de usuários em navegador real para experiência do usuário.

5. Estabeleça uma Linha de Base

Execute um teste controlado com carga moderada antes de mudar qualquer coisa. Isso confirma que o script completa, os dados de teste são válidos e os geradores de carga não são gargalos. Registre o resultado e as condições do teste porque diferenças no cache, dados de teste ou ambiente podem tornar comparações posteriores pouco confiáveis.

6. Execute o Teste e Monitore Todo o Sistema

Aumente a demanda ao longo da curva de carga planejada (rampa constante, passo ou pico súbito) em vez de aplicar um número não explicado de usuários ao mesmo tempo. Capture dados do servidor web, aplicação, infraestrutura, banco, rede e serviços externos junto com os resultados do teste. Sem dados do servidor, você saberá que algo ficou lento, mas não o que.

7. Analise os Gargalos

Compare resultados com os critérios de aceitação primeiro. Depois correlacione transações lentas ou erros com CPU, memória, banco, cache, fila, pool de conexões, rede e comportamento de dependências na mesma janela temporal. Pare quando puder nomear o componente e a condição sob a qual se degrada, não quando tiver um tempo médio de resposta.

8. Corrija, Reteste e Automatize

Mude uma variável importante de cada vez quando possível, reexecute o mesmo cenário e compare com a linha de base. Depois adicione testes de regressão menores ao CI/CD para que transações críticas rodem a cada build, e agende testes maiores antes de lançamentos principais, campanhas e picos sazonais.

Métricas Chave para Testes de Desempenho

Métricas de teste descrevem o que os usuários experimentariam. Métricas do sistema ajudam a explicar porquê. Você precisa de ambos para os mesmos minutos do teste para chegar à causa.

MétricaO Que DemonstraComo Usar
Percentis de tempo de resposta (p50, p95, p99)Quanto tempo as requisições típicas, lentas e mais lentas levam.Defina metas no p95 ou p99. A média pode esconder requisições lentas; percentis mostram a experiência dos usuários mais lentos.
Throughput (requisições ou transações por segundo)Quanto trabalho o sistema completa por segundo.Plote contra carga. Quando o throughput se estabiliza enquanto usuários continuam subindo, encontrou o teto.
Taxa de erro e timeoutPorcentagem de requisições que retornam erro ou não respondem no tempo.Defina um limite rígido. Um teste que passa no tempo de resposta mas retorna 3% erros não passou.
Usuários simultâneos ou sessões ativasQuantos usuários simulados estavam ativos em cada ponto.Use como eixo x, nunca como único alvo. Combine com tempo de resposta, throughput e critérios de erro.
Uso de CPUComputação usada por servidores de aplicação e banco de dados.CPU perto de 100% enquanto latência sobe indica trabalho limitado pela computação ou capacidade insuficiente.
Uso e crescimento de memória ao longo do tempoMemória em uso e seu crescimento durante a execução.Crescimento constante sob carga constante indica vazamentos, crescimento de cache ou objetos nunca liberados.
Atividade de disco e redeThroughput de I/O, latência e uso de banda.Verifique quando CPU e memória parecem ok mas o tempo de resposta sobe.
Tempo, conexões e bloqueios de consultas no banco de dadosDuração da consulta, conexões abertas e esperas por bloqueios.Compare com a transação que ficou lenta. Exaustão do pool de conexões costuma aparecer aqui primeiro.
Profundidade ou acumulo na filaTrabalho aguardando em filas de mensagens, jobs ou requisições.Acúmulo crescente sob carga estável indica que consumidores não acompanham produtores.
Tempos no navegadorTempo até o primeiro byte, DOM pronto, carregamento da página e tempo para cada elemento em um navegador real.Separe lentidão do servidor de scripts do navegador, tags externas e entrega de ativos.

Métricas de teste identificam sintomas. Dados do servidor, banco e observabilidade localizam a causa. Relatórios de desempenho do LoadView cobrem o lado do teste, desde gráficos resumidos até gráfico cascata para cada sessão. Mas o lado do servidor deve vir do seu próprio monitoramento ou APM, alinhado à linha do tempo do teste.

Como Ler Resultados de Testes de Desempenho

Alguns padrões se repetem na maioria dos sistemas web. Nenhum prova uma causa raiz sozinho, mas indica onde investigar a seguir.

O Que Você VêOnde Investigar
O tempo de resposta sobe enquanto o throughput para de aumentarO sistema atingiu saturação. Encontre qual recurso saturou primeiro: CPU, conexões, threads ou dependência a jusante.
A CPU permanece perto da saturação enquanto a latência sobeAlta demanda de CPU, códigos ineficientes ou capacidade insuficiente para a carga.
A memória continua crescendo durante um teste longoVazamentos, caches não limitados, objetos de sessão nunca liberados ou coleta de lixo que não acompanha.
Erros aumentam quando conexões atingem um limitePools de conexão do banco de dados, limites de serviços a jusante, limites de conexões do load balancer ou servidor web, ou limitação de taxa.
Uma transação fica lenta enquanto o resto permanece estávelCaminho do código e dependências dessa transação: uma consulta específica, uma chamada a serviço externo, um bloqueio ou um relatório síncrono.
Tempo no navegador sobe enquanto a resposta do servidor permanece constanteJavaScript do navegador, scripts externos, ativos grandes ou comportamento de CDN nas regiões testadas.
Chart of a load test showing throughput flattening and response time climbing sharply after the saturation point as concurrent users increase

Quando o throughput se estabiliza e o tempo de resposta começa a subir, o sistema provavelmente atingiu um limite de capacidade.

Quando Executar Testes de Desempenho

Teste de desempenho não é uma tarefa única antes do lançamento. Os gatilhos úteis:

  • Logo no início do design, enquanto arquitetura e jornadas importantes ainda estão sendo definidas e mudanças são baratas.
  • Após mudanças significativas no código, esquema de banco, infraestrutura ou integrações, incluindo mudanças em scripts externos e configuração de CDN.
  • No CI/CD, como verificações curtas de regressão nas transações mais críticas.
  • Antes de lançamentos principais, campanhas, picos sazonais e migrações, no nível de tráfego previsto para o evento.
  • Após incidente em produção, para confirmar que o conserto mantém sob as condições que causaram o problema.
  • Em agenda, para detectar deriva de desempenho que nenhuma versão isolada explicou.

Teste de Desempenho vs. Teste de Velocidade de Site

Um teste de velocidade de site carrega uma página ou sessão em um momento, geralmente sem outro tráfego no site, e relata quanto tempo levou. É útil para otimização de front end e para comparar uma build com outra.

O teste de desempenho aplica níveis variados de tráfego ou usuários simultâneos para ver como um site, aplicativo ou API se comporta conforme a demanda aumenta. Ambos reportam tempo de página ou resposta. O teste de desempenho adiciona o que um teste de velocidade não responde: quantos usuários o sistema suporta, taxa de erro no pico, onde o throughput fica estável e quanto tempo o sistema permanece estável. E uma página que pontua bem em um teste de velocidade pode falhar com 500 sessões simultâneas.

Como Escolher uma Ferramenta de Teste de Desempenho

Avalie uma ferramenta de teste de desempenho e carga na nuvem baseada nos testes que você precisa executar, não na quantidade de características:

  • Suporta sites, aplicações web multi-etapas e os protocolos de API que você usa, incluindo fluxos de autenticação.
  • Pode modelar tráfego realista: jornadas de navegador, sequências de API, tempo de reflexão, variação de dados e curvas de carga ajustáveis.
  • Fornece escala suficiente para seu pico, de locais que combinam onde seus usuários estão.
  • Suporta testes de protocolo, testes em navegador real ou ambos, dependendo do que você precisa medir.
  • Produz percentis utilizáveis, detalhes de erros, resultados por transação e relatórios que você pode compartilhar com pessoas que não executaram o teste.
  • Integra-se com CI/CD e com suas ferramentas de monitoramento ou observabilidade para o lado servidor.
  • Suporta aplicações web internas quando o teste por trás do firewall é requerido.
  • É mantida pelas pessoas que criarão e reexecutarão os testes.

Melhores Práticas em Testes de Desempenho

  • Comece com uma pergunta específica de negócio ou engenharia, depois desenhe o teste que a responde.
  • Construa cargas baseadas em análises, logs e previsões em vez de suposições.
  • Teste login, busca e transações de checkout, não apenas a homepage.
  • Use volumes de dados realistas e ambientes que correspondam à produção quando possível, e documente onde diferem.
  • Separe problemas no sistema testado de limites na configuração de geração de carga. Verifique CPU e rede do gerador de carga antes de culpar a aplicação.
  • Acompanhe percentis, erros, throughput e recursos do servidor juntos para a mesma janela de teste.
  • Altere uma variável principal de cada vez ao diagnosticar melhorias.
  • Salve linhas de base e compare o mesmo cenário após cada mudança.
  • Inclua dependências externas e latência geográfica quando elas afetam a jornada do usuário, já que usuários em produção não as evitam.

Teste de Desempenho com LoadView

O LoadView é uma plataforma de teste de carga na nuvem para medir o desempenho de sites, aplicações web multi-etapas e APIs sob tráfego. A carga vem de uma nuvem gerenciada, então não há infraestrutura de geração de carga para construir ou manter.

Onde o volume de requisições é a questão, testes HTTP/S enviam milhares de requisições simultâneas e relatam tempos de resposta, throughput e erros por endpoint. Onde a jornada do usuário é a questão, teste de carga de aplicação web executa scripts em navegadores reais, então execução de JavaScript e tempo de renderização são parte da medição. Scripts são gravados com o EveryStep Web Recorder clicando a jornada uma vez. Teste de carga de API cobre endpoints REST e SOAP, incluindo sequências autenticadas e multi-etapas.

As curvas de carga são ajustáveis: uma curva em passos aumenta usuários simultâneos gradualmente em um período definido, uma curva baseada em meta gera uma taxa de transação requerida dentro de um intervalo fixo, e uma curva dinâmica ajustável permite que equipes mudem a carga de usuários enquanto o teste roda. O tráfego pode vir de mais de 40 zonas na rede geograficamente distribuída, então latência regional e comportamento de CDN fazem parte do resultado.

Relatórios mostram o plano de execução, transações por minuto, tempos de resposta e erros por tipo, com gráfico cascata para cada sessão para rastrear uma transação lenta até uma requisição específica. LoadView integra-se com Jenkins, Azure DevOps e CircleCI. Jenkins e CircleCI podem usar um Limite de Sessões Falhadas para sinalizar builds quando a porcentagem permitida de sessões falhadas é excedida. Aplicações internas podem ser testadas via IPs estáticos liberados ou um injetor de carga instalado localmente com teste por trás do firewall.

LoadView mostra como o website, aplicação web ou API performou durante o teste. Use dados de monitoramento do servidor ou APM junto com os resultados do LoadView para identificar a causa subjacente de respostas lentas ou erros.

FAQ de Teste de Desempenho

O Que É Teste de Desempenho para um Site ou Aplicação Web?

Aplica um número controlado de usuários ou requisições simultâneas ao site ou aplicação e registra tempos de resposta, throughput, erros e uso de recursos conforme essa demanda muda. O resultado mostra se jornadas como login, busca e checkout atendem requisitos definidos em tráfego esperado e de pico.

Qual a Diferença Entre Teste de Desempenho e Teste de Carga?

Teste de desempenho é a categoria ampla. Teste de carga é um tipo dentro dela que aplica demanda esperada e de pico para checar se o sistema permanece dentro de suas metas. Testes de estresse, pico, resistência, volume, escalabilidade, capacidade e baseline são outros tipos, cada um respondendo a uma questão diferente. Veja a comparação acima.

Quais São os Principais Tipos de Teste de Desempenho?

Carga, estresse, pico, resistência (também chamado soak), volume, escalabilidade, capacidade e baseline. Diferem em quanto tráfego aplicam, quão rápido chega, por quanto tempo dura e qual o objetivo: confirmar um alvo, encontrar um limite ou registrar um ponto de referência. A tabela de tipos lista a questão que cada um responde.

Quais Métricas um Teste de Desempenho Deve Medir?

No mínimo: percentis de tempo de resposta (p50, p95, p99), throughput, taxa de erro e timeout, e usuários simultâneos. Combine com CPU do servidor, memória, disco e rede, tempo e conexões de consulta ao banco e profundidade da fila. Sites e aplicações web também precisam de tempo de navegador para visualizar lentidões no cliente.

Como Teste de Desempenho é Diferente de Teste de Velocidade de Site?

Um teste de velocidade carrega uma página para um visitante e reporta quanto tempo levou. Teste de desempenho envia muitos usuários ou requisições simultâneas e mede como tempo de resposta, erros e capacidade mudam conforme a demanda cresce. Uma página pode pontuar bem num teste de velocidade e ainda falhar com algumas centenas de sessões simultâneas.

Teste de Desempenho Pode Ser Automatizado no CI/CD?

Sim. Testes curtos contra transações críticas podem rodar em cada build, com o pipeline falhando quando a taxa de erro ou tempo de resposta ultrapassa um limite definido. Testes maiores de carga, estresse e resistência levam mais tempo e geralmente rodam programados ou antes de lançamentos principais, não a cada commit.

Teste de Desempenho Deve Usar Navegadores Reais ou Requisições HTTP/S?

Use ambos onde couber. Testes HTTP/S geram alto volume de requisições de forma barata e servem para APIs e questões de capacidade do servidor. Testes em navegador real executam JavaScript, renderizam a página e seguem jornadas multi-etapas, medindo o que o usuário espera. Muitas equipes fazem testes HTTP/S para escala e um grupo menor em navegador real para experiência do usuário.

Comece a Testar Desempenho

Testes de desempenho úteis começam com requisitos mensuráveis, uma carga construída a partir de dados de análises e logs, e o mesmo cenário reexecutado após cada mudança para comparar resultados. Defina os critérios, modele o tráfego e rode a primeira linha de base na jornada do usuário mais importante, seguindo os oito passos acima.

Leve Seus Testes de Carga para o
Próximo Nível

Experimente recursos inigualáveis com escalabilidade ilimitada. Sem cartão de crédito, sem contrato.