Publicado: Marzo 19, 2019
Cómo ejecutar pruebas de Selenium en Jenkins usando la canalización
Jenkins es un sistema de software Java de código abierto diseñado para ayudar en la integración continua de software Jenkins es un sistema basado en servidor que se ejecuta en contenedores de servlets como Apache Tomcat. Admite herramientas de control de versiones (por ejemplo, Git) y puede ejecutar proyectos basados en Apache Ant, Apache Maven y sbt, así como scripts y comandos de shell/Windows. Durante el desarrollo de sistemas grandes, surge la necesidad de un proceso continuo de despliegue y probar nuevas versiones de su producto. Para solucionar este problema, utilizaremos Jenkins SeleniumPipeline.
Jenkins Selenium Pipeline es un conjunto de plugins que facilitan la integración de la entrega continua en Jenkins. En otras palabras, es un script con varias tareas que se ejecuta cada vez que se cumple una condición específica. Veamos un ejemplo de cómo trabajar con Pipeline. Para obtener más información, consulte la documentación. Digital.ai Continuous Testing Integraciones, mira aquí.
Nuestra tarea consiste en crear un pipeline que se ejecutará automáticamente con cada envío a nuestro repositorio público de pruebas de Maven. El repositorio almacenará un proyecto Maven con una prueba automatizada de interfaz de usuario, escrita con Selenium WebDriver.
Nuestro pipeline de Jenkins recibirá cambios de código, compilará un proyecto y ejecutará una prueba automática simple.
En pasos:
1) Descargar Jenkins.
2) Instale con los parámetros recomendados siguiendo las instrucciones del instalador. (Nota importante: se recomienda instalar Jenkins en una máquina independiente con acceso a Internet, ya que es necesario conectar su instancia con el repositorio. Sin embargo, para esta demostración, podemos (y lo haremos en este artículo) usar un proyecto local de Jenkins con acceso mediante la herramienta Ngrok).
3) Cuando la instalación esté completa, haga clic en el botón “crear nuevos trabajos”.
4) A continuación, seleccione la sección Pipeline e introduzca el nombre de su trabajo. Haga clic en Aceptar.
5) Después, vaya a la sección Pipeline y configure los siguientes parámetros:
a) Definición = “script de pipeline desde SCM”
b) SCM = “Git”
6) Configura un repositorio. El campo Ruta del script tiene como valor predeterminado "Jenkinsfile", que es el nombre del archivo de script que contiene la descripción de todas las tareas que realizará nuestra canalización de Jenkins. Este archivo debería estar en la raíz del repositorio de forma predeterminada. Más adelante veremos cómo crear y configurar Jenkinsfile; ahora prepararemos un repositorio y un proyecto para nuestra prueba de Selenium. Por ahora, simplemente haz clic en el botón Guardar.
7) El script de nuestra prueba automática visitará la página https://experitest.com/free-trial/ y revisa el título de esta página; verás los mensajes “PRUEBA SUPERADA” o “PRUEBA FALLIDA” como resultado. Así que utilizaremos controlador de cromo y IntelliJ IDEA IDE, por favor descárguelos e instálelos si es necesario.
8) Crea un proyecto Maven estándar en tu IDE y coloca el archivo chromedriver.exe en la misma ubicación donde está instalada tu instancia de Jenkins Selenium. En mi caso, Haz clic aquí para ver el código..
[java] package com.test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class Selenium { public static void main(String[] args) { System.setProperty(“webdriver.chrome.driver”,”F:\Jenkins\workspace\chromedriver.exe”); // <– Cambiar esta ruta WebDriver driver = new ChromeDriver(); String baseUrl = “https://experitest.com/free-trial/”; String expectedTitle = “Prueba gratuita”; String actualTitle = “”; driver.get(baseUrl); actualTitle = driver.getTitle(); if (actualTitle.contentEquals(expectedTitle)){ System.out.println(“¡PRUEBA SUPERADA!”); } else { System.out.println(“¡PRUEBA FALLIDA!”); } driver.close(); } } [/java]
9) Para asegurarnos de que nuestra prueba funciona, la ejecutaremos localmente. Abra la terminal integrada (la encontrará en la esquina inferior derecha de la interfaz de IDEA) e introduzca los siguientes comandos:
a) mvn clean install – Como resultado de este comando, se creará una carpeta /target y en ella un archivo com.test-1.0-SNAPSHOT.jar.
b) java -jar {ruta al proyecto local}comtesttargetcom.test-1.0-SNAPSHOT.jar – este comando iniciará nuestra prueba.
Vea los resultados en la captura de pantalla:
10) Ahora que nuestro proyecto está listo, podemos colocarlo en la raíz de nuestro repositorio de pruebas. En el mismo lugar, crearemos un archivo Jenkinsfile. Así:
11) Ahora podemos analizar el contenido de nuestro Jenkinsfile, cuyo código puede consultarse aquí..
Aquí:
a) nodo { } – una especie de contenedor para nuestro script. Dentro de él, el script se divide en etapas.
b) etapa ('SCM checkout') – etapa preparatoria, durante la cual recibimos actualizaciones de nuestro repositorio.
c) etapa ('Build') – la etapa principal, durante la cual Jenkins realizará los mismos pasos que realizamos localmente desde la consola anteriormente.
d) dir (“comtest”) – funciona en una carpeta específica.
e) sh “mvn clean install” – ejecuta comandos de shell.
12) En este paso podemos iniciar manualmente nuestra canalización de Jenkins para asegurarnos de que funciona.
Puedes ver los resultados del funcionamiento del pipeline en forma de texto continuo o paso a paso.
Opción “Salida de consola”:
Opción “Etapas del pipeline”:
Pero nuestro objetivo no es solo crear un pipeline de Jenkins para las pruebas automatizadas, sino también automatizar su ejecución. ¡Manos a la obra!
13) Instala los plugins para la integración con GitLab. Para ello, ve a la siguiente sección: Jenkins => Administrar Jenkins => Administrar plugins
A continuación, seleccione la pestaña Disponible e introduzca «gitlab» en el campo de búsqueda. Instale los complementos necesarios y reinicie Jenkins.
14) Una vez finalizada la actualización, volvemos a la configuración. Vaya a Jenkins => Configurar sistema.
a) Agregar el repositorio de Gitlab al plugin:
Nota: Para nuestros fines, es necesario utilizar un repositorio público, por lo que no debemos especificar ninguna credencial.
b) Comprueba si tenemos una URL de Jenkins válida. Si instalaste tu instancia de Jenkins Pipeline en una máquina diferente, omite este paso. Si usaste una máquina local, como yo, verás la inscripción «localhost» en el campo «URL de Jenkins».
En este caso, necesitamos obtener una URL a la que GitLab pueda acceder a través de Internet. Como mencioné antes, hay una manera sencilla de hacerlo. ngrok.
Siguiendo las sencillas instrucciones de esta herramienta, obtenga la URL en la que se encuentra nuestro Jenkins de prueba:
Introduciremos esta dirección en el campo URL de Jenkins y guardaremos todos los cambios.
15) Ahora, ve a la configuración de GitLab: GitLab => Proyecto => Configuración => Integraciones. Necesitamos configurar el webhook de Jenkins CI. Haz clic en el siguiente enlace:
La configuración de integración con Jenkins CI tendrá el siguiente aspecto o similar:
16) Actualice la configuración de nuestra canalización de Jenkins (pipeline_selenium1) para usar un webhook de GitLab.
17) ¡Eso es todo! Ahora vamos a subir algo a nuestro repositorio y ver qué sucede en Jenkins.
Finalizando el lanzamiento del pipeline de Jenkins
Como puedes ver, tenemos una forma sencilla de crear el Pipeline de Jenkins, que ejecutará autotests de Selenium sin intervención humana. El Pipeline también nos permite realizar automáticamente cualquier acción preparatoria. Para obtener más información sobre la sintaxis de Jenkinsfile, puedes seguir el enlace a la Sintaxis del Pipeline (que se muestra en la última captura de pantalla).
Si este blog te ha interesado, por favor visita Digital.ai Continuous Testing para ver cómo ofrecer experiencias de cliente impecables con una web escalable y prueba móvil.
También puede interesarle
El lanzamiento de un nuevo Pixel siempre plantea la misma pregunta: ¿Está lista tu aplicación?
Cada vez que Google pone un nuevo Pixel en manos de la gente,…
Los primeros en el mercado con soporte para iOS 27, pero eso significa más que ser los primeros.
Cuando se lanzó oficialmente iOS 27, Digital.ai Las pruebas fueron…
Protege y prueba tu aplicación en iOS 27 desde el primer día.
Las aplicaciones móviles son la clave de tu reino. Conectan…





















