Jenkins

Introduction

Jenkins est un logiciel d'intégration continue (CI)  et de déploiement continue (CD) open source entièrement écrit en Java.  Il permet de tester et de rapporter les changements effectués sur une large base de code en temps réel. En utilisant ce logiciel, les développeurs peuvent détecter et résoudre les problèmes dans une base de code et rapidement. Ainsi les tests de nouveaux builds peuvent être automatisés, ce qui permet d’intégrer plus facilement des changements à un projet, de façon continue. L’objectif de Jenkins est en effet d’accélérer le développement de logiciels par le biais de l’automatisation. Jenkins permet l’intégration de toutes les étapes du cycle de développement.

Intégration Continue

L’intégration continue est une pratique de développement permettant aux développeurs d’apporter des changements à un code source dans un dossier partagé plusieurs fois par jour ou plus fréquemment.  L’intégration continue est pratique, car elle permet aux développeurs de ne pas avoir besoin d’attendre que le logiciel soit développé dans son intégralité pour procéder aux tests. 

Cette méthode permet aussi de localiser les bugs avec précision, sans avoir à écumer le code source dans son intégralité. 

Déploiement continue

L'étape finale d'un pipeline CI/CD mature est le déploiement continu. En complément du processus de distribution continue, qui automatise la publication d'une version prête pour la production dans un référentiel de code, le déploiement continu automatise le lancement d'une application dans un environnement de production. En l'absence de passerelle manuelle entre la production et l'étape précédente du pipeline, le déploiement continu dépend surtout de la conception de l'automatisation des processus de test.  

Installation Jenkins

Jenkins est multiplateforme avec une document très riche. 

Reference installation 

Sous Windows:

https://www.jenkins.io/doc/book/installing/windows/

Sous linux :

https://www.jenkins.io/doc/book/installing/linux/

Apres installation lancer jenkins avec la commande : java -jar jenkins.war --enable-future-java --httpPort=9090


Accueil Jenkins

Configuration et création de projet

Une fois jenkins installer et démarrer, nous avons l’interface d’utilisateur dont nous pouvons faire les différentes configuration.

Pour créer un nouveau projet de test on se rend dans Nouveau Item. Administration jenkins vous permet de faire les différentes configurations (System, Dépendance(Tools), plugins, etc.).

Pour installer des plugins pour les rapports ou autres on se rend dans plugins puis installer les différentes plugins dont nous allons avoir besoin. Dans notre cas on a besoin du plugin selenium, selenium Rapport HTML et allure.

Pour installer les dépendances on se rend dans Tools. Dans notre cas on a besoin de JDK et Maven pour la génération du rapport avec allure.

Pour créer un projet de test avec jenkins on se rend dans Nouveau Item puis on renseigne le nom du projet, on sélectionne Construire un projet free-style puis on fait Ok.

Après création du projet nous avons l’interface du schéma 2. Puis on se rend dans configuration puis on renseigne les différentes informations: Après la description du projet on click sur avance puis on coche la case: Utiliser un répertoire de travail spécifique ensuite on donne le chemin de notre répertoire si nous travaillons sur un projet local bien sûr, mais si on doit tester un projet qui sur un serveur, on saute cette étape et on part directement au niveau de la gestion du code source puis on sélectionne git.

Dans Build step  on sélectionne exécuter une commande batch Windows:

call ./venv/Scripts/activate.bat

pytest -v -s --alluredir="C:\chemin\reports3" main.py

Ces commande nous permet de lancer notre test directement depuis jenkins. Dans actions a la suite du build, on ajoute le chemin de notre bin qui se trouve dans allure. Ex: C:\...\....\allure-2.20.0\bin.

Après configuration on lance notre test en cliquant sur lancer un build.


Allure Report

Allure Framework est un outil de rapport de test léger et flexible qui non seulement montre une représentation très concise de ce qui a été testé dans un formulaire de rapport Web soigné, mais permet à tous ceux qui participent au processus de développement d'extraire un maximum d'informations( pourcentage de réussite, d’ échec, le temps d’ éxécution, etc.)  utiles de l'exécution quotidienne d’essais. Allure selenium nous permet également  de faire des capture d’écran pour chaque test effectuer.

Apres avoir configurer allure  dans  jenkins on lance la commande:

allure serve C:\...\.....\PycharmProjects\seleniumPython\rapportTest.


Allure Framework nous permet d’avoir une vision global des tests sous différentes formes, de connaitre le temps d’ éxécution pour chaque méthode, le pourcentage de réussite, d’ échec, d’abandons etc.

Principe CI/CD

Les outils de CD/CI permettent aux équipes d'automatiser le développement, le déploiement et le test. Certains outils gèrent spécifiquement la partie intégration (CI), d'autres le développement et le déploiement (CD), et d'autres encore les tests continus ou les fonctions connexes.

Le serveur d'automatisation Jenkins compte parmi les outils Open Source de CI/CD les plus connus. Cette solution permet de gérer toutes les situations, du simple serveur de CI à un hub de CD complet.