Este projeto realiza testes de carga utilizando o K6 para simular 100 usuários simultâneos acessando uma API. O objetivo é medir o tempo de resposta, identificar erros de requisição e monitorar o uso de CPU/memória.
- Node.js
- Docker
- K6
- Instale as dependências:
npm install
- Configurar o Docker se quiser verificar a medição pelo grafana(configurar influxodb + template de dashboard):
docker-compose -f Docker/docker-compose.yml up -d
- Executando os testes:
node runner/run-tests.js <cenario> Exemplo: node runner/run-tests.js peak
-
index.js: Arquivo principal que define o grupo de testes e gera o relatório.
-
scenarios/teste.js: Script que realiza a requisição HTTP e verifica o status da resposta.
-
settings/settings.json: Configurações do teste de carga (número de usuários virtuais e duração).
-
Docker/docker-compose.yml: Configuração do Docker para os serviços InfluxDB e Grafana.
-
summary.html: Relatório gerado após a execução do teste.
O resultado do teste de carga K6 mostra o seguinte:
Total de requisições: 5190 Requisições falhas: 0 Limiares ultrapassados: 0 Falhas em verificações: 0 Além disso, na seção de métricas de requisição, temos os seguintes detalhes:
http_req_duration (duração total das requisições HTTP):
Média: 161.33 ms Máxima: 652.13 ms Percentil 90: 160.12 ms Percentil 95: 163.34 ms http_req_waiting (tempo de espera da requisição):
Média: 161.12 ms Máxima: 652.13 ms Percentil 90: 159.89 ms Percentil 95: 162.97 ms http_req_connecting (tempo de conexão):
Média: 3.62 ms Máxima: 214.79 ms http_req_sending (tempo de envio de dados):
Média: 0.01 ms Máxima: 1.01 ms http_req_receiving (tempo de recebimento de dados):
Média: 0.20 ms Máxima: 2.28 ms Esses dados indicam que a carga foi bem gerenciada, com nenhuma falha ou problema significativo nas métricas de desempenho.
✅ Total de requisições: 5190 ✅ Falhas: 0 ✅ Thresholds violados: 0 ✅ Checks com falha: 0
Os tempos de resposta médios parecem razoáveis, com a duração média das requisições em torno de 161.33ms e um percentil 95% de 163.34ms. O tempo máximo registrado de 652.13ms pode ser um ponto de atenção, dependendo do SLA esperado.