Jenkins : exécution des tests ATS

27 mai 2018

« Il existe diverses manières de lancer des tests d’un projet ATS : rien qu’avec Jenkins plusieurs solutions sont possibles.

Nous allons vous présenter ici une solution manuelle très simple ne demandant que quelques minutes d’installation et configuration. »

Remarque : Vous avez par ailleurs la possibilité de gérer cette création directement depuis Agilitest.

Installation manuelle de Jenkins

  • Téléchargez un Jenkins pour Windows ici : https://jenkins.io/download/
  • Il est recommandé de télécharger le fichier « .war » pour que Jenkins ne soit pas installé comme un service Windows.
Download jenkins
  • L’installer de manière standard
  • Le lancer en ligne de commande avec java
  • Attention: le mot de passe initial lors du lancement manuel est modifié et imprimé dans les logs de lancement.
    • Exemple de ligne de commande pour lancer Jenkins : java -jar jenkins.war –enable-future-java
  • Se connecter sur « http://localhost:8080 » et suivre les instructions pour le mot de passe
  • Vous pouvez ensuite opter pour « installer les plugins suggérés » ou installer certains plugins que vous désirez.
  • Rentrez ensuite les informations du compte administrateur et cliquez sur « Sauver et continuer »
  • Configurez l’instance (adresse et port) puis cliquez sur terminer
  • Votre instance Jenkins est prête à être configurée

Configurer un JDK (minimum 10)

A l’aide d’un navigateur, connectez vous à votre instance Jenkins.

(dans certains cas, si vous avez un écran blanc, redémarrez votre instance en ligne de commande).

  • Cliquez sur « Administrer Jenkins » puis choisir « Global Tool Configuration » : dans la partie « JDK » choisir le JDK que vous voulez utiliser (minimum 10), soit de manière automatique proposé par Jenkins, soit en définissant un répertoire local contenant un JDK 10.

Configurer MAVEN

Dans le cas d’une installation nécessitant Maven, il faudra paramétrer votre environnement pour que celui-ci puisse fonctionner.

Cliquez sur « Administrer Jenkins » puis choisir « Global Tool Configuration » : dans la partie « MAVEN » choisir le MAVEN que vous voulez utiliser, soit de manière automatique proposé par Jenkins, soit en définissant un répertoire local contenant un MAVEN.

MAVEN Configuration

Installation des plugins :

Depuis « Manage Jenkins » cliquez sur « Manage Plugins ». Les plugins nécessaires pour ATS sont :

  • Environment Injector Plugin
  • GitHub Integration Plugin
  • Maven Invoker plugin
  • TestNG Results Plugin
  • Unleash Maven Plugin
  • Pipeline: Groovy
  • Mailer
  • Groovy Postbuild

(Remarque : Vous pouvez rajouter tous les plugins qui vous intéressent)

  • Sur la partie « Available » filtrez avec les noms des plugins ci-dessus pour les sélectionner :

(Ces plugins seront normalement déjà installés sur la plupart des infra Jenkins existantes à l’exception éventuelle de TestNG)

L’installation des ces plugins récupérera toutes les dépendances nécessaires.

Définir le répertoire ATS

Prérequis : Télécharger les composants ATS (Plus d’informations sur le projet GitHub Action Test Script rubrique « installing »)

Depuis le menu « Manage Jenkins » cliquez sur « Configure System » puis dans la partie « Global Properties » ajoutez une variable d’environnement :

Name = ATS_HOME
Value = [chemin vers votre répertoire local ATS]

Paramétrer ATS_HOME

Paramétrer un travail JENKINS dans AGILITEST

Les principales actions peuvent être effectuées directement dans Agilitest, dans la fenêtre « outils ». Il est recommandé d’utiliser Agilitest car cela vous permettra notamment de paramétrer les rapports d’exécution, la gestion des courriels ou encore les fréquences de lancement de vos travaux.

Pour y arriver, il vous faudra simplement définir les différentes valeurs nécessaires à Agilitest pour pouvoir s’interfacer avec votre environnement Jenkins.

Configuration JENKINS dans Agilitest

Notamment en cochant la case « serveur distant » et renseigner votre identifiant et mot de passe. Puis ensuite renseigner l’URL de votre serveur ainsi que le port définit dans les précédentes étapes.

Vous aurez simplement à vous connecter à ce serveur pour pouvoir lancer, ajouter, supprimer et éditer vos travaux Jenkins via l’interface dédiée.

Edition des travaux et rapports JENKINS dans Agilitest

Sur l’interface de création d’un travail Jenkins. Il est important de noter les paramètres suivants :

  • « Job Maven » permet de définir si le travail en question utilisera Maven ou s’il se lancera en ligne de commande JAVA
  • « Utiliser un dépôt GIT » les sources du projet utilisées seront celles stockées sur GITHUB (cette case à cocher n’est valable que si le projet contient un fichier .git)
  • « Lancement » permet de définir les intervalles et fréquences de lancement de vos travaux.
  • « Notification par mail » enverra automatiquement un mail à chaque exécution de vos travaux. Il est important de renseigner les données de votre serveur SMTP dans l’interface « Configure system » de JENKINS pour pouvoir utiliser cette fonctionnalité. 
  • « Génération des rapports » lancera automatiquement la génération de rapports au format HTML et PDF pour votre campagne et ses scripts associés. Ces rapports seront stockés dans le dossier de sortie de votre projet.

Paramétrer un travail depuis l’interface JENKINS

  • Retour sur la page d’accueil Jenkins
  • Cliquez sur « New Item »
  • Nommez votre nouveau job
  • Cliquez sur « Maven Project » puis cliquez sur OK
  • Dans la partie « Build Environment » ajouter éventuellement une variable (par ex : browser.name=chrome) après avoir coché : “inject environment variables to the build process
  • Pour être utilisé par ATS, ce nom de variable doit être le même qu’une variable utilisée dans le projet ATS. (par exemple, dans l’éditeur Agilitest on trouvera ces variables dans la partie « Execution parameters » d’un projet)
  • Sur jenkins, dans la partie « Build », saisir la valeur « test » dans le champ « Goals and options » :
  • Votre job est configuré et est prêt à être lancé en cliquant sur « Build Now » :
  • Une fois le job terminé, vous aurez accès aux rapports habituels résultant de l’exécution de tests (détails par tests, régressions, passed, failed etc…)

Si vous souhaitez partager ou échanger sur un autre exemple de configuration, vous pouvez le faire via le projet github suivant : https://github.com/pierrehub2b/actiontestscript