Conociendo Selenium IDE plugin

3 nov 2012 by shadow_of__soul, No Comments »
selenium-ide

selenium-ide

Una parte del proceso de desarrollo de cualquier aplicacion, es el llamado QA (abreviacion de Quality Assurance). Basicamente es el proceso (tedioso para mi gusto :P ) por el cual probamos nuestra aplicacion en (y los) entornos en los que deberia ser ejecutados, probando cada una de sus funciones, para verificar que todo funcione correctamente. Para realizar QA, hay muchas formas, y dependiendo la aplicacion que estemos desarrollando, los metodos varian. Una de ellas, es la que vamos a comentar un poco hoy, que es Selenium IDE, una aplicacion open source, que viene en diferentes sabores, entre ellos, como plugin de firefox, ideal para probar nuestras aplicaciones web.

Introduccion al QA

Como dije anteriormente, el QA es una tarea tediosa, basicamente, por que es una tarea repetitiva en la cual deben probarse todas las caracteristicas de nuestra aplicacion, tanto en condiciones ideales como adversas, para asegurar la calidad de la misma. Toda aplicacion debe pasar un proceso de QA (o por lo menos lo que deberia hacer cualquier profesional/empresa seria), en el caso de las aplicaciones web, es aun mas importante, teniendo en cuenta la fragmentacion de navegadores, de plataformas, etc.., y teniendo en cuenta todas las tecnologias que convergen en un mismo producto, resulta fundamental, no solo hacer un QA final, sino uno total por cada cambio que se le hace a la aplicacion (asi sea en el proceso de arreglo de bugs o en el agregado de features). Formas de testear una aplicacion hay muchas, como los unit testing, smoke testing, en este caso, Selenium nos permite crear scripts personalizados emulando el uso real del usuario para nuestro testeo.

Emulando nuestro user

Como dije, selenium nos permite emular acciones del usuario. Todo puede ser emulado por selenium, programando las acciones necesarias. Podemos hacer clicks en elementos de la aplicacion, esperar a que se ejecuten, chequear condicionales (por ejemplo, si el resultado de nuestra accion anterior, resulto como queriamos) y dependiendo de estos condicionales, realizas mas acciones o no. Selenium nos va a avisar por cada accion que no pueda ser ejecutada (por que un condicional fallo, por que se cumplio un tiempo de espera, o por que no existia el elemento que queriamos utilizar). La interfaz del plugin es muy intuitiva, es muy facil saber que hace cada accion y podemos customizarla escribiendo scripts en javascript. Ademas, podemos guardar estos script para ejecutarlos mas adelante, ideal cuando implementamos una nueva carateristica y queremos saber si todo lo que funcionaba, lo sigue haciendo :P .

Tips con selenium

AJAX

ajax fue una de las caracteristicas que hizo famoso a javascript, el poder cargar contenido dinamico cambio la web completamente, pero para nosotros los programadores, debuggear estas llamadas al servidor, pueden ser un martirio. Selenium lo hace facil, ya que nos permite testear estas acciones de 2 formas, o ejecutamos la accion que va a disparar nuestro evento que hara la llamada de ajax, y ponemos a esperar selenium X cantidad de milisegundos para chequear, por si la llamada se completo. La otra, es usar el comando waitForCondition  que va a ejecutar una funcion hasta que la condicion se cumpla (por ejemplo, si la funcion de ajax debe insertar X informacion, chequeamos hasta que exista).

Acceder a elementos de la pagina

Para los scripts condicionales de selenium, normalmente es necesario acceder a algun elemento de la pagina, para saber si existe, o tiene las propiedades correctas y verificar su funcionamiento. Esto lo hacemos con:

1
this.page().findElement('locator');

Guardar resultados de los scripts

Si por ahi ejecutamos una funcion directamente desde selenium o necesitamos guardar el resultado de un script escrito en el mismo, lo pueden grabar y acceder de la siguiente manera:

1
storedVars['foo'];

Conclusion

En fin, eso es toda la introduccion que queriamos dar a Selenium, una herramienta muy poderosa, a la que hay que perderle el miedo, que segun tengo entendido (y lo tengo como materia pendiente para un proximo post ;) ) hasta puede ser ejecutado en paralelo, para simular un load testings de usuarios reales (o tomar metricas de aquellas funciones que son las mas intensivas a nivel recursos bajo grandes cargas de trabajo). Es una herramienta con una curva de aprendizaje muy corta, que espero les ahorre mucho tiempo :D

 

Etiquetas: , , , ,

Sigueme !

Follow Me! Follow Me! Follow Me!