Geb: Automatizando seu browser com Groovy

Há um tempo venho querendo estudar o Geb que é uma solução de automação para browsers. O bacana é que ele utiliza o conceito de WebDriver, com uma DSL similar ao jQuery e seus seletores e por fim a melhor parte: Groovy!

O ponto é que você pode utilizar o poder da linguagem Groovy em todas as áreas de automação do Geb, como por exemplo realizar uma iteração em uma coleção de elementos HTML recuperados por um seletor do Geb.

Para ilustrar tudo isso que falei nada melhor que um exemplo para isso. Resolvi fazer algo que queria fazer um tempo: um histórico de onde vieram as linguagens baseada no Wikipedia. (para este exemplo utilizei o WebDriver do Firefox)

O objetivo deste script é buscar todas as linguagens de programação que Groovy influenciou. Para isso utilizamos a URL da página do Groovy no Wikipedia, buscando pela tag <th> que contém o texto “Influencied”. Após isso iteramos todos os elementos <a> do primeiro vizinho da <th> em questão. Com a lista de links na mão, criamos um mapa com todas as linguagens e suas respectivas URLs. Viu como é fácil? Vamos ver no código como que fica:

[gist https://gist.github.com/fmamud/37883e586883b2823c35 /]

Dica: experimente trocar a URL por outra linguagem do Wikipedia =D

Uma possível melhoria seria um algoritmo recursivo para retornar uma árvore de influências de linguagens, mas vamos deixar este para outro post.

No meu caso tive problemas com Grab utilizando Proxy. Para isso configurei minha variável de ambiente JAVA_OPTS com os valores de meu proxy.  (Veja aqui)

[gist https://gist.github.com/fmamud/2fcd210df310ec79353e /]

E também utilizei a dica do lalyos com uma configuração do Ivy:

[gist https://gist.github.com/lalyos/9366690 /]

E para quem usa Windows, de “quebra” fiz um script em PowerShell para recuperar o arquivo de configuração do Grab:

[gist https://gist.github.com/fmamud/54ba06bc8956b4786b7b /]

É isso ae pessoal, espero que tenham sentido o poder que o Geb tem em nossos testes automatizados com nossas aplicações Web.

[]s
Felipe Mamud
@ftmamud

 

5 thoughts on “Geb: Automatizando seu browser com Groovy”

Leave a Reply

Your email address will not be published. Required fields are marked *