Installation d'un serveur de tests fonctionnels automatisés avec Selenium et Jenkins sur Ubuntu 12.04

Installation d'un serveur de tests fonctionnels automatisés avec Selenium et Jenkins sur Ubuntu 12.04

Publié le 13/01/2015

1.1 - Installation de java et ssh

sudo apt-get install openjdk-7-jre-headless ssh

2 - Installation de Xvfb et Firefox

sudo apt-get update && sudo apt-get install -y xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic xvfb x11-apps imagemagick firefox

Création du script de démarrage pour Xvfb :

sudo nano /etc/init.d/xvfb


#!/bin/bash
if [ -z "$1" ]; then
  echo "`basename $0` {start|stop}"
  exit
fi

case "$1" in
start)
  /usr/bin/Xvfb :99 -ac -screen 0 1024x768x8 &
;;
stop)
  killall Xvfb
;;
esac

 

Rendre le fichier exécutable :

sudo chmod +x /etc/init.d/xvfb Ajouter le lancement au démarrage : sudo update-rc.d xvfb defaults

3 - Installation de Selenium HQ

 


sudo mkdir /var/lib/selenium
sudo wget -O /var/lib/selenium/selenium-server.jar http://selenium-release.storage.googleapis.com/2.43/selenium-server-standalone-2.43.1.jar
sudo chmod +x /var/lib/selenium/selenium-server.jar

 

Test du Selenium server :

- Démarrage de xvfb :

sudo /etc/init.d/xvfb start

- Affectation de la variable d'environnement d'affichage pour Firefox :

export DISPLAY=:99

- Exécution d'une suite de test

java -jar /var/lib/selenium/selenium-server.jar -htmlSuite *firefox http://killygrind-inte.fresh.local "/home/jenkins/selenium/test/suite.html" "/home/jenkins/selenium/output/firefox-results.html"

4 - Installation de Jenkins

Installation :

 


sudo -i
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | apt-key add -
echo 'deb http://pkg.jenkins-ci.org/debian binary/' >> /etc/apt/sources.list
apt-get update && apt-get install jenkins

 

Création de la structure des dossiers pour l'utilisateur jenkins :

 


sudo mkdir /home/jenkins /home/jenkins/selenium /home/jenkins/selenium/test /home/jenkins/selenium/output
sudo chown -R jenkins /home/jenkins
sudo chmod -R 755 /home/jenkins/selenium/output/

 

Création d'un mot de passe pour l'utilisateur jenkins :

 


sudo -i
passwd jenkins

 

5 - Paramétrage de Jenkins

Se connecter à l'interface de Jenkins via le navigateur :

http://jenkins-srv.domain.local:8080

Allez dans Administrer Jenkins > configurer la sécurité globale :

Cocher "Activer la sécurité".

Dans la section "Royaume pour la sécurité (Realm)", cocher "Base de données des utilisateurs de Jenkins" et "Autoriser les utilisateurs à s'inscrire", puis cliquer sur "Enregistrer".

Cliquer ensuite sur "Créer un compte" et se connecter.

6 - Installation des plugins

Allez dans Administrer Jenkins > gestion des plugins, puis cliquer sur l'onglet "Disponibles".

Ajouter les plugins suivants :

Hudson Seleniumhq plugin

Redémarrer Jenkins via l'interface graphique.

Allez dans Administrer Jenkins > configuration

Dans la section "Propriétés globales", cochez la case "Variables d'environnement" et ajouter la paire clé/valeur suivante :

 


clé : DISPLAY
valeur : :99

 

Dans la section "Selenium Remote Control", configurer comme suit :

htmlSuite Runner : /var/lib/selenium/selenium-server.jar

7 - Création et configuration du projet

Dans le menu de gauche, cliquer sur "Nouveau Item", nommer le projet et sélectionner "Construire un projet freestyle".

Sélectionner le projet et cliquer sur configurer.

Dans la section Build > SeleniumHQ htmlSuite Run

 


browser : *firefox
startURL : http://test.domain.local
suiteFile : /home/jenkins/selenium/test/suite.html
resultFile: /home/jenkins/selenium/output/firefox-results.html

 

Cliquer sur "Sauver".

8 - Création d'une suite de test

On va maintenant créer une suite de test avec firefox que l'on va envoyer à notre serveur Jenkins afin qu'il puisse l'effectuer. Pour l'exemple ici l'opération est faire sur Mac OS X, c'est à peu de chose prêt pareil sur Linux et Windows. Télécharger le plugins Selenium IDE pour Firefox et installer le :

http://www.seleniumhq.org/projects/ide/

Un fois selenium installé, lancer le en allant dans Menu > Outils > Selenium IDE. Dans la fenêtre du plugin Selenium IDE, aller dans le volet de gauche et sélectionner "Untitled" puis renommer le en faisait un clique-droit > Propriétés. Ici on va le nommer "navigation" pour le test que l'on va effectuer.

Pour commencer l'enregistrement de notre test on va cliquer sur le bouton rouge en haut à droite. On va ici simuler une simple visite en cliquant sur les liens de la navigation principale du site de test. Cliquer de nouveau sur le bouton rouge pour arrêter l'enregistrement. On enregistre ensuite le test sous forme de suite en allant dans Menu > Fichier > Enregistrer une suite de tests. Enregistrer la suite de test sur le bureau en le nommant "suite.html".

Sur le bureau on va avoir deux fichiers créés : suite.html et navigation.html

On va envoyer ces fichier au serveur Jenkins :

scp /Users/"user"/Desktop/suite.html jenkins@jenkins-srv.domain.local:/home/jenkins/selenium/test/ scp /Users/"user"/Desktop/navigation.html jenkins@jenkins-srv.domain.local:/home/jenkins/selenium/test/

Maintenant on peut lancer un build de notre projet.