Como funciona Selenium?
Selenium provee unas api en diferentes lenguajes (PHP, Ruby, JAVA, Javascript, etc) que nos permiten indicarle mediante comandos que pruebas debe hacer. Cada comando es del estilo Haz click aqu, Espera a que se recargue la pagina, Completa tal campo de formulario, Haz Click en el Botn enviar, Verifica el resultado, etc. Como toda herramienta nueva es necesario aprender sus trucos y las apis tienen bastantes detalles que pueden lograr ahogarnos antes de empezar. La buena noticia es que adems de las api posee un IDE (an en version Beta) que automatiza aun ms la tarea, es sencillo y nos ayuda a aprender los comandos mas rpidamente, no es tan flexible como las apis pero de todos modos es una herramienta muy potente y es lo que pretendo mostrarles en este artculo. Descargando e instalando el IDE El IDE es un plugin para Firefox. Se descarga y se instala desde aqu. Reinician Firefox y listo. Para visualizar el IDE vamos a Ver -> Panel lateral -> Selenium IDE y nos lo mostrar como un Panel dentro de la ventana principal de Firefox.
Nuestra primer prueba Le ensearemos al IDE de Selenium que queremos que busque y luego este ser capaz de repetir los mismos pasos la cantidad de veces que queramos. Y cmo le enseamos? Fcil, Selenium tiene una pequea gran utilidad que es Grabar y lo que hace es simplemente eso, grabar cada uno de nuestros movimientos en el navegador. En una pestaa de Firefox abrimos www.google.com y seguido abrimos el IDE. Habilitamos el botn grabar (debe quedar de color rojo claro) y luego escribimos la URL que vamos a usar de base para nuestra prueba tal y como se puede ver en la siguiente imagen:
Ahora navegaremos un poco por google para que Selenium vaya registrando cada accin:
Escribimos en el cuadro de bsqueda la palabra Selenium.
Hacemos click en el botn Google Search y esperamos a que se cargue la pagina con los resultados.
Hacemos click en el primer resultado que es la pgina oficial de Selenium. Desactivamos el botn grabar del IDE.
A medida que se hacan clicks, el IDE iba generando algunos comandos y si siguieron todos los pasos deberan haber logrado algo como lo que muestra la siguiente imagen:
Como se puede ver en la imagen se han generado 4 comandos, el primero es open y lo nico que hace es reiniciar la prueba yendo a la direccin de inicio. Los siguientes 3 comandos indican exactamente lo que nosotros hicimos manualmente hace un momento pero de manera mas especfica.
El comando type escribe la palabra Selenium en el input de nombre q. clickAndWait, hace click en el boton de nombre btnG y espera a que se recargue la pgina.
Nuevamente clickAndWait, pero en este caso se hace click en el enlace indicado.
Nota: Si por alguna razon en lugar de ClickAndWait les aparece Click a secas, cambienlo manualmente seleccionando el comando y editndolo un poco mas abajo. Si usamos click con enlaces a veces tira errores porque ste no espera a que se recargue la pgina, cosa que si hace el comando ClickAndWait. Ya le hemos enseado a Selenium la prueba que se desean hacer y estamos listos para indicarle que la ejecute, para ello hacemos click en el botn Reproducir prueba, el play, y observamos. Selenium ira ejecutando comando por comando, recargar la pagina, escribir en el cuadro de bsqueda y luego entrar al enlace que le indicamos. En el panel de comandos se irn marcando en verde los que se ejecutaron correctamente y en rojo los que no. A su vez en la parte de Log (abajo) aparecern los mismos pasos pero ms detallados.
Con el IDE abierto y teniendo el foco de Firefox en la pestaa de la prueba vamos a verificar la existencia del texto Selenium is a test tool for web applications en la pagina oficial de Selenium.
En el IDE hacemos click en la fila siguiente a la del ltimo comando para indicar que el prximo debe ir ah y no mezclado con los que ya tenemos.
En la pagina oficial de Selenium, seleccionamos el texto que indique recien, hacemos click derecho sobre l y seleccionamos la opcion VerifyTextPresent Selenium is a test tool for web applications como se muestra en la imagen.
Luego de estos pasos se habr agregado un nuevo comando al listado que ya tenamos, y si ejecutamos la prueba podremos ver el resultado.
Ahora haremos fallar la prueba, en el IDE hacemos click sobre el ultimo comando (VerifyTextPresent) y veremos que un poco mas abajo hay un espacio donde podremos editarlo cambiando la frase que debe buscar. Sacamos la frase actual y colocamos una que no aparece en el sitio de Selenium, por ejemplo Jourmoly
.
Ejecutamos la prueba y observamos el resultado:
Y como esperbamos, el ltimo comando se ha marcado en rojo porque no encontr el texto que indicamos.
Reutilizando las pruebas Si queremos utilizar esta prueba maana nuevamente va a ser necesario guardarla, para eso vamos a Archivo y luego hacemos click en Save Test Case. Maana cuando la queramos utilizar abriremos el archivo que guardamos tal y como hacemos en cualquier aplicacin. Tambin podemos crear una Test Suite que no es mas que un conjunto de pruebas, la ventaja es que nos permitir tener, por ejemplo, 10 pruebas diferentes para un mismo sistema y ejecutarlas una por vez automticamente mientras tomamos un caf. Notas finales Vimos con unos pocos comandos como se puede hacer una prueba del tipo Anda o no anda? bsica.