Comment lancer des tests Jenkins Selenium à l'aide du pipeline

Dernière mise à jour : 19 mars 2019 — Continuous Testing Expert

 

Jenkins est un système logiciel Java open source conçu pour faciliter la intégration logicielle continue Jenkins est un système serveur qui s'exécute dans des conteneurs de servlets tels qu'Apache Tomcat. Il prend en charge les outils de contrôle de version (par exemple, Git) et peut exécuter des projets basés sur Apache Ant, Apache Maven et sbt, ainsi que des scripts et commandes shell/batch Windows. Lors du développement de systèmes de grande envergure, un système de traitement de données est nécessaire. processus de déploiement continu et de tester les nouvelles versions de votre produit. Pour résoudre ce problème, nous utiliserons le pipeline Selenium de Jenkins.

Jenkins Selenium Pipeline est une suite de plugins qui facilite l'intégration de la livraison continue dans Jenkins. Autrement dit, il s'agit d'un script contenant plusieurs tâches et pouvant être exécuté à chaque fois qu'une condition spécifique est remplie. Prenons l'exemple d'un pipeline. Pour en savoir plus, consultez la documentation. Digital.ai Continuous Testing Intégrations, regardez ici.

Notre tâche consiste à créer un pipeline qui sera lancé automatiquement à chaque modification apportée à notre dépôt de tests public Maven. Ce dépôt contiendra un projet Maven avec un test d'interface utilisateur automatisé, développé avec Selenium WebDriver.

Notre pipeline Jenkins recevra les modifications de code, construira un projet et exécutera un test automatique simple.

Par étapes:

1) Télécharger Jenkins.

2) Installez Jenkins avec les paramètres recommandés en suivant les instructions du programme d'installation. (Remarque importante : il est recommandé d'installer Jenkins sur une machine distincte disposant d'un accès Internet, car il est nécessaire de connecter votre instance au dépôt. Toutefois, pour la démonstration, nous pouvons (et nous utiliserons dans cet article) un projet Jenkins local accessible via l'outil Ngrok).

3) Une fois l'installation terminée, cliquez sur le bouton « créer de nouvelles tâches ».

Bienvenue - Pipeline Jenkins

4) Ensuite, sélectionnez la section Pipeline et saisissez le nom de votre tâche. Cliquez sur OK.

Nom de l'élément : pipeline Jenkins

5) Ensuite, accédez à la section Pipeline et définissez les paramètres suivants :

a) Définition = « script de pipeline provenant du SCM »

Déclencheurs de génération - pipeline Jenkins

b) SCM = « Git »

Déclencheurs de génération - pipeline Jenkins

6) Configurez un dépôt. Le champ « Chemin du script » est par défaut défini sur « Jenkinsfile » ; il s'agit du nom du fichier script contenant la description de toutes les tâches que notre pipeline Jenkins exécutera. Ce fichier doit se trouver à la racine du dépôt par défaut. Nous reviendrons plus tard sur la création et la configuration du fichier Jenkinsfile. Pour l'instant, préparons un dépôt et un projet pour notre test Selenium. Cliquez simplement sur le bouton « Enregistrer ».

pipeline - pipeline Jenkins

7) Le script de notre test automatique visitera la page https://experitest.com/free-trial/ Vérifiez le titre de cette page ; vous verrez alors le message « TEST RÉUSSI » ou « TEST ÉCHOUÉ ». Nous allons donc utiliser… Pilote Chrome et IntelliJ IDEA IDE, veuillez les télécharger et les installer si nécessaire.

8) Créez un projet Maven standard dans votre IDE et placez le fichier chromedriver.exe dans le répertoire d'installation de votre instance Jenkins Selenium. Dans mon cas, Cliquez ici pour consulter le code.

  [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”); // <– Modifier ce chemin WebDriver driver = new ChromeDriver(); String baseUrl = “https://experitest.com/free-trial/”; String expectedTitle = “Essai gratuit”; String actualTitle = “”; driver.get(baseUrl); actualTitle = driver.getTitle(); if (actualTitle.contentEquals(expectedTitle)){ System.out.println(“TEST RÉUSSI !”); } else { System.out.println(“TEST ÉCHOUÉ”); } driver.close(); } } [/java]

9) Afin de vérifier le bon fonctionnement de notre test, nous allons l'exécuter localement. Ouvrez le terminal intégré (situé en bas à droite de l'interface d'IDEA) et saisissez les commandes suivantes :

pipeline Java - Jenkins

a) mvn clean install – À la suite de cette commande, un dossier /target sera créé, et à l'intérieur un fichier com.test-1.0-SNAPSHOT.jar.

b) java -jar {chemin vers le projet local}comtesttargetcom.test-1.0-SNAPSHOT.jar – cette commande lancera notre test.

Voir les résultats dans la capture d'écran :

pipeline Java - Jenkins

10) Maintenant que notre projet est prêt, nous pouvons le placer à la racine de notre dépôt de test. Au même endroit, nous allons créer un fichier Jenkinsfile, comme ceci :

pipeline Selenium - Jenkins

11) Nous pouvons maintenant discuter du contenu de notre fichier Jenkinsfile. le code peut être consulté ici.

Ici:

a) node { } – une sorte d'enveloppe pour notre script. À l'intérieur, le script est divisé en étapes.

b) étape (« SCM checkout ») – étape préparatoire, au cours de laquelle nous recevons les mises à jour de notre dépôt.

c) étape (« Build ») – l’étape principale, au cours de laquelle Jenkins effectuera les mêmes étapes que celles que nous avons effectuées localement depuis la console ci-dessus.

d) dir (« comtest ») – fonctionne dans un dossier spécifique.

e) sh « mvn clean install » – exécute des commandes shell.

12) À cette étape, nous pouvons lancer manuellement notre pipeline Jenkins, pour nous assurer qu'il fonctionne.

pipeline - pipeline Jenkins

Vous pouvez voir les résultats du travail du pipeline sous forme de texte continu, ou étape par étape.

Option « Sortie console » :

console - pipeline Jenkins

Option « Étapes du pipeline » :

Étapes - Pipeline Jenkins

Mais notre objectif n'est pas seulement de créer un pipeline Jenkins pour les tests automatisés, mais aussi d'automatiser son lancement. Allons-y !

13) Installez les plugins pour l'intégration avec GitLab. Pour ce faire, accédez à la section suivante : Jenkins > Gérer Jenkins > Gérer les plugins

gérer - pipeline Jenkins

Sélectionnez ensuite l'onglet Disponible et saisissez « gitlab » dans le champ de recherche. Installez les plugins nécessaires et redémarrez Jenkins.

disponible - pipeline Jenkins

14) Une fois la mise à jour terminée, revenez à la configuration. Accédez à Jenkins => Configurer le système.

a) Ajouter le dépôt Gitlab au plugin :

Accédez à Jenkins => Configurer le système

pipeline GitLab - Jenkins

Remarque : Pour nos besoins, il est nécessaire d'utiliser un dépôt public, nous ne devons donc pas spécifier d'identifiants.

b) Vérifiez si l'URL Jenkins est valide. Si vous avez installé votre instance Jenkins Pipeline sur une machine distincte, ignorez cette étape. Si vous avez utilisé une machine locale, comme moi, vous verrez « localhost » dans le champ « URL Jenkins ».

emplacement - pipeline Jenkins

Dans ce cas, nous devons obtenir une URL accessible par GitLab via Internet. Comme je l'ai dit précédemment, il existe une méthode simple pour y parvenir : ngrok.

En suivant les instructions simples de cet outil, obtenez l'URL sur laquelle se trouve notre Jenkins de test :

Récupérez l'URL sur laquelle se trouve notre Jenkins de test.

Nous allons saisir cette adresse dans le champ URL Jenkins et enregistrer toutes les modifications.

Saisissez cette adresse dans le champ URL Jenkins

15) Accédez maintenant aux paramètres GitLab : GitLab > Projet > Paramètres > Intégrations. Il faut configurer le webhook Jenkins CI. Cliquez sur le lien suivant :

GitLab => Projet => Paramètres => Intégrations

Les paramètres d'intégration avec Jenkins CI ressembleront à ceci ou à quelque chose de similaire :

Paramètres d'intégration avec Jenkins CI

16) Mettez à jour les paramètres de notre pipeline Jenkins (pipeline_selenium1) pour utiliser un webhook GitLab.

Pipeline Jenkins (pipeline_selenium1) pour utiliser un webhook GitLab

17) C'est tout ! Maintenant, envoyons quelque chose à notre dépôt et voyons ce qui se passe dans Jenkins.

pipeline selenium 1 - pipeline jenkins

Conclusion du lancement du pipeline Jenkins

Comme vous pouvez le constater, nous disposons d'une méthode simple pour créer un pipeline Jenkins qui exécutera des tests automatiques Selenium sans intervention humaine. Ce pipeline permet également d'automatiser toutes les actions préparatoires. Pour en savoir plus sur la syntaxe du Jenkinsfile, suivez le lien « Syntaxe des pipelines » (visible sur la dernière capture d'écran).

Si ce blog vous intéresse, veuillez visiter Digital.ai Continuous Testing pour découvrir comment offrir des expériences client irréprochables grâce à des solutions web et évolutives. test mobile.

Vous aimerez aussi