Rodar testes automatizados para os cenários mais estáveis de um fluxo de compras dentro de um E-commerce público.
| Tecnologia | Descrição | Ícone | Documentação |
|---|---|---|---|
| Playwright | Framework de automação E2E para UI e API. | 🎭 | Acessar Doc |
| TypeScript | Linguagem principal para tipagem e segurança. | 📘 | Acessar Doc |
| Node.js | Ambiente de execução do projeto. | 🟢 | Acessar Doc |
| GitHub Actions | Orquestração de CI/CD e execução em nuvem. | 🚀 | Acessar Doc |
| Postman | Documentação e testes manuais de API. | 🟠 | Acessar Doc |
| Zod | Validação de schemas e contratos de API. | 🛡️ | Acessar Doc |
- ESLint - Análise estática do código.
- Prettier - Formatação automática de arquivos.
- Husky - Git Hooks para automação de tarefas.
- lint-staged - Verificação de arquivos modificados antes do commit.
Certifique-se de ter o Node.js instalado em sua máquina (recomendo versão 18 ou superior).
Clone o repositório e instale as dependências:
git clone https://github.com/MarCassMari/playwright_e2e_tests
cd playwright_e2e_tests
npm installPara rodar os testes de API localmente, é necessário configurar as credenciais de acesso. O projeto já conta com um arquivo de base para facilitar esse processo: Localize o arquivo .env.example na raiz do projeto.
Duplique-o e renomeie a cópia para apenas .env
Preencha as chaves com seus dados da API GoRest:
GOREST_BASE_URL=https://gorest.co.in/public/v2
GOREST_TOKEN=insira_seu_token_aqui_sem_aspasInstalando as dependências do projeto:
npx playwright installnpx playwright test4.2. Modo UI(Interface Visual):
npx playwright test --uiAbordamos cenários que cobrem o Core Business (coração do negócio) do E-commerce SauceDemo
1. Fluxo de Compra Feliz (Happy Path)
2. Validação de Regras de Negócio e Cálculos
3. Gestão de Estado do Carrinho
4. Testes de Resiliência (Cenários de Erro)
Este projeto entrega um framework de automação E2E robusto e escalável, desenvolvido com foco em qualidade de software e manutenibilidade. A solução vai além de simples scripts, aplicando conceitos fundamentais de engenharia:
- Arquitetura Multicamadas: Implementação rigorosa do padrão Page Object Model (POM), garantindo a separação entre a lógica de teste e a interação com elementos da interface.
- Programação Orientada a Objetos (POO): Utilização de classes e métodos para encapsular comportamentos, facilitando a reutilização de código e a legibilidade dos cenários.
- Isolamento e Independência: Testes desenhados para serem independentes, com setups e cleanups que garantem a confiabilidade da execução (evitando estados compartilhados).
- Entrega Contínua (CI/CD): Pipeline totalmente integrada via GitHub Actions, validando o projeto em múltiplos motores de renderização (Chromium e Firefox) a cada nova alteração.
- Testes de API com Validação de Contrato: Além da UI, o projeto integra validações de camada de serviço utilizando Zod, garantindo que a comunicação com o backend siga rigorosamente os schemas e status definidos.
- Qualidade de Código e Git Hooks: Para garantir a consistência do código e evitar que erros simples subam para o repositório, este projeto utiliza ESLint e Prettier, que sçao ferramentas que analisam estaticamente e identifica os padrões de código problemáticos, e formatam para garantir que todos os arquivos sigam o mesmo estilo. O projeto, na etapa de pré-commit, também utiliza Husky na gerência dos Git Hooks garantindo que o código seja automaticamente formatado e verificado. Se houver algum erro de linting que não possa ser corrigido automaticamente, o commit será bloqueado, garantindo que apenas código limpo chegue ao GitHub a cada branch.