1
resposta

Velocidade na execução dos testes

Olá, estou finalizando o primeiro módulo do curso, e estou com uma dúvida. Os testes estão sendo executados super rápidos. Eu gostaria de saber se é normal, pois eu mal vejo o que está se passando na tela. E gostaria de saber se tem alguma forma de diminuir a velocidade de execução de todos os testes. Tentei fazer isso colocando "defaultCommandTimeout" no cypress.config.js, porém sem sucesso.

1 resposta

Oii Matheus, como você está?

Peço desculpas pela demora em obter um retorno.

Este é um comportamento esperado, pois, em ambientes e situações que exigem que inúmeros testes sejam executados, a velocidade de execução do teste será muito importante, uma vez que é necessário testar rapidamente para que erros sejam corrigidos e também, para que os usuários façam o uso da ferramenta.

Por exemplo, imagine um banco online, agora, imagine, quantos testes eles têm que efetuar para manter o aplicativo do banco em perfeito funcionamento… muitos não é mesmo? Posso te afirmar que são mais de mil casos de testes. Agora, imagine todos esses testes demorando inúmeras horas ou quase um dia inteiro para ser executado… isso ocasionará perda de dinheiro para a empresa que não conseguirá implantar rapidamente o sistema e frustração na equipe de testes, que ficará limitada por ter que ficar aguardando muito tempo para os testes executarem.

Sendo assim, nativamente, o Cypress não possui a opção de desacelerar a execução, pois o objetivo é que ele seja rápido. Outro detalhe que vale ressaltar é que nem sempre utilizaremos a interface, pois é possível executar os testes em modo oculto, apenas pelo terminal, sem necessariamente abrir o navegador, o que aumenta a performance e velocidade.

Todavia, existe um pacote denominado cypress-slow-down que permite fazer essa desaceleração. Este pacote é válido apenas para versão 10 ou superior com Cypress.

Para utilizá-lo, instale-o via terminal:

npm i -D cypress-slow-down

Com o pacote instalado, vá até algum arquivo de testes, por exemplo o arquivo alura-busca.spec.js e coloque no cabeçalho do arquivo a importação deste pacote:

import { slowCypressDown } from 'cypress-slow-down'

Agora, basta usarmos a função slowCypressDown() que por padrão desacelerará os testes em 1 segundo - este número pode ser alterado, mas por padrão é 1 segundo:

import { slowCypressDown } from 'cypress-slow-down'

slowCypressDown()

Como resultado, veremos que o navegador executa passo a passo do teste de forma lenta e gradual, como mostro abaixo:

Gif da tela do site Alura Pic, realizando um teste de cadastro de usuários. Nele, é digitado automaticamente pelo teste: email, nome completo, nome de usuário e senha. São cadastros 2 usuários no gif: Luke e Leia. Cada passo de clicar e passar para o próximo campo demora 1 segundo para passar para a próxima ação

Caso queira alterar o valor padrão de atraso dos testes, basta passar como parâmetro da função um número em milissegundos. Caso quiséssemos atrasar 2 segundos, poderíamos utilizar o código abaixo:

slowCypressDown(2000)

Com isso, ao usarmos o recurso do pacote cypress-slow-down conseguiremos observar os testes executando de modo lento, diferentemente do comportamento padrão do Cypress que trata rapidamente cada ação.

Caso queira se aprofundar e conhecer mais a respeito deste pacote, recomendo a documentação do mesmo no github:

Espero ter ajudado. Fico à disposição.

Grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!