Pruebas automatizadas con Zombie
Juan Pablo Romero
Software EngineerZombie es una librería escrita en javascript utilizada para automatizar pruebas de aplicaciones web. La flexibilidad de esta herramienta puede ser combinada con varios frameworks de testing; para poder utilizarla es necesario instalar NodeJS.
Instalacion y configuracion de NodeJS y Zombie
Si se esta trabajando en una máquina con Ubuntu, lo primero que hay que hacer es instalar el paquete python-software-properties con la siguiente línea:
$ sudo apt-get install python-software-properties
Después agregar el PPA de node.js con la siguiente línea:
$ sudo add-apt-repository ppa:chris-lea/node.js
Posteriormente actualizar la lista de paquetes disponible para que se pueda instalar software desde el PPA añadido recientemente:
$ sudo apt-get update
Se instala nodejs y npm desde el nuevo repo:
$ sudo apt-get install nodejs nodejs-dev npm
Después de la instalación se verifica la versión de nodejs y npm
$ node --version
v0.6.18
$ npm --version
1.1.21
Por último se instala Zombie:
$ npm install zombie
¿Como funciona Zombie?
Para saber como funciona Zombie, es necesario tener claro que Zombie siempre utiliza un browser para hacer la consultas a la aplicación web que vayamos a probar. Este browser mantiene el estado de las consultas que se van haciendo: como el historial, cookies, etc. Normalmente un browser tiene una ventana principal y ésta ventana principal contiene un página cargada.
Para poder visitar una página, es necesario crear un objeto browser y desde el objeto browser llamar al método visit(), que permite recibir la dirección de la aplicación web. A continuación un pequeño ejemplo:
https://gist.github.com/296844... En el anterior código se usó el método visit() con dos parámetros: el primero es la url del documento web a ser analizado y el segundo parámetro es la función que indica las acciones a realizar al entrar en la dirección web dada.
Dentro del cuerpo de la función se puede observar el uso del método text(), el cual verifica el texto que esta dentro de la etiqueta que se le especifica como parámetro, en este caso el contenido de la etiqueta title, si la etiqueta contiene el texto “Google” se muestra en la consola el texto true, de lo contrario mostrará false.
También cabe destacar que es necesario importar la librería zombie para posteriormente ser usada.
Recolección de errores en Zombie
Al cargar una aplicación los errores no fatales como las fallas en la carga de librerías javascript son almacenados en la variable browser.errors. Con el siguiente script se mostrará como se pueden recolectar lo errores en la carga de una página:
https://gist.github.com/296845... Solamente cambiando la url a “http://localhost:8002/” los errores que ocurran en la carga de la aplicación se almacenarán en la variable browser.errors.
También en el anterior código se puede observar la variable browser.success. Esta variable determina si la carga de la página se realizó correctamente. Una vez se comprueba que la página ha sido cargada, el código restante se ejecuta.
Para más información, se puede entrar al repositorio en GitHub del proyecto, donde se proporciona información más detallada del uso de esta librería.
Written by Juan Pablo Romero
Juan Pablo designs and builds robust software solutions with a focus on performance and usability. His problem-solving skills and attention to detail ensure high-quality and efficient applications.