Testes de desempenho web: um guia introdutório

Desde muito cedo, todos nós convivemos com muitas situações de espera. Quando crianças, precisamos esperar nossa vez de bater na pinhata nas festas de aniversário. Quando adultos, enfrentamos filas em todos os lugares, de pagar as compras do supermercado a comprar os modelos mais recentes de celular. Esperar não é uma atividade agradável para a maioria das pessoas, especialmente quando estão acostumadas à gratificação imediata que a maioria das tecnologias oferece hoje. Sabemos que a paciência das pessoas diminui à medida que a tecnologia fica mais rápida.

Por Marie Cruz, da K6

Estudos de usabilidade desde os anos 90, como os mencionados neste artigo, The Need for Speed, de Jakob Nielsen, mostram que tempos de resposta rápidos são essenciais para a usabilidade web. Os sites devem ser criados com foco na velocidade para oferecer uma ótima experiência do usuário. Hoje, os usuários fecham rapidamente uma aba ou janela quando o site parece lento. O desempenho lento também pode prejudicar o negócio, pois os usuários procuram os concorrentes quando o site não oferece a velocidade a que estão acostumados.

Este guia apresenta uma visão geral dos seguintes temas:

  • O que é desempenho web?
  • Impactos de um site lento
  • Qual deve ser a velocidade dos sites?
  • Métricas de desempenho web
  • Ferramentas para testar o desempenho web
  • Uma abordagem híbrida para testes de desempenho.

O que é desempenho web?

Alguns de nós pensam no desempenho do servidor ou do backend quando falamos de desempenho em geral e, por isso, concentramos as otimizações nessa parte. No entanto, as melhorias de desempenho não param aí. O fato de nossos servidores terem respondido à solicitação do usuário não significa que o resultado seja exibido instantaneamente para ele.

Em termos simples, desempenho web diz respeito à rapidez do seu site quando os usuários o carregam.

Diversos fatores podem afetar o tempo de carregamento do seu site, como a quantidade de arquivos CSS ou Javascript baixados, o navegador utilizado pelos usuários, a capacidade do dispositivo e a conectividade de rede.

Impactos de um site lento

As pessoas reclamam de sites lentos desde a época da internet discada. No entanto, mesmo hoje, com conexões mais rápidas, ainda reclamamos de sites lentos! As redes sociais também facilitaram o compartilhamento das nossas frustrações.

Este estudo atualizado sobre a capacidade de resposta da web mostra que a mediana do tempo para baixar as páginas é de 6 segundos em computadores e, pior, 20 segundos em dispositivos mobile. Temos conexões mais rápidas, mas os sites não estão muito mais rápidos do que há dez anos. Não é de surpreender que as pessoas continuem reclamando!

Um site lento afeta a experiência do usuário e pode ter um grande impacto na reputação da sua empresa, na receita e até no posicionamento nos mecanismos de busca. O Google anunciou que a velocidade da página agora é um fator considerado por seu algoritmo de busca e classificação.

Veja alguns exemplos de como sites lentos afetaram ou podem afetar um negócio:

  • A Amazon constatou que cada atraso de 100ms no carregamento da página representa uma perda de 1% na receita de vendas.
  • A Akamai realizou um estudo que mostra que os consumidores ficam impacientes quando uma página leva mais de dois segundos para carregar, o que resulta em uma taxa de rejeição maior.

Esses exemplos demonstram que o desempenho web é crucial para oferecer a melhor experiência do usuário e que melhorar as principais métricas de desempenho tem um impacto positivo na receita e no posicionamento nas buscas. Se você ainda não está convencido, confira WPO stats para encontrar uma coleção de casos de sucesso que mostram as melhorias obtidas por diferentes empresas ao otimizar o desempenho.

Qual deve ser a velocidade dos sites?

A velocidade da página é o principal indicador a observar quando falamos de desempenho web. Mas qual deve ser o tempo de resposta das páginas? Existe algum número mágico que você precisa conhecer?

Jakob Nielsen resumiu isso muito bem em seu artigo, Tempo de resposta: os 3 limites importantes, no qual afirmou que:

  • 0,1 segundo é aproximadamente o limite para o usuário sentir que o sistema está reagindo instantaneamente, o que significa que nenhum feedback especial é necessário além da exibição do resultado.
  • 1,0 segundo é o limite para que o fluxo de pensamento do usuário permaneça ininterrupto, embora ele perceba o atraso. Normalmente, não é necessário um feedback especial em atrasos de mais de 0,1 e menos de 1,0 segundo, mas o usuário perde a sensação de interagir diretamente com os dados.
  • 10 segundos é o limite para manter a atenção do usuário focada no diálogo. Para atrasos maiores, os usuários vão querer realizar outras tarefas enquanto esperam o computador terminar. Por isso, devem receber um feedback que indique quando o computador espera concluir a tarefa. O feedback durante a espera é especialmente importante quando o tempo de resposta pode variar muito, pois os usuários não saberão o que esperar.

Como regra geral, seu site deve carregar o mais rápido possível, mas sem ser tão rápido que os usuários não consigam acompanhar o que estão fazendo.

O desempenho percebido do seu site também é muito importante. Ele corresponde à rapidez que o usuário sente de forma subjetiva, e não à medição real em si. Por exemplo, é melhor mostrar aos usuários um indicador visual de que algo está acontecendo, como barras de progresso ou animações de carregamento, do que não mostrar nenhum progresso. Assim, os usuários se sentem envolvidos, e o tempo passa mais rápido quando fazemos uma atividade que nos envolve.

Métricas de desempenho web

Para saber a velocidade do seu site, você precisa conhecer algumas métricas específicas de desempenho web. Elas não são regras absolutas, mas são indicadores úteis para entender como seu site se comporta.

Web vitals são métricas que o Google considera essenciais para o desempenho do navegador e a experiência do usuário. Para simplificar as métricas mais relevantes, vou resumir os core web vitals que você precisa conhecer. Esses indicadores são os que o Google considera mais importantes e devem ser aplicados a todos os sites.

  1. Largest Contentful Paint (LCP) – mede o tempo que um navegador leva para renderizar o maior conteúdo da página, como imagens ou vídeos na área visível da tela.
  2. First Input Delay (FID) – mede a primeira impressão do usuário sobre a capacidade de resposta do seu site. O FID indica quanto tempo os usuários precisam esperar por uma resposta após interagir com uma página.
  3. Cumulative Layout Shift (CLS) – mede o maior conjunto de mudanças inesperadas de layout no seu site. Elementos que mudam de posição inesperadamente podem prejudicar muito a experiência do usuário.

Observe que os core web vitals vão evoluir para refletir novas mudanças tecnológicas.

Além dos core web vitals, também é bom conhecer outros web vitals para entender melhor a experiência do usuário.

  1. Tempo até o primeiro byte (TTFB) – mede o tempo entre a solicitação de um recurso e o início da chegada do primeiro byte da resposta.
  2. First Contentful Paint (FCP) – mede o tempo que um navegador leva para renderizar qualquer parte do conteúdo da página.
  3. Total Blocking Time (TBT) – é o tempo em que a thread principal do navegador fica bloqueada por tarefas longas, impedindo uma resposta às interações.
  4. Tempo até a interatividade (TTI) – mede o tempo que uma página leva para ficar totalmente interativa.

Uma abordagem híbrida para testes de desempenho

Até agora, falei apenas sobre desempenho web. Mas isso é apenas um lado da questão. Considerar somente o desempenho web pode criar uma falsa confiança no desempenho geral da aplicação quando o volume de tráfego aumenta.

Você também precisa testar seus sistemas de backend para ter uma visão completa do desempenho da aplicação. Uma forma comum de testar o desempenho do backend é realizar testes de carga no nível de protocolo, pois isso permite simular facilmente milhares de requisições simultâneas.

No entanto, há problemas associados aos testes no nível de protocolo, como:

  • Menor proximidade com a experiência do usuário, pois o navegador é ignorado,
  • A criação dos scripts pode ser demorada, e sua manutenção pode se tornar difícil à medida que a aplicação cresce,
  • As métricas de desempenho do navegador são ignoradas.

Por outro lado, realizar testes de carga com muitos navegadores exige muito mais recursos para gerar carga, o que pode sair bastante caro.

Para lidar com as limitações de cada abordagem, uma prática recomendada é adotar uma abordagem híbrida para testes de desempenho, combinando testes dos sistemas de backend e frontend nos níveis de protocolo e navegador. Nessa abordagem, você gera a maior parte da carga no nível de protocolo e, simultaneamente, mantém um ou dois usuários virtuais no nível do navegador. Assim, também consegue visualizar o que está acontecendo no frontend.

Um usuário acessa o frontend enquanto usuários virtuais enviam várias requisições simultâneas ao backend, ilustrando uma abordagem híbrida para testes de desempenho.

Há várias maneiras de aplicar essa abordagem:

  • Usar uma única ferramenta para ambos, como o xk6-browser, que pode oferecer uma experiência simplificada e uma visão agregada das métricas de desempenho.
  • Usar uma combinação de ferramentas diferentes simultaneamente. Por exemplo, você pode utilizar qualquer uma das ferramentas mencionadas acima, como Google Lighthouse ou WebPageTest, em conjunto com ferramentas de nível de protocolo, como JMeter, k6 ou Gatling.

Seja qual for a abordagem ou ferramenta escolhida, o importante é avaliar cuidadosamente seus requisitos. Por exemplo, você pode começar priorizando o desempenho do frontend, com o objetivo geral de ter um teste que também cubra o desempenho do backend da aplicação.

Conclusão

As empresas dedicam tempo a deixar seus sites bonitos. No entanto, estudos mostram que a funcionalidade não basta. Velocidade e desempenho são igualmente importantes, por isso os testes de desempenho são cruciais hoje. Embora os testes de carga continuem sendo uma excelente abordagem para testar a escalabilidade e a confiabilidade das suas aplicações, os testes de desempenho web são necessários para avaliar a experiência do usuário como um todo.

Para consultar mais materiais, confira:

Fique conectado

com a Abstracta

Notícias, artigos e recursos para construir software melhor.

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

Leia sobre nossa política de privacidade.

Ilustração de duas pessoas conectadas por uma ponte, uma com um notebook e outra com um tablet, representando colaboração e comunicação. Fim do artigo sobre testes de desempenho web.