Um dos maiores problemas que afetam a performance de um e-commerce é a falta de eficácia ao lidar com um alto volume de usuários. Essa situação pode causar lentidão, erros durante a navegação e, muitas vezes, impedir que o usuário finalize sua compra, podendo levar à queda da taxa de conversão, por exemplo.

Por isso, antes do lançamento do site ou da publicação de uma nova versão, é importante certificar-se de que seu ambiente é performático o suficiente para lidar com a quantidade de usuários simultâneos esperada. Testes de performance coletam métricas que indicam como sua aplicação se comporta sob determinada carga de usuários, auxiliando na tomada de decisão dentro da organização.

Nesse artigo iremos explorar algumas dessas métricas e sua importância na análise de performance do seu ambiente.

Métricas ou Indicadores?

Antes de começar, é preciso entender a diferença entre esses dois termos. Valores brutos, como tempo de resposta, total de requisições, tempo do teste são chamados de métricas.

Já os indicadores são valores que derivam das métricas e disponibilizam uma visão mais aprofundada sobre os dados brutos obtidos pelas métricas. Tempo médio de resposta, taxa de erros, vazão e tantos outros, são indicadores.

Métricas de Performance

Em Testes de Performance, métricas são medições que ajudam a avaliar os resultados obtidos durante um teste. Através delas, é possível identificar pontos positivos e negativos no sistema e assim gerar resultados que se transformarão em ações para melhorias.

Abaixo, algumas das métricas e indicadores de performance mais comuns.

Tempo de resposta (Response Time)

Tempo de resposta (ou Response time, em inglês) é a métrica que mede o tempo em que uma requisição leva para responder. Essa medição se inicia no momento que o usuário faz a solicitação até o momento em que recebe uma resposta do servidor. Seus resultados podem ser variados e questões de rede, infraestrutura, banco de dados e tantas outras influenciam diretamente em seus valores.

Existem diversas maneiras de analisar os resultados do tempo de resposta. Uma das maneiras mais comuns e presentes em todas as ferramentas de análise de performance é a média (average). É importante ressaltar que a partir do momento que estamos falando de tempo médio de resposta, e não apenas tempo de resposta, passamos a falar sobre um indicador. 

Tempo médio de resposta consiste em dividir a soma dos tempos pela quantidade de amostras coletadas. Entretanto, as médias podem ser enganosas. Por exemplo, imagine uma situação onde dois sites foram testados e, após o teste, os seguintes resultados foram obtidos:

Cada uma das colunas representa o tempo de resposta de uma requisição diferente, em segundos. Calculando o tempo médio de resposta, teremos o resultado de 8,9 segundos para ambos os sites.

Entretanto, fazendo uma análise mais detalhada, é possível notar que o Site A obteve resultados menores do que o Site B, porém, a requisição de 70 segundos elevou a média, equiparando ambos os sites.

Para evitar problemas de interpretação como esse do exemplo, é comum utilizarmos percentis. Percentil é uma medida que divide a amostragem em 100 partes, de forma crescente e que nos ajuda a ter uma visão mais ampla dos resultados. 

Para explicar como ele funciona, iremos utilizar os mesmos valores do exemplo acima. O primeiro passo é ordenar as amostras em ordem crescente:

Site A: 1, 1, 1, 1, 1, 2, 2, 2, 3, 75

Site B: 6, 8, 8, 9, 9, 9, 10, 10, 10, 10

Nesse caso queremos analisar o 90 Percentil dos tempos de resposta. Na amostra acima, esse valor é referente a 3 segundos para o Site A e 10 segundos para o site B. Com isso, podemos concluir que 90% das requisições para o primeiro site tiveram tempos de 3 segundos ou menores, e do segundo site de até 10 segundos ou menores. Agora, se levássemos em conta a média, teríamos um valor de 8,9 segundos para ambos os sites, o que os colocaria no mesmo patamar.

Tempo de resposta é uma das métricas que fornece um dos resultados mais importantes para grande parte dos negócios. Estudos feitos pela Akamai indicam que a média do tempo de resposta deve ser de no máximo 3 segundos. Tempos maiores do que esse podem levar a uma perda de 20,5% da conversão em dispositivos móveis e 21,8% no computador. 

Vazão (Throughput)

Esse é o indicador mais incompreendido quando se trata de testes de performance. A vazão (throughput) nada mais é do que uma medida de requisições realizadas com sucesso por unidade de tempo

Quando analisamos um gráfico de vazão, o ideal é que ele consiga acompanhar o crescimento da carga de usuários. A vazão não aumentar conforme a carga de usuários pode ser um indicativo de que há um gargalo na performance que deve ser investigado. 

A imagem abaixo ilustra um comportamento saudável para a vazão. A quantidade de usuários cresce gradualmente, assim como a vazão.

Já a imagem abaixo exibe um comportamento não-saudável. É possível notar como a quantidade de usuários cresce gradualmente, mas a vazão não aumenta conforme.

Além disso, um comportamento inverso também pode indicar um gargalo na performance, quando a carga de usuários aumenta, mas a vazão não.

Uma queda na vazão muitas vezes tem relação com o aumento no tempo de resposta da aplicação. Ou seja, quanto mais tempo a aplicação demora para responder, menos requisições com sucesso serão computadas no cálculo da vazão.

A taxa de erros das requisições também pode impactar no cálculo, já que a vazão geralmente é calculada considerando apenas requisições com sucesso. Ambos os casos precisam ser investigados pelos responsáveis pela aplicação.

Largura de banda (Bandwidth)

Largura de banda (ou Bandwidth, em inglês) é a métrica que exibe a quantidade de dados que são transferidos do servidor para o cliente e vice-versa. Através desta métrica é possível saber se a largura de banda é suficiente para fornecer ou não um nível de desempenho satisfatório para as ações que serão feitas em sua aplicação.

Essa métrica é facilmente confundida com a velocidade em que os dados são trafegados. Para entendermos melhor, vamos utilizar o mesmo exemplo que Albert Witteveen faz no livro “Performance testing – a practical guide.

“Um carro de corrida pode levar um saco de grãos de café a uma cafeteria em uma cidade a quilômetros de distância muito mais rápido que um caminhão. No entanto, um caminhão pode carregar uma tonelada de grãos de café muito mais rápido que o carro de corrida.” 

No exemplo acima, a largura de banda é representada pelo caminhão e o carro de corrida representa a velocidade em que os dados chegam. Nele, podemos ver que a velocidade de transmissão não é tudo, e sim um conjunto entre velocidade e capacidade.

É importante monitorar essa métrica, pois se os valores não aumentarem conforme a carga de usuários, pode significar um gargalo na rede, e com isso a aplicação pode não estar sendo estressada conforme o planejado.

Taxa de Erro (Error Rate)

É comum que erros ocorram, especialmente quando a aplicação está sob estresse. Grande parte das vezes, você irá perceber que os erros começam a surgir quando o volume de usuários ultrapassa a capacidade de processamento da aplicação de entregar o que está sendo requisitado. 

A taxa de erros (ou error rate) é o indicador que calcula a porcentagem de erros nas requisições em relação ao total de requisições.

Quando falamos de aplicações Web, sempre que uma requisição for realizada para a aplicação, o servidor irá retornar um código HTTP. Esse código indica se a requisição foi feita com sucesso, se houve algum redirecionamento ou se algo deu errado. Esses códigos são classificados pelos seguintes intervalos:

  • 2xx – indica sucesso;
  • 3xx – sucesso, mas através de um redirecionamento;
  • 4xx – indica um possível erro no lado do cliente no momento em que a requisição foi feita;
  • 5xx – indica um erro no lado do servidor no momento que a aplicação recebeu a requisição e começou a processá-la.

Retornos com código de erro 4xx e 5xx fazem com que a taxa de erros aumente. É importante ressaltar que esses códigos não informam o causador do problema, mas orientam a investigação do erro.

Taxa de erro é um importante indicador, pois pode ajudar a identificar o momento em que a aplicação começou a não suportar o volume de acessos. Não é possível definir uma taxa limite de erros, mas quanto menor a taxa, melhor.

Conclusão

O entendimento correto das métricas de performance é essencial para que possamos extrair resultados mais precisos dos testes de performance e assim, utilizá-los para identificar os gargalos e problemas nas aplicações, resolvê-los e proporcionar a melhor experiência possível para o usuário. 

Por isso, a realização de testes de performance deve ser feita por profissionais capacitados e com experiência na análise de dados, a fim de evitar erros de interpretação que possam prejudicar a tomada de decisão em seu negócio.