RubyLit - Ruby.del.litoral!
Test Con Selenium On Rails

Selenium es una buena herramienta para realizar testing de paginas web.

Bueno, se puede usar agregando como plugin de rails .. los pasos para instalarlo son los siguientes:

Primero agregue el source donde esta el repositorio del plugin:

script/plugin source http://svn.openqa.org/svn/selenium-on-rails/selenium-on-rails

luego….. instalo el plugin.

script/plugin install http://svn.openqa.org/svn/selenium-on-rails/selenium-on-rails

generamos el caso de testeo:.

app#:script/generate selenium agenda_login

o lo creo yo mismo

app#: touch test/selenium/agenda_login.sel
app#:ls -l test/selenium
app#:-rw-r—r—1 cesar cesar 203 2007-10-04 16:37 agenda_login.sel

hacemos correr el script para que el ambiente para test este disponible

app#:script/server -e test

vamos al navegador preferido(por supuesto.. prefiero iceweseal) y comprobamos que selenium este corriendo:

http://localhost:3000/selenium/

+

Bueno… hasta aquí fue solo configuración del plugin Selenium en Rails

Ahora vamos a ver como hacemos un test de una pagina en sí… el archivo de test agenda_login.sel se escribe de la siguiente notación

| comando1 | parametro1 |
| comando2 | parametro1 | parametro2 |

la pagina que quiero testear tiene este contenido

en la pagina principal

+

e internamente un listado

+

bueno.. el script para testear estas dos paginas es bastante reducido,no supera las 10 lineas :-D

| open | /account/login |
| assertTitle | Admin: login |
|assertText Present?| Recordar mis datos: |
| type | login | admin |
| type | password | test |
| clickAnd Wait? | commit |
| assertTitle | Admin: index |
| clickAnd Wait? | link=Salir |

esto hace lo siguiente…

  • abre la pagina http://localhost:3000/account/login indicándolo en |open|/account/login|
  • se asegura que el titulo de la pagina sea “Admin: login”
  • se asegura de que exista un texto que diga “Recordar mis datos:”
  • “tipea” donde iría el nombre del “Usuario” (id=login) el texto
    ‘admin’ => |type|login|admin|
  • “tipea” donde iría la Contraseña (id=password) el texto ‘test’ => |type|password|test|
  • hace un click en submit => |clickAnd Wait?|commit|
  • se asegura de que el titulo de la nueva pagina es “Admin: index”
  • hace click en el link “Salir”%|
    esto se ve así en el browser una vez que pasan los test

Ver imagen

Bueno.. como ven .. una linda herramienta para utilizar en testeo de paginas web…
esta una de las formas de usar Selenium Core fácilmente utilizando el plugin para rails.

También se puede instalar la IDE obteniendo la extensión para icewesel.

Esto es todo amigos… algo sencillo de instalar, usar y que trae grandes ventajas a la hora de comprobar el contenido/navegabilidad de nuestras páginas on Rails!! :-D

Espero les ayude en algo… nos leemos… los comentarios/criticas/mejoras son bienvenidos … ;-)

blog