K6
Projeto de testes de performance utilizando o K6. Este projeto faz parte do monorepo QA Solar e foca em cenários complexos de testes.
📋 Índice
- 📂 Estrutura do Projeto
- 🔧 Instalação
- 🚀 Executando os Testes
- 📝 Cenários de Teste
- 📝 Adicionando Novos Testes
- 📊 Relatórios
📂 Estrutura do Projeto
performance/
├── k6/
│ ├── src/
│ │ ├── config/
│ │ │ ├── base.js # Configurações base para todos os testes
│ │ │ └── scenarios.js # Configurações dos cenários de teste
│ │ ├── utils/
│ │ │ └── http.js # Utilitários para requisições HTTP
│ │ └── index.js # Ponto de entrada dos testes
│ └── tests/
│ └── login.test.js # Testes específicos do endpoint de login
├── reports/ # Reportes e logs dos testes
├── package.json
└── README.md
🔧 Instalação
- Instale o K6 seguindo as instruções em https://k6.io/docs/get-started/installation/
- Instale as dependências do projeto:
yarn install
🚀 Executando os Testes
O projeto possui scripts pré-configurados para executar diferentes cenários de teste:
-
Executar todos os cenários:
yarn run test
-
Executar cenário específico:
yarn run test -- --env SCENARIO=login_success # Teste de login bem-sucedido
yarn run test -- --env SCENARIO=login_invalid # Teste de login com credenciais inválidas
yarn run test -- --env SCENARIO=login_concurrent # Teste de login com carga concorrente
yarn run test -- --env SCENARIO=login_ramp # Teste de login com aumento progressivo
📝 Cenários de Teste
-
Login Bem-sucedido (login_success)
- 1 usuário virtual
- 100 iterações
- Duração máxima: 2 minutos
-
Login com Credenciais Inválidas (login_invalid)
- 1 usuário virtual
- 50 iterações
- Duração máxima: 1 minuto
-
Login Sob Carga Concorrente (login_concurrent)
- 100 usuários virtuais
- 1 iteração por usuário
- Duração máxima: 2 minutos
-
Aumento Progressivo (login_ramp)
- Aumento gradual de 0 a 20 usuários em 30s
- Aumento para 50 usuários em 30s
- Redução gradual para 0 usuários em 30s
📝 Adicionando Novos Testes
Para adicionar novos testes:
- Crie um novo arquivo em
k6/tests/
para o endpoint específico - Implemente as funções de teste necessárias
- Adicione os cenários correspondentes em
k6/src/config/scenarios.js
- Atualize o
k6/src/index.js
para incluir os novos testes
📊 Relatórios
Os relatórios são gerados automaticamente após a execução dos testes usando o plugin k6-html-reporter.