A série “pitadas de Cypress” está com tudo!

Hoje você vai aprender como garantir que seus testes se comportam da mesma forma quando executados diversas vezes.

O Cypress é um framework de testes fantástico!

Ele empacota junto com ele várias outras bibliotecas famosas para faciliar a vida de seus usuários, ou seja, a sua vida!

Uma dessas bibliotecas é o lodash.

Basta usar

Cypress._

E você poderá invocar qualquer funcionalidade do lodash. 🤩

Dentre as diversas funcionalidades do lodash, uma que se “encaixa como uma luva” para o problema que queremos resolver é o .times.

Um exemplo facilitaria o endendimento, não?

Então vamos lá!

Cypress._.times(5, () => {
  it.only("submete o formulário com sucesso", () => {
    const customer = {
      firstName: "João",
      lastName: "Silva",
      email: "joaosilva@example.com"
    };

    cy.fillMandatoryFields(customer);
    cy.contains("Enviar").click();

    cy.get(".success p").should("contain", "Formulário submetido com sucesso.");
  });
});

Após executar o teste acima, tenho o seguinte resultado

Aplicação exemplo
  ✓ submete o formulário com sucesso (1725ms)
  ✓ submete o formulário com sucesso (1212ms)
  ✓ submete o formulário com sucesso (1200ms)
  ✓ submete o formulário com sucesso (1195ms)
  ✓ submete o formulário com sucesso (1256ms)


5 passing (8s)

Como pode-se perceber, meu teste parece estável e passou 5 vezes seguidas. Yay! 🎉

Problema resolvido!


E aí? O que está achando da série?

Estou coletando feedback e criando um backlog para os próximos posts. Deixa um comentário com o que gostaria que eu abordasse em um conteúdo futuro.


Este conteúdo foi traduzido para inglês e pode ser encontrado no DEV Community.


Quer aprender automação de testes com Cypress na prática? Conheça meus cursos na Escola Talking About Testing, ou no Udemy.

5 comentários em “Como rodar um teste várias vezes com Cypress para provar que ele é estável

  1. Obrigado pela explicação!
    Sabe dizer se existe alguma forma quando o Cypress estiver executando vários testes, e se caso algum der erro faça com que o cypress rode o teste que deu erro novamente?

  2. Muito bom Walmyr!
    Walmyr,
    Como faço para pegar o indice da quantidade de execuções?
    Seria algo como:
    Cypress._.times(10, () => {
    it(`interação ${x}`, () => {
    // codigo….
    } )
    }

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s