N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.
Une fois l’ensemble des éléments nécessaires à nos tests fonctionnels ( Installation des éléments nécessaires aux tests fonctionnels ) en place, passons à la partie suivante.
L’installation et la configuration de jenkins pour l’exécution des tests fonctionnels.
Installation de jenkins
Pour installer jenkins saisissez les commandes suivantes
wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get install jenkins |
Il faut ensuite le lancer jenkins via la commande suivante
sudo service jenkins start |
Jenkins est ensuite accessible sur le port 8080 de votre serveur via l’url : http://ip-de-votre-serveur:8080
Configuration et sécurisation de Jenkins
Pour commencer mettez à jour les plugins de jenkins via les liens :
– Administrer Jenkins
– Gestion des plugins
– Dans l’onglet mises à jour sélectionner tout les plugins à mettre à jour
– Cliquer sur « Télécharger maintenant et installer après redémarrage »
Sécuriser Jenkins :
Par défaut jenkins est accessible en accès complet et sans authentification, nous allons donc mettre en place des restrictions.
– Cliquer sur Administrer jenkins
– Configurer la sécurité globale
– Cocher « Activer la sécurité »
Dans le contrôle d’accès cocher » Base de données des utilisateurs de Jenkins »
puis Autoriser les utilisateurs à s’inscrire ( sans cela impossible de créer un compte )
Pour les autorisations laisser pour l’instant à « Tout le monde a accès à toutes les fonctionnalités »
Sauvegarder la configuration.
Vous pouvez ensuite cliquer sur le nouveau lien « Créer un compte » en haut à droite.
Créer votre compte puis retourner dans la gestion de la sécurité globale
Dans le cas ou vous souhaitez un seul utilisateur, décocher la case « Autoriser les utilisateurs à s’inscrire »
Puis dans les autorisation cocher « Les utilisateurs connectés peuvent tout faire »
A présent seul votre utilisateur pourra gérer jenkins
Note :
Cette sécurisation n’est à mon sens pas suffisante, car les utilisateurs non identifiés pourront toujours visualiser des données en se connectant sur votre serveur.
C’est pourquoi nous verrons dans un prochain article, comment mettre en place une solution de reverse proxy pour filter l’accès à jenkins.
Configuration d’un projet de test
Pour vérifier que tout fonctionne bien, nous allons créer un nouveau projet que nous appellerons « test sample »
Cliquer sur « Nouveau item » dans le menu de gauche.
Saisissez le nom et la description de votre projet.
Dans les options avancées définissez un emplacement spécifique pour votre projet ( dans lequel votre utilisateur à les droits )
Par exemple
/home/user/jenkins/sample_test/
Rendez-vous dans ce dossier en ssh et clonez le projet github : https://github.com/nenes25/phpunit_selenium_sample.git
via la commande
git clone https://github.com/nenes25/phpunit_selenium_sample.git |
Dans la configuration du projet ,
ajoutez une étape au build « Exécuter un script shell »
Avec la commande suivante :
cd phpunit_selenium_sample phpunit --configuration phpunit.xml |
Ajouter une étape action après le build « Publier les résultats des test Junit »
Avec le fichier des rapport de test « phpunit_selenium_sample/results.xml »
Sauvegarder votre projet et lancer une build
Celle-ci devrait être en échec ( ce qui est normal car il y’a volontairement une erreur dans les tests )
Vous pouvez consulter ses détails :
Cliquer sur « Console Output » pour visualiser le résultat de votre build, et si le résultat est similaire au code ci-dessous , c’est que tout est bien en place 🙂
Démarré par l utilisateur anonymous Building in workspace /home/einternet/jenkins/sample_test [sample_test] $ /bin/sh -xe /tmp/hudson4434273508195668633.sh + cd phpunit_selenium_sample + phpunit --configuration phpunit.xml PHPUnit 4.5.0 by Sebastian Bergmann and contributors. Configuration read from /home/einternet/jenkins/sample_test/phpunit_selenium_sample/phpunit.xml ..F Time: 19.92 seconds, Memory: 5.25Mb There was 1 failure: 1) SeleniumTest::testTitleKo Failed asserting that two strings are equal. --- Expected +++ Actual @@ @@ -'Wrong Title' +'Google' /home/user/jenkins/sample_test/phpunit_selenium_sample/SeleniumTest.php:28 FAILURES! Tests: 3, Assertions: 7, Failures: 1. Build step 'Exécuter un script shell' marked build as failure Enregistrement des résultats des tests Finished: FAILURE |
A vous de jouez pour mettre ce fonctionnement en place sur votre projet 🙂