En este módulo, aprenderemos cómo integrar Jenkins con diversas herramientas de pruebas para automatizar y mejorar la calidad del software. La integración de herramientas de pruebas con Jenkins permite ejecutar pruebas automáticamente cada vez que se realiza una nueva construcción, asegurando que el código sea probado de manera continua y eficiente.

Objetivos del Módulo

  • Entender la importancia de la integración de herramientas de pruebas con Jenkins.
  • Aprender a configurar Jenkins para ejecutar pruebas automáticas.
  • Conocer las herramientas de pruebas más comunes y cómo integrarlas con Jenkins.
  • Implementar un pipeline de Jenkins que incluya la ejecución de pruebas.

  1. Importancia de la Integración de Herramientas de Pruebas

La integración de herramientas de pruebas con Jenkins ofrece varios beneficios:

  • Automatización de Pruebas: Ejecutar pruebas automáticamente en cada construcción.
  • Detección Temprana de Errores: Identificar problemas en el código lo antes posible.
  • Mejora de la Calidad del Software: Asegurar que el código cumple con los estándares de calidad.
  • Ahorro de Tiempo y Esfuerzo: Reducir el tiempo y esfuerzo manual necesario para ejecutar pruebas.

  1. Configuración de Jenkins para Ejecutar Pruebas Automáticas

2.1. Instalación de Plugins de Pruebas

Para integrar herramientas de pruebas con Jenkins, es necesario instalar los plugins correspondientes. Algunos de los plugins más comunes son:

  • JUnit Plugin: Para ejecutar pruebas unitarias en Java.
  • Maven Integration Plugin: Para proyectos que utilizan Apache Maven.
  • TestNG Plugin: Para ejecutar pruebas con TestNG.
  • Cucumber Reports Plugin: Para generar informes de pruebas de Cucumber.

Pasos para Instalar Plugins:

  1. Navega a Manage Jenkins > Manage Plugins.
  2. Ve a la pestaña Available.
  3. Busca el plugin deseado (por ejemplo, "JUnit Plugin").
  4. Selecciona el plugin y haz clic en Install without restart.

2.2. Configuración de un Trabajo de Jenkins para Ejecutar Pruebas

Ejemplo: Configuración de un Trabajo para Ejecutar Pruebas JUnit

  1. Crear un Nuevo Trabajo:

    • Navega a la página principal de Jenkins.
    • Haz clic en New Item.
    • Introduce un nombre para el trabajo y selecciona Freestyle project.
    • Haz clic en OK.
  2. Configurar el Repositorio de Código:

    • En la sección Source Code Management, selecciona Git.
    • Introduce la URL del repositorio y las credenciales si es necesario.
  3. Configurar el Entorno de Construcción:

    • En la sección Build Environment, selecciona Add build step > Invoke top-level Maven targets.
    • Introduce el objetivo de Maven para ejecutar las pruebas, por ejemplo, test.
  4. Publicar Resultados de Pruebas:

    • En la sección Post-build Actions, selecciona Publish JUnit test result report.
    • Introduce la ruta de los archivos de resultados de pruebas, por ejemplo, **/target/surefire-reports/*.xml.
  5. Guardar y Ejecutar el Trabajo:

    • Haz clic en Save.
    • Ejecuta el trabajo manualmente para verificar que las pruebas se ejecutan correctamente.

  1. Herramientas de Pruebas Comunes y su Integración con Jenkins

3.1. JUnit

JUnit es una de las herramientas de pruebas unitarias más populares para Java. La integración con Jenkins se realiza mediante el JUnit Plugin.

Ejemplo de Configuración de JUnit:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'mvn clean compile'
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test'
            }
            post {
                always {
                    junit '**/target/surefire-reports/*.xml'
                }
            }
        }
    }
}

3.2. Selenium

Selenium es una herramienta de pruebas automatizadas para aplicaciones web. La integración con Jenkins se puede realizar mediante la ejecución de scripts de Selenium en el pipeline.

Ejemplo de Configuración de Selenium:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'mvn clean compile'
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test -Dtest=MySeleniumTest'
            }
            post {
                always {
                    junit '**/target/surefire-reports/*.xml'
                }
            }
        }
    }
}

3.3. Cucumber

Cucumber es una herramienta de pruebas que soporta el desarrollo dirigido por comportamiento (BDD). La integración con Jenkins se realiza mediante el Cucumber Reports Plugin.

Ejemplo de Configuración de Cucumber:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'mvn clean compile'
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test -Dcucumber.options="--plugin json:target/cucumber.json"'
            }
            post {
                always {
                    cucumber 'target/cucumber.json'
                }
            }
        }
    }
}

  1. Implementación de un Pipeline de Jenkins con Pruebas

Ejemplo Completo de Pipeline con Pruebas JUnit y Selenium

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git 'https://github.com/tu-repositorio.git'
            }
        }
        stage('Build') {
            steps {
                sh 'mvn clean compile'
            }
        }
        stage('Unit Test') {
            steps {
                sh 'mvn test'
            }
            post {
                always {
                    junit '**/target/surefire-reports/*.xml'
                }
            }
        }
        stage('Integration Test') {
            steps {
                sh 'mvn verify -Dtest=MySeleniumTest'
            }
            post {
                always {
                    junit '**/target/surefire-reports/*.xml'
                }
            }
        }
    }
}

Ejercicio Práctico

Ejercicio 1: Configurar un Trabajo de Jenkins para Ejecutar Pruebas Unitarias con JUnit

  1. Crea un nuevo trabajo de Jenkins.
  2. Configura el repositorio de código.
  3. Configura el entorno de construcción para ejecutar pruebas unitarias con JUnit.
  4. Publica los resultados de las pruebas.
  5. Ejecuta el trabajo y verifica los resultados.

Solución del Ejercicio 1

  1. Crear un Nuevo Trabajo:

    • Navega a la página principal de Jenkins.
    • Haz clic en New Item.
    • Introduce un nombre para el trabajo y selecciona Freestyle project.
    • Haz clic en OK.
  2. Configurar el Repositorio de Código:

    • En la sección Source Code Management, selecciona Git.
    • Introduce la URL del repositorio y las credenciales si es necesario.
  3. Configurar el Entorno de Construcción:

    • En la sección Build Environment, selecciona Add build step > Invoke top-level Maven targets.
    • Introduce el objetivo de Maven para ejecutar las pruebas, por ejemplo, test.
  4. Publicar Resultados de Pruebas:

    • En la sección Post-build Actions, selecciona Publish JUnit test result report.
    • Introduce la ruta de los archivos de resultados de pruebas, por ejemplo, **/target/surefire-reports/*.xml.
  5. Guardar y Ejecutar el Trabajo:

    • Haz clic en Save.
    • Ejecuta el trabajo manualmente para verificar que las pruebas se ejecutan correctamente.

Conclusión

En este módulo, hemos aprendido la importancia de integrar herramientas de pruebas con Jenkins y cómo configurar Jenkins para ejecutar pruebas automáticas. También hemos explorado algunas de las herramientas de pruebas más comunes y cómo integrarlas con Jenkins. Finalmente, implementamos un pipeline de Jenkins que incluye la ejecución de pruebas, asegurando así la calidad continua del software. Con estos conocimientos, estarás mejor preparado para automatizar y mejorar tus procesos de pruebas en Jenkins.

Jenkins: De Principiante a Avanzado

Módulo 1: Introducción a Jenkins

Módulo 2: Conceptos Básicos de Jenkins

Módulo 3: Pipelines de Jenkins

Módulo 4: Pipelines Avanzadas de Jenkins

Módulo 5: Administración de Jenkins

Módulo 6: Integrando Jenkins

Módulo 7: Jenkins para Integración Continua y Entrega Continua (CI/CD)

Módulo 8: Temas Avanzados de Jenkins

Módulo 9: Mejores Prácticas y Solución de Problemas en Jenkins

© Copyright 2024. Todos los derechos reservados