🚀 Suíte de testes automatizados completa para Dog CEO API usando CodeceptJS - 29 cenários abrangentes com validação robusta
Uma coleção robusta e bem estruturada de testes automatizados para validar todas as funcionalidades da Dog CEO API, implementada com CodeceptJS para garantir qualidade, confiabilidade e cobertura completa da API.
- Sobre o Projeto
- Funcionalidades Testadas
- Tecnologias Utilizadas
- Pré-requisitos
- Instalação
- Como Usar
- Estrutura dos Testes
- Documentação da API
- Scripts Disponíveis
- Cenários de Teste
- Allure Reports - Relatórios Visuais
- Relatórios Tradicionais
- Contribuição
- Licença
Este projeto foi desenvolvido para demonstrar uma suíte de testes automatizados de alta qualidade usando CodeceptJS para validar a Dog CEO API. Os testes cobrem desde cenários básicos até validações avançadas, incluindo:
- ✅ Testes de endpoints principais
- ✅ Validação de estrutura de resposta
- ✅ Cenários negativos e tratamento de erros
- ✅ Validação de URLs e formatos
- ✅ Testes de múltiplas requisições
- ✅ Verificação de breeds específicas
- 📊 Relatórios visuais com Allure Framework
- GET
/breeds/list/all- Lista completa de raças - GET
/breed/{breed}/images- Imagens de raça específica - GET
/breed/{breed}/{sub-breed}/images- Imagens de sub-raça - GET
/breeds/image/random- Imagem aleatória - GET
/breeds/image/random/{count}- Múltiplas imagens aleatórias
- Funcionais: Validação de funcionalidades principais
- Estruturais: Verificação de formato de resposta
- Negativos: Cenários de erro e exceção
- Performance: Validação de múltiplas requisições
- Integração: Testes end-to-end da API
| Tecnologia | Versão | Descrição |
|---|---|---|
| Node.js | ≥16.0.0 | Ambiente de execução JavaScript |
| CodeceptJS | ^3.5.14 | Framework de testes BDD |
| Allure Framework | ^3.4.1 | Geração de relatórios visuais |
| Allure CommandLine | ^2.34.1 | CLI para relatórios Allure |
| Faker.js | ^8.4.1 | Geração de dados de teste |
| Prettier | ^3.2.5 | Formatação de código |
| Rosie | ^2.1.1 | Factory para objetos de teste |
Antes de começar, certifique-se de ter instalado em sua máquina:
- Node.js (versão 16.0.0 ou superior)
- npm (versão 8.0.0 ou superior)
- Git (para clonar o repositório)
git clone https://github.com/ZyamHunter/codeceptjs-api-dogs.git
cd codeceptjs-api-dogsnpm installnpm testnpm run test:verbosenpm run test:debugnpm run test-allnpm run allure-generatenpm run allure-opennpm run allure-servernpm run formattests/
├── 📄 dog_api_test.js # Testes básicos da API
├── 📄 list_all_breeds_test.js # Testes de listagem completa
├── 📄 breeds_especificas_test.js # Testes de raças específicas
├── 📄 cenarios_negativos_test.js # Testes de cenários de erro
├── 📄 multiplas_imagens_test.js # Testes de múltiplas requisições
└── 📄 validacao_urls_test.js # Validação de URLs e formatos
A Dog CEO API é uma API RESTful gratuita que fornece imagens aleatórias de cachorros organizadas por raça.
https://dog.ceo/api
| Endpoint | Método | Descrição |
|---|---|---|
/breeds/list/all |
GET | Lista todas as raças disponíveis |
/breed/{breed}/images |
GET | Lista imagens de uma raça específica |
/breed/{breed}/{sub-breed}/images |
GET | Lista imagens de uma sub-raça |
/breeds/image/random |
GET | Retorna uma imagem aleatória |
/breeds/image/random/{count} |
GET | Retorna múltiplas imagens aleatórias |
| Script | Comando | Descrição |
|---|---|---|
| test | npm test |
Executa todos os testes com steps |
| test:verbose | npm run test:verbose |
Executa testes com saída detalhada |
| test:debug | npm run test:debug |
Executa testes em modo debug |
| test-all | npm run test-all |
Executa testes e gera relatório Allure |
| allure-generate | npm run allure-generate |
Gera relatório Allure a partir dos resultados |
| allure-open | npm run allure-open |
Abre o relatório Allure no navegador |
| allure-server | npm run allure-server |
Inicia servidor local para relatório Allure |
| format | npm run format |
Formata código usando Prettier |
| format:check | npm run format:check |
Verifica formatação do código |
- Validação de endpoints principais
- Verificação de códigos de status HTTP
- Validação de estrutura de resposta JSON
- Conferência de chaves obrigatórias
- Breeds inexistentes (404)
- Sub-breeds inválidas
- Endpoints inexistentes
- Caracteres especiais em parâmetros
- Formato de URLs de imagens
- Unicidade de imagens aleatórias
- Consistência de dados entre chamadas
- Verificação de tipos de arquivo suportados
- Taxa de unicidade em múltiplas chamadas
- Validação de padrões de URL
- Verificação de breeds conhecidas
- Análise de performance de resposta
Este projeto utiliza o Allure Framework para gerar relatórios visuais ricos e interativos dos resultados dos testes. O Allure oferece uma interface web moderna para análise detalhada dos testes executados.
📈 Estatísticas Atuais dos Testes:
- ✅ 29 testes passaram (100% de sucesso)
- ❌ 0 testes falharam
⚠️ 0 testes quebrados- ⏭️ 0 testes ignorados
- ⏱️ Duração total: ~11.5 segundos
- 🏃 Tempo mínimo: 239ms
- 🐌 Tempo máximo: 1.223s
npm run test-all# Primeiro execute os testes
npm test
# Depois gere o relatório
npm run allure-generate
# Abra o relatório
npm run allure-opennpm run allure-serverallure-results/ # Dados brutos dos testes
├── 🔧 *.json # Arquivos de resultado
├── 📸 *.png # Screenshots (se houver falhas)
└── 📋 *.txt # Logs e attachments
allure-report/ # Relatório HTML gerado
├── 📱 index.html # Página principal
├── 📊 widgets/ # Gráficos e estatísticas
├── 📁 data/ # Dados estruturados
└── 🎨 styles.css # Estilização
| Funcionalidade | Descrição |
|---|---|
| 📊 Dashboard | Visão geral com gráficos e estatísticas |
| 🔍 Suites | Organização por arquivos de teste |
| 📈 Trends | Histórico de execuções (quando disponível) |
| 🏷️ Categories | Classificação de falhas por categoria |
| ⏱️ Timeline | Linha do tempo da execução |
| 📋 Behaviors | Agrupamento por funcionalidade |
| 📦 Packages | Estrutura por pacotes/diretórios |
O projeto está configurado com as seguintes opções no codecept.conf.js:
plugins: {
allure: {
enabled: true,
require: 'allure-codeceptjs',
outputDir: './allure-results',
},
stepByStepReport: {
enabled: true,
screenshotsForAllureReport: true,
fullPageScreenshots: true,
}
}Além dos relatórios Allure (recomendados), os resultados dos testes também são salvos na pasta output/ e incluem:
- Screenshots em caso de falhas
- Logs detalhados de execução
- Relatórios HTML básicos
- Arquivos JSON com dados de resposta
# Os arquivos de saída estarão em:
./output/💡 Recomendação: Use os relatórios Allure para uma experiência muito mais rica e visual!
Contribuições são sempre bem-vindas! Para contribuir:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas alterações (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Para reportar bugs, abra uma issue com:
- Descrição detalhada do problema
- Passos para reproduzir
- Resultado esperado vs resultado obtido
- Screenshots (se aplicável)
Este projeto está sob a licença ISC. Veja o arquivo LICENSE para mais detalhes.
ZyamHunter
- GitHub: @ZyamHunter
- Projeto: codeceptjs-api-dogs
- Dog CEO pela API gratuita e de qualidade
- CodeceptJS Team pelo excelente framework de testes
- Comunidade de desenvolvedores que contribuem para o ecossistema de testes
🐕 Happy Testing! 🐕
Desenvolvido com ❤️ e muita dedicação para garantir a qualidade da Dog CEO API
