Pular para o conteúdo
Tecnologia

E2E tests simulam usuário real: browser, clicks, forms. Mais caros mas essenciais para fluxos críticos.

Conceitos Principais

User Flows

Simula jornada completa. Login → browse → add to cart → checkout. Frontend + backend + DB.

Test Environment

Staging environment. Dados reais ou seed. Isolado de produção. Reset entre testes.

Flakiness

Testes instáveis. Network delays, animations, race conditions. Auto-retry, explicit waits.

Selective Testing

Não teste tudo E2E. Apenas fluxos críticos. Unit tests para detalhes.

Passo a Passo

  1. Identifique Fluxos Críticos: Login, checkout, signup, pagamento. Fluxos que geram receita. Max 10-20 cenários E2E.
  2. Escolha Tool: Playwright: multi-browser, rápido. Cypress: DX melhor, Chrome only. Selenium: legacy.
  3. Escreva Tests: Page Object Model. test("user can checkout", async () => { await loginPage.login(); await productsPage.addToCart(); await checkoutPage.pay(); });
  4. Mock External APIs: Payment gateways, emails. Use test mode (Stripe test keys). Ou mock com server stubs.
  5. CI/CD Pipeline: Docker container. Headless browser. Parallel execution. Videos em falha. Retry 2x antes de fail.

Boas Praticas

Recomendacoes

• E2E apenas fluxos críticos (10% dos testes)

• Page Object Model para reuso

• Mock external services

• Run em staging, não prod

• Retry logic para flakiness

• Paralelize para velocidade

Erros Comuns

Evite estes erros

• E2E para tudo (piramide invertida)

• Não tratar flakiness

• Hard-coded waits (sleep)

• Testar detalhes (use unit)

• Não rodar E2E no CI

Checklist

  • Fluxos críticos identificados
  • Tool escolhido e configurado
  • Page Objects implementados
  • External services mockados
  • CI rodando E2E
  • Videos/screenshots em falha