Automatizando los Smoke Test con TestLink y Jenkins

2
12542

Automatizando los Smoke Test con TestLink y Jenkins

0. Índice de
contenidos.

1. Entorno

Este tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil Mac Book Pro 15″ (2,3 Ghz Intel Core i7, 16 GB DDR3)
  • Sistema Operativo: Mac OS X Mavericks

2. Introducción

Ya vimos en un tutorial anterior qué eran los smoke tests y
como crearlos con TestNG y Selenium.

En este nos vamos a centrar en la automatización de estos tests con Jenkins y en la integración con TestLink para que el cliente pueda ver en tiempo de integración
el estado de sus features.

Partimos con que ya contamos con una máquina con las instancias de TestLink y Jenkins instaladas y corriendo.

3. Configuración en TestLink

Primero nos logamos como administradores en TestLink y creamos un nuevo proyecto pulsando desde «Desktop» en la opción «Test Project Management».

Ahora pulsamos en «Create» y rellenamos el formulario con información que necesitemos, es importante habilitar la opción «Enable Test Automation (API keys)»
y las opciones «Active» y «Public».

Ahora vamos a crear un campo personalizado que haga de enlace entre Jenkins y TestLink. Para ello, una vez creado volvemos al «Desktop» y
seleccinamos la opción «Define Custom Fields» donde pulsamos en la acción «Create» donde rellenamos el formulario de esta manera:

Confirmamos los datos pulsando en «Add» y vemos que ya tenemos creado y disponible el campo «Java Class».

El siguente paso es asignar este nuevo campo personalizado. Para ello volvemos a «Desktop» y seleccionamos la opción «Assign Custom Fields», lo que nos muestra un listado con
potenciales campos personalizados que pueden ser asignados, donde seleccionamos «Java Class» y pulsamos en «Assign».

En este punto podemos determinar que nuestro campo sea obligatorio, simplemente habilitando la opción «Required» y pulsando en «Update active and required». Podemos hacer lo mismo
con las opciones «Location» y «Display Order».

Vamos a crear nuestro Test Case de ejemplo. Para ello pulsamos en la opción del menú superior «Test Specification» y pulsamos en la rueda de acciones para que se
muestren las posibles acciones.

Para crear un Test Suite pulsamos en «Create» y rellenamos el formulario con la siguiente información:

Ahora pulsamos en «Create Test Suite» y vemos como se actualiza el árbol con el nuevo Test Suite. Si no véis está actualizando será porque no tengáis seleccionada
la opción «Update tree after every operation».

Ahora para crear el Test Case pulsamos sobre el nodo del árbol que representa a nuestro Test Suite y pulsando sobre la rueda de acciones vemos que ahora tenemos acciones para Test Suite
y para Test Case. Pulsando en la acción «Create» de la sección «Test Case Operations» se mostrará el siguiente formulario para dar de alta el Test Case.

Pulsando en «Create», el árbol se actualizará permitiendo acceder a los detalles del Test Case.

Ahora para poder ejecutar los test tenemos que crear lo que TestLink conoce como «Test Plan». Para ello desde «Desktop» pulsamos en la opción «Test Plan Management» y seguidamente
en «Create», donde podremos rellenar la información de nuestro Test Plan, sin olvidar chequear las opciones «Active» y «Public».

Pulsando en «Create» el sistema nos muestra un listado con todos los Test Plan creados. Ahora tenemos que asignar Test Cases a este Test Plan. Para ello desde «Desktop»
seleccionamos la opción «Add / Remove Test Cases» donde seleccionando el Test Suite que contiene nuestro Test Case podemos seleccionarlo y asignarlo al Test Plan activo
pulsando en «Add selected» con lo que veremos que nuestro Test Case se muestra ahora en color amarillo.

En este punto finalizamos la configuración de TestLink y pasamos a Jenkins.

4. Configuración en Jenkins

En Jenkins lo primero que tenemos que hacer es instalar el plugin de TestLink y el xvfb. Este último nos permitirá poder levantar un Firefox en una máquina son interfaz
gráfica. Para instalar plugins en Jenkins tenemos que ir a «Manage Jenkins» — «Manage Plugins» y en la sección «Available» seleccionar los plugins: «TestLink Plugin» y «Xvfb Plugin»
y pulsamos en «Install without restart» para que estén disponibles.

Una vez disponibles vamos a «Manage Jenkins» — «Configure System». Lo primero es configurar la sección «TestLink» como se muestra a continuación:

El «Developer Key» se obtiene en la sección «My Settings» de TestLink.

Ahora antes de configurar el plugin Xvfb necesitamos tener instalados los paquetes xvfb y firefox en la máquina. Mi máquina de pruebas en CentOS 6.5 por lo que para
instalarlos tengo que ejecutar desde un terminal:

Y

Ahora en Jenkins localizamos la sección de configuración del plugin Xvfb y añadimos la siguiente información:

Por último pulsamos en «Save» para confirmar los cambios.

Ahora creamos el job que va a automatizar la ejecución de los smoke tests. Para ello pulsamos en «New Item», seleccionamos el tipo de proyecto «Build a free-style software project»
y le damos un nombre, por ejemplo, «AutentiaWeb-Test».

Seguidamente configuramos la sección de Git para indicar donde van a estar nuestros tests.

Luego en la sección «Build Environment» habilitamos la opción «Start Xvfb before the build, and shut it down after.» Para después en la sección «Build», desplegar las opciones
«Add Build Step» y seleccionar «Invoke TestLink».

Esto hace que se visualice el siguiente formulario que nos permitirá introducir la información relativa a TestLink para enlazar la ejecución con los Test Cases.

Ahora en la sección «Test Execution» añadimos la acción «Invoke top-level Maven targets»

Lo que nos permite configurar la versión de Maven que vamos a utilizar y los Goals de Maven que queremos ejecutar, en nuestro caso está sería la configuración:

Ahora configuramos la forma de localizar los resultados obtenidos de la ejecución de los tests. Para ello, en la sección «Result Seeking Strategies» pinchamos sobre «Add Strategy» y
seleccionamos la opción «TestNG Class Name» para que tenga en cuenta el nombre de la clase de nuestro campo «Java Class».

Esto hace que se muestre un formulario que nos permite introducir el patrón de búsqueda del fichero de resultados y el nombre del campo personalizado, quedando de esta forma:

Para confirmar todos los cambios pulsamos en «Save» y ya estaría configurado nuestro job.

5. Comprobamos si todo es correcto

Para comprobar si toda la configuración es correcta, tenemos que ejecutar el job en Jenkins y ver que acaba correctamente. Podemos ver algunos detalles en el output del job
significativos de que todo está funcionando, como que ha encontrado los test cases automáticos en TestLink.

Y podemos ver que el proceso ejecuta correctamente todos los tests, hace el enlace con TestLink y para el servicio Xvfb que nos permite levantar Firefox en una máquina sin
interfaz gráfica.

Ahora nos conectamos a TestLink y pulsamos en la opción de menú «Test Eecution» donde tenemos que ver que nuestro test se ha ejecutado y está en verde como se muestra en la imagen:

6. Conclusiones

En este tutorial he querido ser lo más detallado posible, por eso pudiera parecer que el proceso de configuración es muy complejo, pero nada más alejado de la realidad. Es un proceso
sencillo que nos aporta un radiador de información del avance de nuestro proyecto de cara al cliente y nos permite tener centralizados y automatizados todos los tests de aceptación,
que de otra forma, acabarían ejecutándose de forma manual en base a una hoja de cálculo, con lo que se dejarían de hacer por la sobrecarga de horas que provoca.

Cualquier duda o sugerencia en la zona de comentarios.

Saludos.

2 Comentarios

  1. Hola,
    Me puedes ayudar? el \»Developer Key\» no lo encuentro en la sección \»Mi configuración\» de TestLink; mi versión es 1.9.6.
    Gracias!

  2. Hola, tengo 2 problemas…
    1- No me reconoce el repositorio GIT
    2- No configurando el repositorio, el job del Jenkins se ejecuta correctamente, creando el Builld, pero no el caso no se ejecuta, que en estado «No Ejecutado»
    Cual pude ser el problema?

    Configuracion Local
    Win 8
    XAMPP + Testlink
    Maven
    Plugin solicitados

Dejar respuesta

Please enter your comment!
Please enter your name here