Desempenho e estabilidade são primordiais ao construir e manter APIs. O desempenho da API impacta diretamente a experiência do usuário e a disponibilidade do sistema, tornando os testes de desempenho abrangentes essenciais.
O que é Teste de Desempenho de API?
O teste de desempenho de API geralmente envolve simular o comportamento real dos usuários, testes de estresse e testes de carga para avaliar a estabilidade e as métricas de desempenho do sistema.
Antes de realizar testes de desempenho, é recomendável realizar testes funcionais na API para garantir que todas as APIs funcionem corretamente como esperado. Testes funcionais ajudam a identificar e corrigir problemas funcionais, enquanto os testes de desempenho se concentram na avaliação do comportamento da API sob alta carga. Somente APIs funcionalmente saudáveis produzem resultados significativos em testes de desempenho, fornecendo uma base confiável para futuras otimizações de desempenho.

Como Realizar Teste de Desempenho no Apidog?
Este guia irá orientá-lo a aproveitar o recurso "Teste de Desempenho" do Apidog para avaliar o desempenho da sua API.
Passo 1: Orquestrando Cenários de Teste de Desempenho
Antes de iniciar o teste de desempenho, você precisa criar casos de teste. Você pode importar esses casos de APIs existentes ou casos de uso da API, ou definir solicitações personalizadas. Uma vez que os passos de teste estejam prontos, é aconselhável executar um teste funcional para garantir que a API opere como esperado antes de prosseguir com os testes de desempenho.
Passo 2: Configurando as Configurações do Teste de Desempenho
Na seção "Testes" do Apidog, você encontrará um módulo dedicado para "Desempenho (Beta)". Aqui, você pode configurar várias definições para se preparar para o próximo teste de desempenho.

Opções de Configuração:
Especifique o ambiente do serviço backend para as solicitações durante o "Teste de Desempenho". Por padrão, a configuração do ambiente definida para o projeto atual é aplicada automaticamente.

Dados de teste referem-se ao conjunto de dados usado para iniciar solicitações durante o teste de desempenho. Usar dados de teste permite que cada usuário concorrente faça solicitações com diferentes parâmetros, simulando melhor o tráfego do mundo real.

- Para usar dados de teste, clique na aba "Dados de Teste" e crie um novo conjunto de dados.

- Configure o conjunto de dados para o ambiente correspondente. Você pode adicionar dados manualmente ou importá-los em formato JSON ou CSV. Salve o conjunto de dados após a edição.

- Na página de detalhes do passo de teste, associe variáveis aos dados de teste.

- Quando você escolher associar os dados de teste em um teste de desempenho, usuários concorrentes usarão as variáveis definidas nos dados de teste para fazer solicitações. Você pode escolher entre os modos "Randomizado" e "Ordenado" para os testes.

Cada usuário concorrente seleciona aleatoriamente uma linha de dados do conjunto de dados de teste. Isso garante que cada usuário receba dados exclusivos, garantindo uma ampla cobertura no teste de desempenho.
Correspondência Ordenada:
Cada usuário concorrente seleciona a próxima linha de dados em sequência do conjunto de dados de teste. Observe que, se o número de usuários concorrentes exceder o número de linhas no conjunto de dados de teste, os usuários excedentes não participarão do teste. Certifique-se de ter dados de teste suficientes para suportar todos os usuários concorrentes neste modo.
- Usuários Concorrentes (Usuários Virtuais):
O teste de desempenho atualmente suporta a simulação de até 100 usuários concorrentes. Esses usuários simularão simultaneamente o comportamento real de usuários online dentro da duração do teste especificado, executando repetidamente o cenário de teste. Isso simula efetivamente cenários de alta concorrência para avaliar o desempenho e a estabilidade da API sob um grande número de solicitações de usuários.
- Duração da Execução:
Define a duração total do teste de desempenho. Cada usuário concorrente irá continuamente executar todas as solicitações de API definidas no cenário de teste dentro desse tempo definido. Atualmente, a duração máxima de teste suportada é de 60 minutos.
- Tempo de Aumento Gradual:
Em alguns casos, um grande número de usuários não acessa o serviço instantaneamente, mas sim aumenta gradualmente ao longo do tempo.
O tempo de aumento gradual simula o aumento gradual do tráfego de usuários. Em vez de usar todos os usuários concorrentes imediatamente no início do teste, o número de usuários aumenta linearmente ao longo de um tempo definido (X minutos) até atingir o total de usuários concorrentes. Definir X como 0 significa que todos os usuários concorrentes serão habilitados para testes de estresse desde o início.
Após configurar as opções acima, salve as configurações e clique no botão "Executar" para iniciar o teste de desempenho.
Passo 3: Executando o Teste de Desempenho
Clicar em "Executar" inicia o teste de desempenho. O teste de desempenho do Apidog se origina do computador do usuário (não do servidor Apidog) e utiliza os recursos de hardware do computador para executar os passos de teste configurados, dados de teste e solicitações concorrentes.
Portanto, você precisa considerar o desempenho do seu computador e o comportamento de outras APIs para determinar se o problema de desempenho está na API sendo testada ou no computador que inicia o teste. Se você perceber que o número de solicitações iniciadas não aumenta independentemente do servidor ou da API, pode ser necessário um computador mais potente para realizar o teste de desempenho.
Uma vez que o teste de desempenho comece, o Apidog fornece um painel de visualização intuitivo para monitorar e exibir indicadores-chave de desempenho em tempo real. Isso inclui o número total de solicitações para cada API, solicitações por segundo, tempo médio de resposta, tempo máximo/mínimo de resposta e taxa de falha de solicitações.
Entendendo as Métricas de Desempenho:
O painel de visualização apresenta dados abrangentes para todo o cenário de teste e dados individuais da API.

Dados Abrangentes:
- Total de Solicitações: Reflete o número total de solicitações processadas pela API durante o teste. Um número alto de solicitações totais é razoável em cenários de usuários em larga escala, mas garanta que a API possa lidar com essas solicitações de forma eficaz.
- Solicitações por Segundo: Um número alto indica que a API pode processar um grande volume de solicitações em um curto período, significando bom desempenho. Um número baixo pode sugerir um gargalo de desempenho.
- Tempo Médio de Resposta: Um tempo médio de resposta baixo geralmente indica que os usuários recebem feedback rapidamente, refletindo um excelente desempenho da API. Um tempo de resposta alto sugere respostas lentas, potencialmente impactando a experiência do usuário.
- Taxa de Falha de Solicitações: De fato, a taxa de falha deve estar próxima de zero. Uma alta taxa de falha indica que a API não consegue lidar adequadamente com as solicitações em certas situações, necessitando de mais análise de erros e otimização.
- Usuários Concorrentes: Definir um número apropriado de usuários concorrentes ajuda a simular a carga de usuários do mundo real. No entanto, configurá-lo muito alto pode sobrecarregar o sistema, levando à degradação do desempenho.
Dados Individuais da API:
- Total de Solicitações: Total de solicitações enviadas para uma única API.
- Solicitações por Segundo: Número médio de solicitações enviadas por segundo para uma única API.
- Tempo Médio de Resposta (ms): Tempo médio de resposta para todas as solicitações a uma única API.
- Tempo de Resposta Mínimo (ms): Menor tempo de resposta entre todas as solicitações a uma única API.
- Tempo de Resposta Máximo (ms): Maior tempo de resposta entre todas as solicitações a uma única API.
- Tempo de Resposta de 90%: Tempo de resposta para o percentil 90 das solicitações a uma única API.
- Taxa de Falha: Porcentagem de solicitações falhadas para uma única API.
Analisando Resultados do Teste:
- Visualizações:
Diferentes cores de curva no painel de visualização correspondem a diferentes métricas de desempenho no eixo vertical. O eixo horizontal representa a duração do teste de desempenho. O eixo vertical exibe métricas como taxa de falha de solicitações, tempo médio de resposta e solicitações por segundo (os usuários concorrentes estão ocultos por padrão). Você pode clicar em uma métrica específica para destacá-la ou ocultá-la para uma análise focada.

- Filtragem e Detalhes:
Para examinar solicitações específicas falhadas, clique em "Validar Erro de Resposta". Você também pode usar a funcionalidade de filtragem para se concentrar no desempenho de APIs específicas.

- Relatórios de Teste:
Após o teste de desempenho, clique na aba "Relatórios de Teste" para visualizar todos os relatórios históricos para o cenário de teste. Esses relatórios detalham as "Opções de Configuração" definidas antes de executar o teste de desempenho.
Você pode filtrar relatórios por tipo (teste funcional, teste de desempenho). Clicar em um relatório de teste leva você à sua página de detalhes, exibindo as mesmas métricas coletadas durante o teste de desempenho.

Nota: Apenas um teste de desempenho pode ser executado por projeto de cada vez. Clique no botão "Finalizar" no canto superior direito para parar o teste atual se um teste de maior prioridade precisar ser executado.

Conclusão
O Apidog oferece uma solução amigável para testes de desempenho de API, simplificando o processo de configuração de parâmetros de teste, execução de testes e exibição de resultados. Com métricas detalhadas de desempenho e um painel de visualização claro, você pode entender abrangentemente o desempenho da sua API.
