Qual o framework de testes que devo escolher para automatizar aplicações web?

Quando começei

O primeiro framework (open source) de automação que usei foi Selenium RC + Java em 2008. Quando o Selenium Webriver foi lançado, comecei a usar com C# (eu amo programar em dó sustenido).

Estudando Ruby, conheci frameworks para automação que são simplesmente fantásticos e maduros. (Trabalhei na boo-box por um tempo (acho que em 2011), e os Devs Rubistas que eram tops me apresentaram o Capybara.)

Já fiz muitos projetos com o Capybara e ministro treinamento com o Capy também. Às vezes, vejo em alguns grupos uma galera perguntando qual o melhor, Capybara ou Watir, ou Selenium puro? Creio que o melhor é aquele que você sabe usar e entregar projeto. hahaha

Se você está começando na automação, vou te falar um pouco sobre ambos. O Selenium parece uma opção natural, é open source e super popular, jogou no Google verá uma infinidade de artigos falando sobre ele e tudo mais. Mas o fato é que com o Capybara e Watir eu obtive uma produtividade absurda nas entregas de projetos. Isso pra mim, faz uma baita diferença.

Linguagem

Se eu considerar o meu gosto pessoal, eu programo em C# ou Javascript (node.js), pois é nisso que tenho mais experiência. Minha equipe de testes em 2012, não tinha experiência alguma com programação e tinham diversos bloqueios com isso. Percebi que com o Ruby o bloqueio poderia ser removido ou minimizado e unificado com a simplicidade do Capybara, teríamos finalmente uma equipe de automatizadores. Foi exatamente assim que aconteceu, em poucos meses, tínhamos um time de QA de alta performance.

Criar códigos em Ruby é simples e divertido. Porque Ruby é menos verboso, com tipagem dinâmica e pouco burocrático. Lembro que os QAs do meu time se apaixonaram, e era lindo ver todo mundo codando e automatizando testes com Capybara, Cucumber e RSpec 🙂

Importante

Devemos considerar automação de testes como um valor agregado para os Devs também, os próprios Devs podem, manter, melhorar, utilizar o código de testes. Mas isso já é assunto para outro fórum…srrs

Veja a tabelinha

Pesquisando sobre ambos, listei abaixo um pequeno comparativo. Espero que ajude.

https://www.ruby-toolbox.com/categories/browser_testing?display=table&order=score
WatirCapybaraSelenium
Approach de codificaçãoOrientado a ObjetoDSLOrientado a Objeto
Lançado em:200820092004
Popularidade
Ativo?Parece que simSimSim
Último release12/201801/202001/2020
ConfiguraçãoMuito simplesSimplesMédio
SintaxeSimplesMuito simplesMédio
Roda com o Cucumber?SimSimSim
Posso usar com BrowserStack e/ou SauceLabsSimSimSim
Page ObjectSimSim (fica legal com SitePrism)Sim
BrowersChrome
Firefox
Edge
IE
Safari
Chrome
Firefox
(da para estender para os outros)
Firefox
Chrome
IE
Safari
Opera
Roda em Headless?SimSimSim
LocalizadoresId, Nome, CSS Selectors, XPathId, Nome, CSS Selectors, XPathId, Nome, CSS Selectors, XPath

Conclusão

O fato é que o Capybara é o queridinho dos Testers, e o Selenium, dos programadores. Por outro lado, a popularidade do Capybara na comunidade é de QA é muito alta.

Watir? Ja usei e gostei :O. Capybara? uso muito e gosto demais. Selenium estude e não pra não ficar na mão :/

O que você pode considerar:

  • Watir tem um suporte bacana no github (mas não tem Release desde dezembro de 2018);
  • Provavelmente você encontrará um QA Ruby com mais experiência em Capybara do que em Watir ou Selenium;
  • Capybara é mais popular e aceito no mercado de trabalho;
  • Capybara tem Release a cada trimestre (em média);
  • Cursos com Capybara são mais populares também. Inclusive aqui na QA Ninja.
  • Se você aprender Capybara, migrar para Watir ou Selenium será melzinho na chupeta.

Então, por enquanto estou com o Capybara 🙂

Qual a sua opinião? Deixe um comentário e compartilha conosco!