Upnetix Labs · protocolo de experimento
Protocolo: Qual o impacto do uso de autenticação JWT na latência de respostas de uma API REST FastAPI?
Este protocolo responde se a implementação de autenticação JWT afeta a latência das respostas de uma API FastAPI. O participante irá medir o tempo de resposta com e sem autenticação JWT sob carga controlada.

O uso de autenticação JWT aumenta a latência das respostas de endpoints FastAPI sob carga controlada?
Hipótese
A autenticação JWT aumenta a latência média das respostas da API FastAPI em relação ao mesmo endpoint sem autenticação.
Variáveis
| Independentes (o que varia) | Presença ou ausência de autenticação JWT |
|---|---|
| Dependentes (o que se mede) | Latência média da resposta (ms); Latência do percentil 95 (ms) |
| Controladas (o que fica fixo) | Código do endpoint; Carga de requisições por segundo; Hardware do servidor; Banco de dados (se houver); Rede |
Ambiente
Servidor FastAPI rodando localmente, endpoint GET simples ('/ping'), implementado com e sem autenticação JWT usando PyJWT. Ferramenta de carga: wrk (https://github.com/wg/wrk). Ambiente isolado, sem outros processos pesados concorrendo por recursos.
Procedimento
- Preparar ambiente
Instale FastAPI, Uvicorn, PyJWT e wrk. Garanta que não há outros processos pesados rodando.
pip install fastapi uvicorn pyjwt - Implementar endpoint sem autenticação
Crie um endpoint GET '/ping' que retorna status 200 e mensagem fixa.
- Implementar endpoint com autenticação JWT
Adicione autenticação JWT obrigatória ao mesmo endpoint.
- Iniciar servidor FastAPI
Rode o servidor em modo produção.
uvicorn main:app --host 0.0.0.0 --port 8000 - Executar teste de carga sem autenticação
Use wrk para enviar requisições por 60 segundos a 100 req/s.
wrk -t4 -c100 -d60s http://localhost:8000/ping - Executar teste de carga com autenticação JWT
Use wrk com header Authorization: Bearer <token_válido> por 60 segundos a 100 req/s.
wrk -t4 -c100 -d60s -H 'Authorization: Bearer <token>' http://localhost:8000/ping - Repetir cada teste 5 vezes
Repita ambos os testes para obter variabilidade.
Planilha de coleta
| cenario (sem_jwt/com_jwt) | latencia_media_ms (ms) | latencia_p95_ms (ms) | repeticao (1-5) |
|---|---|---|---|
| EXEMPLO: com_jwt, 2.3, 3.1, 1 | |||
Repetições recomendadas: 5. Baixe a planilha vazia em CSV: colunas prontas.
Análise
Calcule a média e o percentil 95 das latências para cada cenário. Compare os valores entre 'sem_jwt' e 'com_jwt'. Se a diferença for consistente e significativa, conclua sobre o impacto. Use boxplots para visualizar a dispersão.
Critérios de decisão
- Se a latência média ou p95 aumentar mais de 10% com JWT, considere o impacto relevante.
- Resultados só são válidos se o desvio padrão entre repetições for inferior a 5% da média.
Fontes de erro e mitigação
- Variação de carga no host: execute em ambiente dedicado.
- Cache de disco/memória: descarte a primeira execução como aquecimento.
- Token JWT deve ser válido e igual para todas as requisições do teste.
Referências
- FastAPI - Security · FastAPI (fastapi.tiangolo.com)
- Publicado
- 09/09/2026
- Última revisão
- 09/09/2026
- Versão do conteúdo
- 1.0
- Referências
- 1 oficiais
- Revisão técnica
- redação e revisão por IA, URLs conferidas na publicação
- Status
- Atual
