Blog

Automatización de pruebas en CI/CD: ¿cómo configurar el pipeline rápidamente?

Te presentamos un recurso útil para minimizar el tiempo de configuración de las pruebas automatizadas usando Selenium dentro de un pipeline de Jenkins.

¿Cómo crear pipelines automatizados en CI/CD en Jenkins?
Imagen de Gerd Altmann en Pixabay

Seguramente has escuchado que la integración continua (CI) ayuda a identificar problemas anticipadamente, pero ¿realmente lo hace?

La Integración continua es una práctica mediante la que un equipo de desarrolladores integra cambios frecuentemente en el código, a veces incluso varias veces al día.

La idea detrás de este flujo de trabajo es que al hacerlo, es posible evitar los problemas que surgen al tener que integrar varias ramas (branches) rápidamente, para cumplir con un plazo establecido. Al reducir el tiempo entre el branching (bifurcación en la línea de tiempo del proyecto) y el merging (fusión de estas ramas con el código), no se permite que el código base cambie o al menos no mucho. Esto hace que el proceso de integración de cambios sea mucho más fluido.

Pero, la CI por sí misma no ayuda a identificar problemas anticipadamente. Son las pruebas que agrega para ejecutar a lo largo del pipeline de CI las que lo hacen. La prueba es la mejor amiga de CI, ya que la integración se puede resumir como la validación automática del código que cumple con ciertas expectativas de calidad.

En Abstracta, trabajamos usualmente con el mismo set de herramientas recomendadas para diferentes clientes, por lo que nos planteamos: ¿cómo configurar y ejecutar la automatización de pruebas en CI/CD más rápidamente?

En este post te compartiremos un recurso útil para ayudarte a ahorrar tiempo.

¿Por qué automatizar pruebas en CI/CD?

En primer lugar, hablemos de por qué es tan importante configurar la automatización de pruebas en un ambiente de CI/CD. El siguiente gráfico muestra lo que implica el proceso de CI:

Proceso para configurar la automatización de pruebas en un entorno de integración y entrega continua (CI/CD)

En integración continua, hay un servidor separado que obtiene los nuevos cambios del servidor de control fuente que hace un nuevo build y lo prueba para cada cambio en el código. Esto se hace con frecuencia, al menos una vez al día, si no más.

Cuando los equipos preparan el build automáticamente, ejecutan las diferentes pruebas que prepararon y son notificados respecto a si algo salió mal o si todo está en orden con la nueva compilación. 

Cada una de las pruebas que se ejecuta junto con su pipeline, agrega solidez al código que ingresa a tu rama. Con las pruebas automatizadas de la interfaz de usuario de Selenium, por ejemplo, puede agregar validaciones automatizadas para ver cómo la última compilación de tu aplicación web ha modificado su comportamiento para evitar resultados inesperados. O tal vez quieras ejecutar algunas pruebas de Gatling en tu aplicación para verificar que la nueva versión no haya sufrido degradaciones del rendimiento.

Las posibilidades son infinitas, pero la idea principal es que cuantas más pruebas integres en tu proceso de CI, mejor será la calidad del producto.

¿Cómo iniciar?

Esto no significa que la integración continua sea fácil o rápida de preparar y “ensamblar”. Al iniciar, hay una gran cantidad de herramientas para elegir para casi todas las tareas que deseas realizar dentro de tu pipeline. También hay varias configuraciones que debes considerar.

Ansible

Recomendamos usar Ansible, una herramienta potente para administrar la configuración y el aprovisionamiento en tus servidores, ya que permite describir el estado deseado y luego se encarga de hacerlo realidad. La forma de usar Ansible es escribir playblooks que son archivos YAML que describen el estado deseado que mencionamos anteriormente. Uno de esos playbooks es el que compartimos en este artículo.

Nuestro Playbook

Hemos creado un playbook para aprovisionar un servidor Jenkins. De esta manera, no tendrás que lidiar con el proceso de instalación y configuración.

¿Por qué hicimos esto? Muchas veces, uno de nuestros clientes ya está usando Jenkins para algún proceso dentro de su empresa y quiere añadir la automatización de pruebas a un pipeline existente o por sí mismo. Otras veces, aún no usan la herramienta, pero ven su valor y quieren comenzar a ejecutar sus pruebas con Jenkins y realizar un seguimiento de los resultados.

Cualquiera que sea el caso, comúnmente estamos configurando pipelines para ejecutar pruebas o servidores Jenkins, por lo que decidimos que deberíamos optimizar ese proceso para acelerar el proceso. Esto nos da más tiempo para concentrarnos en sumar más y diferentes pruebas para ayudar a mejorar la calidad del producto.

Acceso al playbook

Puedes ir al repositorio Github de Abstracta, que tiene una sección de inicio para ayudarte a tener una idea de lo que puedes hacer con estas herramientas. Esta guía te orientará a través del proceso de configuración de tu primer pipeline de Jenkins para ejecutar pruebas con Selenium

Si deseas profundizar más, tenemos algunas guías de “How to” para ayudarte a resolver los problemas más comunes al crear pipelines automatizados en Jenkins.

Cerrando

Creemos que los equipos deben automatizar tanto como sea posible para mejorar la eficacia y eficiencia en el proceso de agregar valor al negocio y a los usuarios. En este post compartimos una manera muy fácil de contar un pipeline automatizado en Jenkins y diferentes herramientas de testing, incluso si nunca has oído hablar de Ansible, Jenkins o Selenium. 

Esperamos ayudarte a adoptar lo que creemos que es parte de los principios de un proceso moderno de desarrollo de software.


¿Buscas asesoría para crear un pipeline automatizado? En Abstracta somos expertos. Sabemos que el valor del pipeline de CI/CD radica en la automatización.

Contáctanos y conversemos sobre cómo podemos ayudarte en el proceso de configurar y ejecutar el pipeline para probar y liberar nuevas versiones del software más rápidamente, así como prevenir problemas de integración de código.

Creemos en la automatización como el motor de la ingeniería de calidad. Nuestros ingenieros que han finalizado +300 proyectos de automatización con éxito, implementan las soluciones apropiadas para tu negocio en beneficio de la calidad. Nuestra sólida trayectoria de 14 años con clientes de +25 países nos respalda.


16 / 208