Este projeto contém testes end-to-end (E2E) automatizados para o site SauceDemo, utilizando Playwright, seguindo boas práticas de Page Object Model e dados centralizados.
project-root/
│
├── tests/ # Testes Playwright
│ └── carrinho.spec.js
│
├── pages/ # Page Objects
│ ├── LoginPage.js
│ ├── HomePage.js
│ ├── YourCartPage.js
│ ├── CheckoutYourInformationPage.js
│ ├── CheckoutOverviewPage.js
│ └── CheckoutCompletePage.js
│
├── data/ # Dados de teste centralizados
│ └── test.data.js
│
├── .env # Variáveis de ambiente (não versionar)
├── .env.example # Modelo do .env
├── playwright.config.js # Configuração Playwright
├── package.json
└── README.md
- Node.js >= 18
- npm ou yarn
- Playwright (instalado via
npm install) - Navegadores (Chrome, Firefox, Safari)
npm installnpx playwright installCopie o .env.example para .env e preencha os valores reais:
cp .env.example .envVerificar URLs e dados de teste em data/test.data.js.
npx playwright test --uinpx playwright testnpx playwright test tests/carrinho.spec.jsnpx playwright test --project=Chrome
npx playwright test --project=Firefox
npx playwright test --project=Safarinpx playwright show-report- Page Object Model (POM): separação de lógica de UI e testes.
- Dados centralizados:
test.data.jspara usuários e URLs. - Uso de variáveis de ambiente:
.envpara credenciais e URLs base. - Teardown/cleanup: logout e reset de carrinho após cada teste.
- Roteamento de testes via baseURL: facilita troca de ambientes (dev, staging, prod).
- Cada teste é independente, garantindo reprodutibilidade.
- O usuário padrão
standard_useré usado para todos os testes de login. - Os testes assumem que os elementos do DOM possuem os IDs e classes do site atual.
- O carrinho é limpo após cada teste para evitar efeitos colaterais.
- Não versionar
.envpara evitar vazamento de credenciais. - Para testes mais rápidos, é possível rodar em headless (
headless: true) noplaywright.config.js. - Para debugging visual, altere para headless: false.