Cypress vs Selenium

5 pontos que tornam o CYPRESS uma excelente alternativa ao SELENIUM

Quando pensamos em testes automatizados web, a primeira ferramenta que vem à cabeça é o Selenium. E se eu te falar que as coisas estão prestes a mudar? Provavelmente você está pensando neste exato momento: “Esse cara está ficando doido, o Selenium possui um lugar na história e ninguém poderá tirar”.

Indiscutivelmente, o Selenium é a ferramenta precursora e que popularizou a automação de teste de software, mas como na TI nem tudo é para sempre (exceto o COBOL rsrsrs), novas ferramentas estão surgindo e caindo na graça dos testers, pois trazem uma maior compatibilidade e agilidade no processo de automação.

Uma das alternativas ao Selenium — e que vem ganhando muitos adeptos no mercado — é o Cypress. Fazendo uma breve comparação entre essas duas ferramentas, podemos notar que a busca por novidades dentro desse nicho está deixando o Selenium para trás. Observe esta pesquisa feita no Google Trends, ela compara as buscas feitas nos últimos 12 meses pelas palavras “Cypress” e “Selenium”:

Image for post

É fácil notar que as buscas pela palavra “Cypress” no Google está bem acima da procura por “Selenium”, mas o que pode explicar tamanha discrepância?

Sem mais delongas, vamos aos fatos que fazem com que o Cypress ganhe espaço quando comparado ao Selenium:

Selenium

  1. Trabalhar com o Selenium nem sempre é simples, principalmente quando temos muitos cenários de teste;
  2. Os processos assíncronos e dinâmicos, na maioria das vezes, causam muitos transtornos na criação dos nossos testes. O Selenium possui algumas limitações para tratar esses casos e, muitas vezes, o jeito é encher nosso código de “sleeps/wait” ?;
  3. A captura de tela precisa ser configurada e programada;
  4. A manutenibilidade dos testes é mais custosa, pois a busca dentro do Selenium é mais específica e pequenas mudanças no layout da página podem quebrar os testes;
  5. Ele está sempre lutando contra o flacky test;
  6. As configurações iniciais dos projetos de teste utilizando o Selenium demandam muito tempo.

Cypress

Image for post
  1. O Cypress possui uma organização padrão e um Layout para execução dos testes muito bem planejada;
  2. Tratando-se de processos dinâmicos e assíncronos, temos uma das grandes vantagens do Cypress que é a espera automática, na qual a ferramenta aguarda o elemento e verifica, automaticamente, a existência do que foi definido nos testes. “No more async hell” ??;
  3. As capturas de tela são retiradas automaticamente;
  4. As mensagens de erro apresentadas na ferramenta ajudam muito no processo de criação dos testes;
  5. As configurações iniciais do projeto são bem rápidas. Se você já estiver com o NPM na máquina, teoricamente bastaria um: “npm install cypress”. O site oficial fala que é possível escrever o primeiro teste em 60 segundos. Realmente é bem rápido para escrever o primeiro teste, mas não sou tão otimista quanto o site oficial ???.

Indiscutivelmente, devemos evoluir como profissionais e buscar novos recursos para ganhar produtividade. É lógico que o Selenium não vai morrer, mas acredito que a evolução e o surgimento de novas ferramentas capazes de otimizar o tempo vai crescer ainda mais; e o Cypress é um instrumento que nasceu para suprir diversas dificuldades que encontramos na utilização do Selenium.

Talvez você pense: “Tiago, essa foi uma comparação muito tendenciosa”. Realmente, não posso negar minha atual tendência, mas para chegar a uma predileção, tive que testar as duas ferramentas. E você? Vai ficar apenas com a minha opinião?

Referências:

Cypress

Mudando do Selenium para o Cypress

Flaky Tests – A War that Never Ends