Este projeto realiza testes de carga e desempenho em uma API utilizando a ferramenta k6. Os testes são executados para avaliar a performance de várias rotas da API, como:
- /usuarios: Teste de listagem de usuários.
- /login: Teste de login de usuários.
- /home: Teste de carga na página inicial.
Antes de executar os testes, é necessário ter o k6 instalado. Você pode instalar o k6 de uma das formas a seguir:
brew install k6npm install -g k6Ou siga as instruções completas no site oficial do k6.
A estrutura do projeto é a seguinte:
/project-root
├── /tests
│ ├── homeLoadTest.js # Teste de carga na página principal
│ ├── loginTest.js # Teste de carga no login
│ └── usuariosTest.js # Teste de carga na listagem de usuários
├── run_tests.sh # Script para rodar todos os testes de uma vez
├── README.md # Este arquivo
Este teste simula o comportamento de usuários acessando a página principal da API (GET /). Ele aplica uma carga progressiva de usuários, começando com 10 usuários virtuais (VUs) e aumentando até 50 VUs, com um pico de 1 minuto, para avaliar a performance da rota.
Este teste avalia a performance da rota de login (POST /login). Ele testa a autenticação de usuários com um aumento gradual de usuários virtuais, com o objetivo de simular um cenário de pico de login.
Este teste verifica a performance da rota de listagem de usuários (GET /usuarios). Ele também simula um aumento de usuários e avalia o comportamento da API durante esse aumento.
Para rodar os testes individualmente, você pode usar os seguintes comandos:
k6 run tests/homeLoadTest.js
k6 run tests/loginTest.js
k6 run tests/usuariosTest.jsVocê pode rodar todos os testes de uma vez utilizando o script run_tests.sh. Basta executar o seguinte comando na raiz do projeto:
bash run_tests.shEsse script vai iterar sobre todos os arquivos .js na pasta tests e rodar cada um deles automaticamente.
Os testes são configurados para validar os seguintes parâmetros:
- Status Code: Verificar se o código de status retornado pela API é 200 (OK).
- Tempo de Resposta: Verificar se o tempo de resposta da API está abaixo de 200ms.
Você pode personalizar os testes editando os arquivos .js na pasta tests. A configuração de usuários virtuais, estágios de teste e o tempo de execução podem ser ajustados conforme suas necessidades.
Este projeto foi criado por Edmozer Cavalcante.