Quando se trata de teste de carga, sempre há a pergunta milionária: “Em termos de desempenho, o que o cliente quer fazer com sua aplicação e sistema?” Tenho quase certeza de que você nunca obterá uma resposta fácil para essa pergunta, e a maioria de nós sempre assume algumas coisas e realiza o teste de desempenho, o que pode acabar deixando de testar partes críticas, resultando em um cliente insatisfeito. Um cliente insatisfeito significa perda de negócios para sua organização e uma carreira em declínio como engenheiro de desempenho. Mas não se preocupe, neste artigo vamos falar sobre a criação de uma lista de verificação que ajudará você com essas questões.
Essa lista de verificação é mais um processo passo a passo que você pode seguir e adaptar ao seu ciclo de vida de teste de desempenho. No cenário discutido, não podemos sempre culpar nossos clientes, pois inicialmente eles podem não saber quais resultados exatos de desempenho desejam, mas têm um conhecimento claro sobre como a aplicação funciona sob diferentes condições. Um bom testador de desempenho pode gerenciar essa ambiguidade com um questionário bem definido. E esse é o primeiro item na lista de verificação: o questionário de levantamento de requisitos.
Questionário de Levantamento de Requisitos
Abaixo está um formato de questionário que você pode seguir em seu projeto. Precisamos obter o máximo possível de respostas para essas perguntas. Será melhor se você puder fazer uma chamada para discutir essas questões. Certifique-se de que o arquiteto de aplicação ou desenvolvedor esteja participando da chamada com você e o cliente. Ter pessoal adicional pode ajudar a fornecer insights e descobrir perguntas que você talvez não tenha considerado anteriormente. As perguntas abaixo fornecem um roteiro para criar um teste de carga mais eficiente e eficaz.
| Nº | Tópico | Perguntas |
| 1 | Aplicação | Tipo de aplicação a ser considerada para teste (por exemplo, aplicação web/aplicação móvel, etc.). |
| 2 | Arquitetura da aplicação e tecnologia/plataforma. | |
| 3 | Técnica de balanceamento de carga utilizada. | |
| 4 | Protocolo de comunicação entre cliente e servidor (exemplo: HTTP/S, FTP). | |
| 5 | Objetivo do teste de desempenho. Métricas de desempenho a serem monitoradas (por exemplo, tempo de resposta para cada ação, usuários simultâneos etc.). | |
| 6 | Cenários críticos a serem considerados para teste de desempenho. | |
| 7 | Detalhes de jobs/processos agendados em segundo plano, se houver. | |
| 8 | Técnica usada para gerenciamento de sessão e número de sessões paralelas suportadas. | |
| 9 | SLA/ Requisitos do Cliente | Número esperado de usuários simultâneos e base total de usuários. Distribuição de usuários para os cenários no escopo. |
| 10 | SLA para todas as transações no escopo do PT (throughput esperado, tempo de resposta, etc.). | |
| 11 | Tipos de testes de desempenho a serem realizados (teste de carga, teste de endurance, etc.). | |
| 12 | Sistema/Ambiente | Detalhes do ambiente de teste (web/app/DB, etc., junto com o número de nós). Ambiente recomendado similar ao de produção para execução do teste de desempenho. |
| 13 | Comparação do ambiente de produção com o ambiente de teste de desempenho. | |
| 14 | Se a aplicação será isolada durante a execução do teste de desempenho para evitar interação com outras aplicações. | |
| 15 | Detalhes do mecanismo de registro interno ou mecanismo de monitoramento. | |
| 16 | Outros | Resultados da linha de base de desempenho da aplicação. |
| 17 | Problemas de desempenho atuais, se houver. | |
As respostas a essas perguntas ajudarão você a criar uma estratégia de teste/plano de teste de qualidade. Se o cliente não conseguir fornecer respostas para todas essas perguntas, não se preocupe. Podemos sempre explorar a aplicação em teste e encontrar as respostas. Por exemplo, se uma ferramenta de APM/log está em uso, podemos derivar usuários simultâneos, throughput, e tempo de resposta do sistema de produção. Nunca presuma que você obterá o que precisa sem perguntar.
Encontre uma Ferramenta de Teste de Desempenho Adequada
Um testador de desempenho deve escolher cuidadosamente a melhor ferramenta de teste de desempenho. Há muitos fatores que precisam ser considerados antes de você finalizar e propor a ferramenta. Lembre-se, o orçamento do cliente é sempre um fator importante ao escolher a ferramenta de teste de desempenho.
Se você procura uma ferramenta de teste de desempenho que seja econômica, fácil de usar, e possa fornecer uma solução completa de desempenho, você definitivamente deve experimentar o LoadView. Comparado às ferramentas tradicionais de teste de carga, o LoadView não requer nenhum investimento custoso, configuração demorada, ou conhecimento prévio de frameworks de script frameworks. Além disso, a plataforma oferece mais de 20 localizações globais para iniciar injetores de carga, para que você possa testar e medir o desempenho a partir de múltiplas localizações durante cada teste.
Todos os tipos de teste de desempenho requerem tempo e esforço. Realizar teste de carga pode poupar uma organização de uma possível humilhação, mas ao mesmo tempo, testes em ferramentas gratuitas e de código aberto como o JMeter não justificam o investimento. Quando se trata de realmente entender o desempenho de um site ou aplicação do ponto de vista do usuário final, testes baseados em protocolo não são suficientes. Você também deve medir o desempenho das interações e passos do lado do cliente. Aqui está uma comparação do LoadView com outras soluções de teste de desempenho/carga e por que você deve escolher o LoadView para suas necessidades de teste de desempenho.
Quando se trata de sites e aplicações que carregam lentamente, os clientes podem ficar rapidamente impacientes e sair para encontrar uma alternativa se o seu site/aplicação não atender às expectativas deles. Saber o quanto seu site/aplicação pode suportar é muito importante por várias razões, e existem vários cenários significativos com os quais a plataforma LoadView pode ajudar:
- Adaptabilidade e escalabilidade. Determinar por que seu site ou aplicação desacelera quando múltiplos usuários o acessam.
- Infraestrutura. Entender quais atualizações de hardware são necessárias, se houver. O custo da implementação de hardware adicional e sua manutenção podem ser um possível desperdício de recursos.
- Requisitos de desempenho. Seu site ou aplicação pode lidar bem com poucos usuários, mas o que acontece em situações do mundo real?
- Serviços de terceiros. Ver como serviços externos se comportam sob condições normais ou até mesmo de pico de carga.
Plano/Estratégia de Teste de Desempenho
Depois de reunir os requisitos do cliente e selecionar a ferramenta de teste de desempenho adequada, precisamos documentar nosso plano de teste/estratégia de teste. Certifique-se de obter a aprovação do plano de teste pelo cliente antes de iniciar qualquer atividade de desempenho. Isso é muito importante e ajudará você a evitar problemas desnecessários mais tarde. Estes são alguns pontos que devem ser incluídos no plano de teste.
- Objetivos do Teste de Desempenho. O que pretendemos alcançar.
- Escopo do Projeto. Qual é o escopo do projeto, por exemplo: número de scripts, por quanto tempo precisamos testar, etc.
- Arquitetura da Aplicação. Detalhes da aplicação como servidor de aplicativos, servidor de banco de dados, você pode incluir o diagrama arquitetural se o tiver.
- Detalhes do Ambiente. Detalhes sobre o ambiente em que vamos testar. É sempre bom ter um ambiente isolado para testes de desempenho.
- Configuração da Infraestrutura. Configuração inicial para o teste de desempenho (por exemplo, ambiente em nuvem, instalação da ferramenta, etc.).
- Abordagem do Teste de Desempenho. Como vamos realizar o teste. Devemos começar com um teste baseline com um número menor de usuários, depois gradualmente aumentar os usuários e realizar diferentes tipos de testes como stress, endurance, etc.
- Critérios de Entrada e Saída. Isso é muito importante. Devemos sempre começar o teste de desempenho quando não houver defeitos funcionais. Da mesma forma, devemos documentar quando podemos parar o teste de desempenho.
- Gerenciamento de Defeitos. Devemos seguir as mesmas ferramentas e práticas adotadas pelo cliente para registrar defeitos relacionados ao teste de desempenho.
- Papéis e Responsabilidades. Detalhes sobre as partes interessadas envolvidas nas diferentes atividades durante o teste de desempenho.
- Pressupostos e Riscos. Se houver objetivos que possam representar um risco ao teste de desempenho, devemos documentá-los.
- Estratégia de Dados de Teste. Detalhes sobre a estratégia de dados de teste e como podemos extraí-los.
- Cronograma do Plano de Teste e Principais Entregáveis. Cronograma de scripting, execução de testes, análise e entregáveis para revisão pelo cliente.
O teste de desempenho real depende de uma combinação de técnicas. Para alcançar os objetivos esperados, precisamos preparar uma estratégia diferente para diferentes requisitos de teste de desempenho. Existem diferentes métricas, como carga de usuários, usuários simultâneos, modelos de carga de trabalho, etc., que precisam ser consideradas antes de planejar a carga. Se você já trabalhou com modelagem de carga, deve ter ouvido falar da lei de Little. Você deve aprendê-la e aplicá-la antes de planejar um teste para obter os resultados desejados.
Scripts/Cenários de Desempenho em Tempo Real
Depois que concordarmos com um plano ou estratégia de desempenho com o cliente, é hora de se preparar para a criação de scripts usando a ferramenta de teste de desempenho escolhida. Construir scripts de qualidade é fundamental para o sucesso do teste de desempenho, e há várias considerações importantes a serem lembradas durante o processo.
Primeiro, sempre siga os passos do caso de teste documentado ao criar scripts para garantir precisão. Comece reproduzindo o script para um único usuário e resolvendo quaisquer necessidades de correlação ou parametrização. A parametrização pode incluir cabeçalhos, cookies ou parâmetros de corpo. Depois que o script funcionar perfeitamente para um único usuário, teste-o com múltiplas iterações e diferentes dados de usuário. Esteja preparado para ajustar a correlação ou parametrização, pois novos dados podem revelar requisitos adicionais.
Em alguns casos, alcançar certos casos de uso pode requerer a escrita de blocos personalizados de código. Por exemplo, você pode precisar extrair dados específicos de resposta para um usuário e manipulá-los para outra requisição. Além disso, não se esqueça de incluir tempo de reflexão, ritmo e mecanismos de tratamento de erros com base no modelo de carga. Verificar a funcionalidade do script com checagens de texto ou imagem também é igualmente importante para garantir os resultados desejados.
Além do scripting, considere fatores como simulação de cache, cookies e condições de rede variáveis para refletir cenários realistas. Como engenheiro de desempenho, criar comportamentos realistas de usuários virtuais é crucial. Esse processo começa com a coleta de detalhes precisos na fase de levantamento de requisitos.
As principais perguntas a serem respondidas incluem:
- Qual é o número total de usuários interagindo com a aplicação durante o horário comercial?
- Quais ações os usuários normalmente realizam, e com que frequência?
- Quantos usuários acessam a aplicação durante os horários de pico de carga?
Essas respostas podem ser obtidas por meio de um questionário de levantamento de requisitos ou analisando dados estatísticos coletados de ferramentas como soluções APM ou Google Analytics. A análise de transações é especialmente útil para identificar transações comerciais críticas e projetar cenários de teste de desempenho que reflitam com precisão o uso do mundo real. Ao seguir esses passos, você estará bem preparado para executar testes de desempenho eficazes e entregar resultados confiáveis.
Modelagem de Carga de Trabalho
Podemos planejar nosso modelo de carga de trabalho de diferentes maneiras. Engenheiros de desempenho devem aprender e praticar o conceito da “lei de Little” antes de selecionar um modelo de carga de trabalho. Abaixo estão alguns dos modelos de carga de trabalho existentes. Novamente, o engenheiro de desempenho deve escolher o modelo de carga de trabalho baseado nos requisitos em mãos.
Modelo de Carga 1. É um modelo simples, onde o número de usuários será aumentado continuamente conforme o teste avança. Exemplo: um usuário por segundo até o teste ser concluído.
Modelo de Carga 2. Neste modelo, o número de usuários será aumentado em degraus durante toda a duração do teste. Por exemplo, os primeiros 15 minutos terão 100 usuários e os próximos 15 minutos terão 200, etc. Podemos planejar esse tipo de teste para testagem de resistência.
Modelo de Carga 3. Este é o modelo mais comum de teste de desempenho. O número de usuários será continuamente aumentado por um certo tempo (chamamos isso de período de ramp-up). Depois disso, os usuários terão um estado estável por um determinado período. Então os usuários começam a reduzir e o teste termina. Por exemplo, se planejamos um teste de 1,5 horas, podemos dar 15 minutos para aumento gradual dos usuários e 15 minutos para diminuição gradual. O estado estável será de uma hora. Ao analisar os resultados, consideraremos apenas o estado estável.
Modelo de Carga 4. Neste modelo, o número de usuários aumenta e diminui repentinamente durante toda a duração. Existem diferentes nomes para esse tipo de teste, como teste macaco, teste de pico, etc.
Precisamos estabelecer um conjunto abrangente de metas e requisitos para teste de desempenho. Defina os parâmetros do teste de desempenho e o que constitui critérios de aceitação para cada um. Se você não conhece os requisitos do teste nem o resultado desejado, então o teste de desempenho será uma perda de tempo.
Coleta de Dados
Abaixo estão algumas das métricas muito importantes para observar durante a modelagem da carga de trabalho do desempenho.
Tempo de resposta: Tempo que o servidor leva para responder à requisição do cliente. Muitos fatores podem afetar o tempo de resposta do servidor. O teste de carga ajudará a identificar e eliminar esses fatores que degradam o tempo de resposta.
Tempo médio de resposta: Será o valor médio do tempo de resposta durante toda a duração do estado estável em um teste de carga.
Tempo de resposta no percentil 90: O tempo de resposta no percentil 90 significa que 90 por cento dos tempos de resposta estão abaixo desse valor. Por exemplo, se você teve 500 requisições, cada uma com tempo de resposta diferente, o percentil 90 é qualquer valor que 90 por cento de todos os outros valores estão abaixo. Apenas 10 por cento dos tempos de resposta serão maiores que o valor do percentil 90. Isso é útil se algumas de suas requisições tiverem um tempo de resposta muito alto e estiverem distorcendo o resultado do tempo médio de resposta.
Requisições por segundo: Precisamos encontrar esse valor através de ferramentas APM ou com a ajuda dos logs de produção. Baseado no número de usuários simultâneos, podemos planejar as requisições por segundo para o servidor.
Utilização de memória: São métricas do lado da infraestrutura que ajudam a identificar gargalos. Além disso, você deve planejar sua carga de trabalho em tempo real tanto quanto possível. Certifique-se de que não estamos bombardeando o servidor com requisições contínuas.
Utilização da CPU: Igual à memória, é necessário monitorar essa métrica durante a execução dos testes de desempenho.
Taxa de erro: Devemos acompanhar a proporção entre transações aprovadas e com erro. A taxa de erro não deve ser superior a 2% das transações aprovadas. Se as taxas de erro aumentarem conforme os usuários simultâneos aumentam, pode haver um gargalo potencial.
Usuários simultâneos: Precisamos encontrar esse valor em ferramentas APM ou com a ajuda dos logs de produção. Normalmente, esse valor é baseado em um dia típico de negócios.
Throughput: O throughput mostrará a capacidade do servidor para suportar usuários simultâneos. Existe uma relação direta entre usuários simultâneos e throughput. O throughput deve aumentar conforme o número de usuários aumenta para acessar a aplicação. Se o throughput diminuir conforme o número de usuários aumenta, isso pode indicar gargalos.
Distribuição da carga de usuários: A distribuição da carga de usuários é um dos fatores importantes que precisa ser considerado ao projetar a carga de trabalho. Se tivermos cinco scripts que executam cinco funcionalidades diferentes de uma aplicação, precisamos dividir a carga de usuários o mais realista possível com base em nossa investigação em produção ou em ferramentas APM.
Essas são métricas muito importantes que devemos ter em mente ao desenhar o modelo de carga de trabalho. Haverá outras métricas dependendo da arquitetura da aplicação do cliente e dos requisitos.
Lista de Verificação para Ambiente de Teste de Desempenho (Antes da Execução)
O exemplo da lista de verificação abaixo geralmente é seguido por testes de desempenho ponta a ponta em nível empresarial, onde há um grande número de sistemas envolvidos. É sempre recomendado seguir uma lista de verificação do ambiente também para testes de desempenho em pequena escala escala. As atividades mudarão com base nos ambientes da aplicação, pois há uma grande diferença quando comparamos uma aplicação na nuvem versus uma aplicação on-premises.

Conclusão: Lista de Verificação para Preparação de Teste de Carga
Um teste de desempenho de software bem-sucedido não acontece por acaso. Arquitetos, proprietários de produto, desenvolvedores e a equipe de teste de desempenho devem trabalhar juntos e abordar os requisitos de teste de desempenho antes de avaliar o software. Para um entendimento mais detalhado da plataforma LoadView, leia nosso artigo Visão Técnica para ver como você pode aproveitar ao máximo seu teste de desempenho. O teste de desempenho deve ser um processo contínuo. Quando seu site ou aplicação web começar a crescer, você precisará fazer alterações para acomodar uma base maior de usuários. Sempre há uma chance de melhoria em qualquer aplicação e testes.
Esperamos que isso tenha dado uma boa visão sobre as melhores práticas em teste de desempenho. Se você quiser uma demonstração completa da solução LoadView, registre-se para uma demonstração com um engenheiro de desempenho. Eles vão guiá-lo passo a passo em cada parte do processo, desde a criação de scripts de teste de carga e configuração do teste, até a execução do teste e análise dos resultados.
Ou registre-se para o teste gratuito do LoadView para começar a executar testes de carga agora. Vamos oferecer testes de carga gratuitos para você começar! Feliz teste de carga!