Skip to content

Repository files navigation

🚀 app-northwind | Projeto de Automação de Testes E2E com Playwright 🎭

Status do Projeto Playwright JavaScript GitHub GitHub Actions Node.js

💡 Este repositório é um projeto de estudo e desenvolvimento profissional em qualidade de software, com foco em automação de testes E2E. Como um documento vivo, ele continuará evoluindo conforme novos testes, cenários e melhorias forem adicionados.


📌 Sobre o Projeto

O projeto app-northwind foi criado para demonstrar práticas reais de automação de testes em uma aplicação web funcional, com foco em cenários de ponta a ponta (E2E) e validação de regras de negócio.

A solução foi construída com Playwright e JavaScript puro, aplicando boas práticas de organização, reutilização de código, testes de regressão e integração contínua. O objetivo principal é reforçar habilidades de engenharia de qualidade, testabilidade e confiabilidade de software em um ambiente próximo ao real.

Este projeto foi desenvolvido para compor um portfólio técnico sólido, mostrando domínio em automação, versionamento, estrutura de testes e execução em pipelines de CI/CD.


🛠️ Stack Tecnológica

Ferramenta Finalidade
Playwright Framework principal para automação E2E, testes cross-browser e validação de interfaces web.
JavaScript Linguagem base para criação dos testes, helpers e estrutura da automação.
Node.js Ambiente de execução do projeto e suporte à suíte de testes.
Git Controle de versionamento do código e histórico de evolução do projeto.
GitHub Hospedagem do repositório e gestão do desenvolvimento em colaboração.
GitHub Actions Automação da execução dos testes em pipelines de CI/CD.

✅ Checklist de Implementação

  • Page Object Model — locators e ações encapsulados por responsabilidade
  • CRUD completo automatizado — cadastro, edição, exclusão e detalhes
  • Validação de campos obrigatórios e mensagens de erro
  • Validação de combos — fornecedores e categorias (existência + contagem exata)
  • Data Driven Testing com JSON e CSV
  • Massa de dados dinâmica com Faker.js
  • Evidências automáticas — screenshots e vídeos em falhas
  • Trace Viewer — investigação de falhas com timeline
  • Allure Report — relatórios com severity, epic e feature
  • CI/CD com GitHub Actions — pipeline automático a cada push e PR
  • Playwright Report como artifact no GitHub Actions

📸 Pipeline em Ação

Pipeline Verde Playwright Tests


📊 Evidências do Allure Report

Suites do relatório
Gráficos do relatório Overview do relatório

Visão geral do relatório de execução, comportamento e histórico dos testes automatizados.


⚙️ Como rodar localmente

Pré-requisitos

  • Node.js 20+
  • Git

Instalação

# Clonar o repositório
git clone git@github.com:luizengdev/app-northwind.git
cd app-northwind

# Instalar dependências
npm install

# Instalar navegador para execução local
npx playwright install chromium

Variáveis de ambiente

Crie o arquivo .env na raiz do projeto com os dados abaixo:

USER_EMAIL=seu-email@exemplo.com
USER_PASSWORD=sua-senha
BASE_URL=https://url-da-aplicacao.com

Executar

# Todos os testes
npx playwright test

# Interface visual
npx playwright test --ui

# Execução de um arquivo específico
npx playwright test tests/createProductModal.spec.js

# Relatório HTML
npx playwright show-report

# Allure Report
npx allure generate allure-results && npx allure open

🔄 CI/CD

A pipeline executa automaticamente a cada push e pull request para a branch main.

O Playwright Report é gerado como artifact e fica disponível para download direto na aba Actions, permitindo análise rápida de falhas sem necessidade de execução local.

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

📂 Estrutura do Projeto

app-northwind/
├── .github/
│   └── workflows/
│       └── playwright.yml
├── components/
│   └── products/
│       ├── createProductModal.js
│       ├── EditProductModal.js
│       ├── DeleteConfirmationDialog.js
│       └── ProductDetailModal.js
├── docs/
│   ├── criterios-cadastro-produto.md
│   ├── criterios-cadastro-usuario.md
│   ├── criterios-detalhes-produto.md
│   ├── criterios-edicao-produto.md
│   └── criterios-exclusao-produto.md
├── fixtures/
│   ├── combo-categorias.json
│   ├── combo-fornecedores.json
│   ├── dados-cadastro-login.json
│   ├── login-data.json
│   ├── product-mass.csv
│   ├── products-data.json
│   └── ...
├── pages/
│   ├── cadastroPage.js
│   └── productsPage.js
├── tests/
│   ├── cadastroLogin.spec.js
│   ├── combos.spec.js
│   ├── createProduct.spec.js
│   ├── editProduct.spec.js
│   ├── deleteProduct.spec.js
│   └── ...
├── .gitignore
├── package.json
├── playwright.config.js
├── README.md
├── allure-results/
├── allure-report/
├── playwright-report/
├── screenshots/
├── test-results/
└── ...

🎯 Objetivos e Valor do Projeto

Este projeto foi pensado para evidenciar habilidades essenciais em QA Automation, incluindo:

  • Validação de fluxos críticos do usuário
  • Testes de regressão e estabilidade funcional
  • Verificação de regras de negócio em ambiente real
  • Organização do código com abordagem de Page Object Model
  • Execução automatizada em pipeline CI/CD
  • Geração de relatórios e evidências técnicas

Além disso, o projeto reforça a capacidade de transformar requisitos em testes automatizados, com foco em qualidade, rastreabilidade e confiabilidade.


🚀 Visão de Evolução

Este repositório representa uma base sólida para crescimento contínuo em automação de testes. Novos cenários, melhorias de estrutura, manutenção de rotina e expansão da suíte de testes podem ser incorporados ao longo do tempo, tornando o projeto cada vez mais completo e alinhado com práticas profissionais do mercado.

A evolução contínua deste projeto reflete um compromisso com aprendizado técnico, excelência em qualidade e desenvolvimento de competências relevantes para o setor de tecnologia.


Desenvolvido com 🎭 Playwright + ❤️ durante a formação Gotas de Tecnologia

About

QA Automation project focused on end-to-end testing of a real web application using Playwright and JavaScript.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages