Projeto de automação de testes de API da plataforma ServeRest, desenvolvido com Cypress e JavaScript, seguindo boas práticas de QA com estrutura profissional de testes.
Projeto de automação de testes de API REST desenvolvido para validar os endpoints da plataforma ServeRest, cobrindo os módulos de:
- 🔑 Autenticação — Login e geração de token
- 👤 Usuários — CRUD completo
- 🛍️ Produtos — CRUD completo com autenticação
- 🛒 Carrinhos — Criação, compra e cancelamento
- 🔄 Fluxos — Jornadas completas de ponta a ponta
| Módulo | Funcional | Contrato | Performance | Negativo | Fluxo |
|---|---|---|---|---|---|
| Autenticação | ✅ | — | — | ✅ | — |
| Usuários | ✅ | ✅ | ✅ | ✅ | — |
| Produtos | ✅ | ✅ | ✅ | ✅ | — |
| Carrinhos | ✅ | ✅ | ✅ | ✅ | — |
| Fluxos | — | — | — | — | ✅ |
| Tecnologia | Uso |
|---|---|
| Cypress | Framework de testes |
| JavaScript | Linguagem de programação |
| AJV | Validação de schema JSON |
| Allure Report | Relatórios de testes |
| Docker | Ambiente isolado |
| GitHub Actions | Pipeline CI/CD |
Antes de começar, certifique-se de ter instalado:
git clone https://github.com/loopfagundes/serverest-api-js.git
cd serverest-api-jsnpm installnpm run docker:upO ServeRest estará disponível em
http://localhost:3000
# Todos os testes
npm run allTest
# Módulo específico
npm run test:usuarios
npm run test:login
# Modo visual (Cypress Open)
npm run cy:opennpm run allure:openValidam o comportamento esperado da API com dados válidos — criação, leitura, atualização e exclusão de recursos.
Validam a estrutura do JSON retornado pela API usando o AJV, garantindo que os campos e tipos estejam corretos.
const validate = ajv.compile(usuarioSchema)
const valid = validate(response.body)
expect(valid).to.be.trueValidam o tempo de resposta dos endpoints, garantindo que estejam abaixo do limite aceitável.
expect(response.duration).to.be.lessThan(2000)Validam o comportamento da API com dados inválidos, campos em branco, tokens expirados, permissões incorretas, entre outros.
Simulam jornadas completas do usuário — desde o cadastro até a finalização ou cancelamento de uma compra.
npm run allure:openO relatório será gerado e aberto automaticamente no navegador com:
- ✅ Histórico de execuções
- 📊 Gráficos de resultados
- ⏱️ Tempo de execução por teste
- ❌ Detalhes de falhas
O projeto possui pipeline configurado com GitHub Actions
O pipeline executa automaticamente a cada push em qualquer branch e exibe os resultados diretamente na aba Actions do GitHub.
Push → Checkout → Setup Node.js → Install Dependencies → Run Tests
O ServeRest sobe automaticamente como service container durante o pipeline, sem necessidade de configuração manual.
# Subir o ServeRest
npm run docker:up
# Parar o ServeRest
npm run docker:down
# Ver logs
docker-compose logs -fnpm run docker:up # Sobe o ServeRest
npm run docker:down # Para o ServeRest
npm run cy:open # Abre o Cypress em modo visual
npm run allTest # Roda todos os testes
npm run test:login # Roda testes de autenticação
npm run test:usuarios # Roda testes de usuários
npm run test:produtos # Roda testes de produtos
npm run test:carrinhos # Roda testes de carrinhos
npm run test:fluxos # Roda testes de fluxos
npm run allure:clean # Limpa os resultados e relatório Allure
npm run allure:open # Gera e abre o relatório Allure
npm run format # Formata o código com Prettier