Selenium y Windmill, para hacer tests de interface de sitios web

Logo SeleniumPara hacer desarrollo basado en tests es imprescindible tener un framework de desarrollo de tests para cada entorno de desarrollo que utilicemos. Hasta ahora, estamos usando los siguientes:

Estas dos soluciones son buenas, ambas basadas en el framework de tests original de la eXtreme Programming, la JUnit. Cuando se programan tests de procesos no visuales, o se testean procesos de ataque a bases de datos, resulta bastante fácil tener el control… el problema viene cuando testeamos interfaces, que implica simular acciones de los usuarios; especialmente cuando lo que hay que testear es el interface de aplicaciones web.

En este caso concreto, nuestros criterios a la hora de seleccionar un framework son los siguientes:

  • Que sea software libre: no quiero estar atado a un software propietario si es posible… muchos años de Delphi, Windows y SQL Server me dejan espantado.
  • Que tenga un editor de macros, que permita que alguien que no sea programador grabe tests de forma fácil… así descargamos parte de la tarea del programador a la gente de soporte.
  • Que tenga un plugin de integración con Hudson, para poder hacer pruebas regresivas.

Mirando por ahí, he encontrado dos:

  • Un plugin de Firefox llamado Selenium, integrado con Hudson a través de un plugin. Permite grabar tests, agrupados en unidades, y funciona muy bien… hace bastante que no sacan versión nueva, y a día de hoy el plugin no funciona con Firefox 3.6. Por lo que veo, puede emular el funcionamiento de Firefox, Internet Explorer y Firefox en modo Chrome. La gestión de ficheros (guardar test cases, test units, cosas de esas) es un poco ‘caprichosa’, pero por lo demás me parece bastante estable.
  • Windmill. Está programado en Python, es muy fácil de instalar si ya tienes Python montado. También tiene grabador de macros, pero yo he tenido peores experiencias que con Selenium, en términos de acciones que no se guardan bien, esperas a que la página cargue que no funcionan del todo bien y, no sé si tiene que ver, de repente mi Chrome ya no se conecta a Internet (y el Firefox sí, muy wraro).

He estado valorando los dos y me gusta más Selenium. Además, creo que es más usado que Windmill, y eso es muy importante a la hora de escoger un framework de cualquier tipo… ninguno queremos que deje de actualizarse el sistema que usamos.