Pular para o conteúdo
Skillpedia
Testes41 mil · #4845

e2e-testing-patterns

Ajuda seu agente a criar testes que verificam o programa inteiro. Isso garante que tudo funcione bem antes de lançar novas versões.

O que ela faz

Esta habilidade ensina como criar testes automáticos para sites e aplicativos. Esses testes verificam se tudo está funcionando como esperado, ajudando a encontrar erros antes que os usuários os vejam.

Quando usar

  • ✓Ao criar testes automáticos para um site.
  • ✓Quando testes automáticos estão falhando sem motivo aparente.
  • ✓Ao definir as regras para os testes de um projeto.

Exemplo do que pedir para a IA

“Como posso garantir que meu site funcione bem em diferentes navegadores?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/wshobson/agents/blob/main/plugins/developer-essentials/skills/e2e-testing-patterns/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/wshobson/agents/blob/main/plugins/developer-essentials/skills/e2e-testing-patterns/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ela explica os tipos de testes mais importantes (como os que simulam o uso real do site) e como escrevê-los de forma eficiente. Usa exemplos práticos com ferramentas populares.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add wshobson/agents --skill e2e-testing-patterns

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/developer-essentials/skills/e2e-testing-patterns/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Padrões de Teste E2E

Construa suítes de teste de ponta a ponta (E2E) confiáveis, rápidas e fáceis de manter que proporcionem confiança para enviar código rapidamente e capturar regressões antes dos usuários.

Quando Usar Esta Habilidade

  • Implementar automação de testes de ponta a ponta
  • Depurar testes instáveis ou não confiáveis
  • Testar fluxos de trabalho críticos do usuário
  • Configurar pipelines de teste CI/CD
  • Testar em vários navegadores
  • Validar requisitos de acessibilidade
  • Testar designs responsivos
  • Estabelecer padrões de teste E2E

Conceitos Principais

1. Fundamentos de Teste E2E

O Que Testar com E2E:

  • Jornadas críticas do usuário (login, checkout, cadastro)
  • Interações complexas (arrastar e soltar, formulários de várias etapas)
  • Compatibilidade entre navegadores
  • Integração real de API
  • Fluxos de autenticação

O Que NÃO Testar com E2E:

  • Lógica em nível de unidade (use testes de unidade)
  • Contratos de API (use testes de integração)
  • Casos extremos (muito lentos)
  • Detalhes de implementação interna

2. Filosofia de Teste

A Pirâmide de Testes:

        /\
       /E2E\         ← Few, focused on critical paths
      /─────\
     /Integr\        ← More, test component interactions
    /────────\
   /Unit Tests\      ← Many, fast, isolated
  /────────────\

Melhores Práticas:

  • Teste o comportamento do usuário, não a implementação
  • Mantenha os testes independentes
  • Torne os testes determinísticos
  • Otimize para velocidade
  • Use data-testid, não seletores CSS

Padrões Detalhados e Exemplos Práticos

A documentação detalhada dos padrões está em references/details.md. Leia esse arquivo quando o nível de navegação acima for insuficiente.

Melhores Práticas

  1. Use Atributos de Dados: data-testid ou data-cy para seletores estáveis
  2. Evite Seletores Frágeis: Não confie em classes CSS ou estrutura DOM
  3. Teste o Comportamento do Usuário: Clique, digite, veja - não detalhes de implementação
  4. Mantenha os Testes Independentes: Cada teste deve ser executado isoladamente
  5. Limpe os Dados de Teste: Crie e destrua dados de teste em cada teste
  6. Use Page Objects: Encapsule a lógica da página
  7. Asserções Significativas: Verifique o comportamento real visível para o usuário
  8. Otimize para Velocidade: Use mock quando possível, execução paralela
// ❌ Bad selectors
cy.get(".btn.btn-primary.submit-button").click();
cy.get("div > form > div:nth-child(2) > input").type("text");

// ✅ Good selectors (findBy* commands come from @testing-library/cypress;
// add `import "@testing-library/cypress/add-commands";` to your Cypress support file)
cy.findByRole("button", { name: "Submit" }).click();
cy.findByLabelText("Email address").type("user@example.com");
cy.get('[data-testid="email-input"]').type("user@example.com");

Armadilhas Comuns

  • Testes Instáveis: Use esperas adequadas, não timeouts fixos
  • Testes Lentos: Use mock de APIs externas, execução paralela
  • Excesso de Testes: Não teste todos os casos extremos com E2E
  • Testes Acoplados: Testes não devem depender uns dos outros
  • Seletores Ruins: Evite classes CSS e nth-child
  • Sem Limpeza: Limpe os dados de teste após cada teste
  • Testando Implementação: Teste o comportamento do usuário, não os internos

Depurando Testes Falhos

// Playwright debugging
// 1. Run in headed mode
npx playwright test --headed

// 2. Run in debug mode
npx playwright test --debug

// 3. Use trace viewer (record with `use: { trace: 'on-first-retry' }` in the config)
npx playwright show-trace path/to/trace.zip
await page.screenshot({ path: 'screenshot.png' });

// 4. Add test.step for better reporting
test('checkout flow', async ({ page }) => {
    await test.step('Add item to cart', async () => {
        await page.goto('/products');
        await page.getByRole('button', { name: 'Add to Cart' }).click();
    });

    await test.step('Proceed to checkout', async () => {
        await page.goto('/cart');
        await page.getByRole('button', { name: 'Checkout' }).click();
    });
});

// 5. Inspect page state
await page.pause();  // Pauses execution, opens inspector
Perguntas frequentes

O que são testes E2E?

Testes E2E (End-to-End) simulam a experiência completa de um usuário, desde o início até o fim de uma jornada, como fazer login e comprar um produto.

Por que usar seletores de `data-testid`?

Eles são mais confiáveis porque não mudam com o design do site, ao contrário de seletores baseados em classes ou na estrutura do código.

O que fazer se os testes falham às vezes?

Verifique se os testes estão esperando o tempo certo para as coisas carregarem, se não dependem de outros testes e se usam seletores estáveis.

Detalhes

Descrição original do autor

Master end-to-end testing with Playwright and Cypress to build reliable test suites that catch bugs, improve confidence, and enable fast deployment. Use when implementing E2E tests, debugging flaky tests, or establishing testing standards.

repo: wshobson/agents

Popularidade

Estrelas no GitHub
41 mil
Posição no ranking
#4845
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas