Información sobre Accesibilidad
Además de la lectura del Módulo, puedes escuchar el curso completo desde aquí:
Introducción
Este módulo se centra en la implementación de pruebas y análisis de código dentro de Jenkins, cubriendo una serie de herramientas y técnicas esenciales para mejorar la calidad del software a través de la automatización. A lo largo de este módulo, se explorarán temas clave como las pruebas unitarias, pruebas automatizadas, notificación, generación de informes y análisis de código, ofreciendo una comprensión integral de cómo Jenkins puede optimizar estos procesos en un entorno de integración continua.
Se abordarán las pruebas unitarias utilizando herramientas como JUnit, destacando cómo configurarlas y ejecutarlas directamente en Jenkins. También se presentarán diversas opciones de pruebas automatizadas, mostrando cómo Selenium puede integrarse en Jenkins para realizar pruebas web sin intervención manual, lo que garantiza que cada compilación sea verificable de manera eficiente.
Además, se cubrirá la configuración de notificaciones para mantener a los equipos informados sobre el estado de las compilaciones, ya sea a través de notificaciones por correo electrónico estándar o mediante complementos que permiten notificaciones personalizadas en diferentes formatos y protocolos.
El módulo también explorará cómo generar y visualizar informes, facilitando el análisis de los resultados de las pruebas y proporcionando una visión clara del estado de cada compilación. Por último, se introducirá el análisis de código estático mediante complementos especializados, que permiten identificar problemas potenciales en el código de manera temprana, ayudando a mantener altos estándares de calidad en el desarrollo de software.
Al finalizar este módulo, los participantes estarán equipados con el conocimiento necesario para implementar pruebas automatizadas, generar informes detallados y realizar análisis de código en Jenkins. También se les invitará a participar en la comunidad compartiendo sus experiencias y aprendizajes en la automatización de pruebas y análisis de código, fomentando el intercambio de buenas prácticas.
Objetivos del módulo
- Pruebas Unitarias
- Pruebas automatizadas
- Notificación
- Informes
- Análisis de Código
Pruebas unitarias
Jenkins proporciona una funcionalidad lista para usar para Junit y proporciona una gran cantidad de complementos para pruebas unitarias para otras tecnologías, como por ejemplo MSTest para pruebas unitarias .Net. Si vas al enlace https://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin le dará la lista de complementos de pruebas unitarias disponibles.
Ejemplo de una prueba Junit en Jenkins
El siguiente ejemplo considerará
- Una clase HelloWorldTest simple basada en Junit.
- Ant como herramienta de construcción dentro de Jenkins para construir la clase en consecuencia.
Paso 1− Vaya al panel de Jenkins, haga clic en el proyecto HelloWorld existente y elija la opción Configurar.
Paso 2− Vaya a la sección Agregar un paso de compilación y elija la opción Invocar Ant.
Paso 3− Haga clic en el botón Avanzado.
Etapa 4− En la sección del archivo de compilación, ingrese la ubicación del archivo build.xml.
Paso 5− Luego haga clic en la opción Agregar opción posterior a la compilación y elija la opción "Publicar informe de resultados de prueba de Junit".
Paso 6− En los informes XML de los informes de prueba, ingrese la ubicación como se muestra a continuación. Asegúrese de que Informes sea una carpeta creada en el espacio de trabajo del proyecto HelloWorld. El "*.xml" básicamente le dice a Jenkins que recoja los archivos xml de resultados que se producen al ejecutar los casos de prueba de Junit. Estos archivos xml se convierten en informes que se pueden ver más tarde.
Una vez hecho esto, haga clic en la opción Guardar al final.
Paso 7− Una vez guardado, puede hacer clic en la opción Construir ahora.
Una vez que se completa la compilación, un estado de la compilación mostrará si la compilación fue exitosa o no. En la información de salida de la compilación, ahora verá una sección adicional llamada Resultado de la prueba. En nuestro caso, ingresamos un caso de prueba negativo para que el resultado fallara solo como ejemplo.
Se puede ir a la salida de la Consola para ver más información. Pero lo que es más interesante es que si hace clic en Resultado de la prueba, ahora verá un desglose de los resultados de la prueba.
Pruebas automatizadas
Uno de los principios básicos de la integración continua es que una compilación debe ser verificable. Debe poder determinar objetivamente si una compilación en particular está lista para pasar a la siguiente etapa del proceso de compilación, y la forma más conveniente de hacerlo es utilizar pruebas automatizadas. Sin las pruebas automatizadas adecuadas, tendrá que conservar muchos artefactos de compilación y probarlos manualmente, lo que no está en consonancia con el espíritu de la integración continua. El siguiente ejemplo muestra cómo utilizar Selenium para ejecutar pruebas web automatizadas.
Paso 1− Vaya a Administrar complementos.
Paso 2− Busque el complemento Hudson Selenium y elija instalarlo. Reinicie la instancia de Jenkins.
Paso 3− Vaya a Configurar sistema.
Etapa 4− Configure el jar del servidor Selenium y haga clic en el botón Guardar.
Nota− El archivo jar de selenio se puede descargar desde la página de Selenium. Haga clic en la descarga del servidor independiente Selenium.
Paso 5− Regrese a su panel y haga clic en la opción Configurar para el proyecto HelloWorld.
Paso 6− Haga clic en Agregar paso de compilación y elija la opción “SeleniumHQ htmlSuite Run”
Paso 7− Añadir los detalles necesarios para la prueba de selenio. Aquí el suiteFile es el TestSuite generado mediante el IDE de Selenium. Haga clic en Guardar y ejecute una compilación. Ahora la compilación posterior iniciará el controlador Selenium y ejecutará la prueba html.
Notificación
Jenkins viene con una función lista para usar para agregar una notificación por correo electrónico para un proyecto de compilación.
Paso 1− Configuración de un servidor SMTP. Vaya a Administrar Jenkins → Configurar sistema. Vaya a la sección de notificación por correo electrónico e ingrese el servidor SMTP requerido y los detalles del sufijo de correo electrónico del usuario.
Paso 2− Configure los destinatarios en el proyecto Jenkins: cuando configura cualquier proyecto de compilación de Jenkins, justo al final está la posibilidad de agregar destinatarios que recibirían notificaciones por correo electrónico en caso de compilaciones inestables o rotas. Luego haga clic en el botón Guardar.
Además del valor predeterminado, también hay complementos de notificación disponibles en el mercado. Un ejemplo es el complemento de notificación de Tikal Knowledge que permite enviar notificaciones de estado del trabajo en formatos JSON y XML. Este complemento permite configurar los puntos finales como se muestra a continuación.
Aquí están los detalles de cada opción:
- "Formato"− Este es el formato de carga útil de notificación que puede ser JSON o XML.
- "Protocolo"− protocolo a utilizar para enviar mensajes de notificación, HTTP, TCP o UDP.
- "Evento"− Los eventos de trabajo que activan notificaciones: Trabajo iniciado, Trabajo completado, Trabajo finalizado o Todos los eventos (la opción predeterminada).
- "URL"− URL a la que enviar notificaciones. Toma la forma de "http://host" para el protocolo HTTP, y"Puerto host"para protocolos TCP y UDP.
- "Se acabó el tiempo"− Tiempo de espera en milisegundos para enviar la solicitud de notificación, 30 segundos por defecto.
Informes
Como se demostró en la sección anterior, hay muchos complementos de informes disponibles, siendo los más simples los informes disponibles para las pruebas jUnit.
En la acción posterior a la compilación para cualquier trabajo, puede definir los informes que se crearán. Una vez completadas las compilaciones, la opción Resultados de la prueba estará disponible para profundizar más.
Análisis de código
Jenkins tiene una gran cantidad de complementos de análisis de código. Los diversos complementos se pueden encontrar en https://wiki.jenkins-ci.org/display/JENKINS/Static+Code+Analysis+Plugins
Este complemento proporciona utilidades para los complementos de análisis de código estático. Jenkins puede analizar el archivo de resultados de varias herramientas de análisis de código, como CheckStyle, FindBugs, PMD, etc. Para cada herramienta de análisis de código correspondiente, se debe instalar un complemento en Jenkins.
Además, el complemento adicional de análisis estático está disponible y combina los resultados individuales de estos complementos en una única vista y gráfico de tendencias.
Los complementos pueden proporcionar información como
- El número total de advertencias en un trabajo.
- Una muestra de las advertencias nuevas y fijas de una compilación.
- Informes de tendencias que muestran la cantidad de advertencias por compilación.
- Descripción general de las advertencias encontradas por módulo, paquete, categoría o tipo
- Informes detallados de las advertencias encontradas, opcionalmente filtrados por gravedad (o nuevos y corregidos).
Actividades del Módulo
- Lectura Asignada: Leer los 5 puntos anteriores donde se detalla todo lo relacionado con pruebas y análisis de código.
- Discusión en la comunidad: Crea un debate en el canal contando tu experiencia con la información mostrada para automatizar el lanzamiento de pruebas automáticas.