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
Mensagem pronta para colar
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-patternsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/developer-essentials/skills/e2e-testing-patterns/SKILL.md -o SKILL.mdConteú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
- Use Atributos de Dados:
data-testidoudata-cypara seletores estáveis - Evite Seletores Frágeis: Não confie em classes CSS ou estrutura DOM
- Teste o Comportamento do Usuário: Clique, digite, veja - não detalhes de implementação
- Mantenha os Testes Independentes: Cada teste deve ser executado isoladamente
- Limpe os Dados de Teste: Crie e destrua dados de teste em cada teste
- Use Page Objects: Encapsule a lógica da página
- Asserções Significativas: Verifique o comportamento real visível para o usuário
- 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
Comentários
- …
Mais skills deste repositório
screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
wshobson/agents
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
Skills parecidas
cpp-testing
Faz seu agente escrever e melhorar testes para código C++. Ajuda a configurar ferramentas de teste e a corrigir erros.
affaan-m/ECC
csharp-testing
Ajuda seu agente a criar testes para código C# e .NET. Ele usa as melhores práticas para garantir que os testes sejam eficientes e confiáveis.
affaan-m/ECC
django-tdd
Faz seu agente aplicar estratégias de teste para Django com pytest-django e TDD. É útil para escrever testes robustos e garantir a qualidade do código, especialmente para APIs DRF.
affaan-m/ECC