Cypress: E2E que o time não abandona

Cypress: E2E que o time não abandona

Robson Rabelo - 13 de julho de 2026 - 0 visualizações

A suíte E2E que nasce com entusiasmo e morre com skip: como evitar o ciclo com a dúzia vital, os 4 hábitos anti-flake e o lugar certo no CI (com vídeo da falha).

Todo time já viveu (ou vai viver) este ciclo: a suíte E2E nasce com entusiasmo, cresce sem critério, fica lenta e instável, e seis meses depois está com skip em metade dos testes. O problema quase nunca é a ferramenta; é usá-la contra a pirâmide. Este artigo fecha a série de testes com o Cypress (docs.cypress.io) usado do jeito que sobrevive: pouco E2E, do bom.

O papel certo: a dúzia vital

E2E responde uma única pergunta: "o sistema inteiro, integrado, entrega os fluxos que pagam as contas?" Login, busca, checkout, contratação. Uma dúzia de cenários, não trezentos. A regra já apareceu na série e vale repetir: regra de negócio se testa na base; costura, no meio; no topo, só a jornada completa.

describe("checkout", () => {
  beforeEach(() => {
    cy.task("db:seed", { produtos: 3 });   // dados controlados, via API
    cy.login("cliente@teste.com");          // comando custom: login por API, não por tela
  });

  it("compra com cartão aprovado", () => {
    cy.visit("/produtos");
    cy.get("[data-cy=produto-card]").first().click();
    cy.get("[data-cy=adicionar-carrinho]").click();
    cy.get("[data-cy=ir-checkout]").click();

    cy.intercept("POST", "/api/pagamento", { statusCode: 200, body: { status: "aprovado" } });
    cy.get("[data-cy=confirmar-pedido]").click();

    cy.get("[data-cy=pedido-confirmado]").should("contain", "Pedido confirmado");
  });
});

O exemplo carrega os quatro hábitos anti-flake que separam a suíte viva da abandonada.

Os 4 hábitos anti-flake

1. Seletores dedicados (data-cy). Selecionar por classe CSS ou texto quebra a cada ajuste visual ou de copy. O atributo dedicado é um contrato explícito: "o teste depende disto"; muda quem sabe o que está mudando.

2. Zero wait de tempo fixo. cy.wait(3000) é a assinatura do flake: lento quando sobra, quebrado quando falta. O Cypress re-tenta asserções automaticamente até o timeout; espere por condições (should(...), esperar o alias de uma requisição intercetada), nunca por relógio.

3. Dados controlados, setup por baixo dos panos. Cada teste semeia o que precisa (cy.task falando com o banco, builders como sempre) e loga por API, não clicando na tela de login 40 vezes. UI se testa uma vez no teste dela; nos outros, é só o caminho até o alvo.

4. Fronteiras externas intercetadas. O gateway de pagamento real não pertence ao seu E2E: cy.intercept simula o aprovado, o recusado e o timeout, os contratos que você não controla ficam determinísticos.

E2E que sobrevive: a dúzia vital e os hábitos

No CI: o veredito final com evidência

O lugar do E2E na esteira: último estágio, contra o staging recém-deployado, como smoke de verdade. E o recurso subestimado do Cypress: screenshots e vídeos automáticos das falhas: o teste que quebrou às 2h vem com a gravação do que aconteceu, cortando o MTTD do diagnóstico de horas para minutos.

E a regra de gestão que mantém tudo de pé: E2E flaky é bug com prioridade. Um teste instável tolerado ensina o time a re-rodar sem ler, e a suíte inteira morre por descrédito.

E o Playwright?

A pergunta obrigatória de 2026. O Playwright cobre o mesmo território com paralelismo nativo, múltiplas engines e ótima velocidade; o Cypress mantém a experiência de desenvolvimento mais amigável (o runner interativo é imbatível para escrever e depurar). Os hábitos deste artigo valem identicamente para os dois: seletores dedicados, zero sleep, dados controlados, interceptação. Ferramenta é preferência; disciplina é o que decide o destino da suíte.

Montar a dúzia vital (com os comandos custom, o seed e o encaixe no CI) fecha a esteira de qualidade completa que implantamos no serviço de Qualidade e Testes.

Quantos testes E2E o seu time tem com skip hoje? Conte para a IA da Rabelo Digital, aqui no canto da tela, e ela ajuda a decidir o que ressuscitar, o que descer na pirâmide e o que apagar. Sem formulário, sem espera.


Leia também

Compartilhar:

Deixe um Comentário

Categorias

Posts Recentes