martes, 13 de agosto de 2013

Selenium : Grabación y ejecución de un test


Para crear un nuevo test tenemos dos opciones, escribirlo desde 0 o utilizar el ide de selenium y luego exportarlo. Vamos a escoger la segunda opción por su sencillez y rapidez.

 Descargamos el plugin para Firefox de la pagina de selenium y lo instalamos. Selenium IDE

Una vez volvamos a abrir Firefox ya tendremos el IDE disponible, el funcionamiento es el mismo que al instalar cualquier otro plugin en este navegador, si no lo vemos por defecto, podemos activarlo en la pestaña Ver -> Panel Lateral -> Selenium IDE.

Esta es la apariencia y su funcionamiento es muy intuitivo: 



Al apretar el botón "rec" e ir haciendo acciones sobre nuestro navegador, estas se irán grabando automáticamente, podemos modificar estas acciones manualmente desde la pestaña Table o Source según nos sea mas cómodo.

Una vez grabado un test, haremos Archivo -> Export Test Case As.. -> Java/JUnit4/WebDriver



Es importante recordar que el archivo debe tratarse de un .java

Ahora ya podemos copiar nuestro test en nuestro proyecto de Eclipse ( La explicación de como crear un proyecto para ejecutar Selenium la tenemos en el post anterior) y ejecutarlo es tan sencillo como hacer click derecho Run as -> JUnit Test

Si miramos con detenimiento el código java que se nos ha generado veremos que es relativamente sencillo de entender y por tanto es sencillo de modificar si queremos completarlo, como por ejemplo, algo útil que se puede necesitar es asignarle un TimeOut a la carga de las páginas, para ello a la instancia de WebDriver que se nos ha creado podemos llamar a su método pageLoadTime y pasar como parámetro los segundos máximos en los que queremos que se nos cargue, por ejemplo: 

driver.manage().timeouts().pageLoadTimeout(20, TimeUnit.SECONDS);

Y puede ser buena idea try catchear el bloque de código que ejecuta el test para controlar en caso de que falle por Time Out.


Otra cosa que puede resultar útil a la hora de automatizar una serie de test diferentes puede ser la creación de una clase principal que lance y controle nuestras pruebas, en este caso, recordar que para ejecutar una clase como si fuese un test de JUnit desde java se puede recurrir a crear una instancia de JUnitCore:

JUnitCore junit = new JUnitCore();

y luego llamar a su metodo run y recoger los resultados en una instancia de la clase Result

junit.run(NombreDeLaClase.class);

2 comentarios:

  1. Artur buenas tardes, una prgunta, quisiera saber si Selenium cuenta con alguna opcion que me permita exportar a algun formato o archivo el resultado de los scripts que genere.
    De antemano, muchas gracias.
    Saludos.

    ResponderEliminar
    Respuestas
    1. Buenos días,
      Gracias por tu comentario. Efectivamente puedes exportar los scripts generados desde Selenium IDE. Para ello tienes diversas opciones. Tal como aparece en el artículo lo puedes exportar En Ruby, Puthon, Java o C#. Incluso puedes guardarlo como .html para recuperarlo luego y poder abrirlo otra vez con Selenium IDE.
      Para esto tienes las opciones en Archivo -> Export test case as... o Archivo -> Save test case as...
      Espero haberte ayudado.
      Saludos

      Eliminar