Menu

Stacks Image 37777
Nous aurons besoin d'un serveur recevant les étapes des scénarios Selenium. Nous utiliserons un serveur Debian 7 64 bits et le moteur Selenium Server en java. Pour exécuter les requêtes sur les sites à superviser, nous utiliserons un serveur virtuel X xvfb et un navigateur de type Firefox (iceweasel).

Pour aider à vous retrouver dans mes articles, voici les étapes à ne pas oublier pour la réussite de votre projet :
1 - Installation du serveur Selenium
2 - Installation du plugin Centreon waa
3 - Création d'un scénario avec Selenium IDE
4 - Configuration de Centreon pour superviser un site Web

1 Configuration du serveur Debian

Nous utiliserons un template debian 7 en 64 bits (voir Installation d’une VM sous Fusion) équipé d'un serveur SSH, de la version open source de java, du serveur virtuel X xvfb et du navigateur iceweasel.
apt-get install ssh openjdk-6-jre xvfb iceweasel -y
Ensuite nous devrons télécharger le moteur du serveur Selenium (archive bar) dans le dossier /opt/selenium créé préalablement. Pour récupérer l'archive, visitez le site de Selenium. Pour faciliter la maintenance, créez un lien symbolique.
mkdir /opt/selenium
cd /opt/selenium
wget http://selenium-release.storage.googleapis.com/2.45/selenium-server-standalone-2.45.0.jar
ln -s selenium-server-standalone-2.45.0.jar selenium-server-standalone.jar
On peut vérifier le bon fonctionnement du serveur selenium
cd /opt/selenium
java -jar selenium-server-standalone.jar
Vous devriez avoir ces messages suivants
11:53:25.071 INFO - Launching a standalone server
11:53:25.182 INFO - Java: Sun Microsystems Inc. 23.25-b01
11:53:25.183 INFO - OS: Linux 3.2.0-4-amd64 amd64
11:53:25.218 INFO - v2.45.0, with Core v2.45.0. Built from revision 5017cb8
11:53:25.353 INFO - Default driver org.openqa.selenium.ie.InternetExplorerDriver registration is skipped: registration capabilities Capabilities [{platform=WINDOWS, ensureCleanSession=tru#!/bin/sh
e, browserName=internet explorer, version=}] does not match with current platform: LINUX
11:53:25.447 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
11:53:25.448 INFO - Version Jetty/5.1.x
11:53:25.450 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
# If run XVFB at startup default: NO
11:53:25.451 INFO - Started HttpContext[/selenium-server,/selenium-server]
# Configuration for /etc/init.d/selenium
11:53:25.454 INFO - Started HttpContext[/,/]
11:53:25.502 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@2791535f
11:53:25.502 INFO - Started HttpContext[/wd,/wd]
11:53:25.509 INFO - Started SocketListener on 0.0.0.0:4444
11:53:25.509 INFO - Started org.openqa.jetty.jetty.Server@6fae53e9
Quittez l'application (CTRL+C). Récupérez l'archive du plugin Centreon waa et positionnez-la, par exemple, dans /usr/local/src. Nous avons besoin des fichiers de scripts pour les services.
cd /usr/local/src
wget https://s3-eu-west-1.amazonaws.com/centreon-download/public/centreon-waa/check_centreon_waa-1.0.3.tar.gz
tar xzf check_centreon_waa-1.0.3.tar.gz
cp check_centreon_waa-1.0.3/extras/debian/init-xvfb /etc/init.d/xvfb
chmod a+x /etc/init.d/xvfb
mkdir -p /usr/local/labkey
cp check_centreon_waa-1.0.3/extras/debian/default-xvfb /etc/default/xvfb
cp check_centreon_waa-1.0.3/extras/debian/init-selenium /etc/init.d/selenium
chmod a+x /etc/init.d/selenium
mkdir -p /var/log/selenium
cp check_centreon_waa-1.0.3/extras/debian/default-selenium /etc/default/selenium

1.3 Configuration des services

Pour utiliser le serveur Selenium, nous aurons besoin d'un user selenium
useradd -r -s /bin/false -d /home/selenium -m selenium
Avant de configurer les services, il faut modifier le fichier /etc/init.d/xvfb. Modifiez la ligne suivante :
# Provides:          selenium daemon
par celle-ci
# Provides:          selenium_daemon
Activez les services
update-rc.d xvfb defaults
update-rc.d selenium defaults
Maintenant, il faut configurer les fichiers se trouvant dans /etc/default/. Commençons par le fichier /etc/default/xvfb
RUN_AT_STARTUP="YES"
FBDIR="/usr/local/labkey"
Terminons par le fichier /etc/default/selenium
RUN_AT_STARTUP="YES"
SELENIUM_LIB="/opt/selenium/selenium-server-standalone.jar"
Il ne reste plus qu'à lancer les services xvfb et selenium
service xvfb start
service selenium start

1.4 Installation de Firefox

Si vous voulez utilisez le navigateur Firefox, il faut ajouter un nouveau dépôt. Editez le fichier /etc/apt/sources.list et rajoutez la ligne suivante.
deb http://packages.linuxmint.com debian import
Lancez un apt-get update et récupérer le numéro de la clé GPG suite à l’erreur de téléchargement.
Lecture des listes de paquets... Fait
W: Erreur de GPG : http://packages.linuxmint.com debian Release : Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY 3EE67F3D0FF405B2
Récupérez la clé et remplacez la chaine XXXXX avec cette clé.
gpg --keyserver pgpkeys.mit.edu --recv-key XXXXX
gpg -a --export XXXXX | apt-key add -
Refaire une mise à jour
apt-get update
Installer Firefox
apt-get install firefox firefox-l10n-fr -y
Créez le profil selenium avec firefox.
firefox --display=:99 -CreateProfile "firefox-profile /home/selenium/firefox-profile"
un fichier prefs.js est créé, vous pouvez insérer vos préférences. Pour faire prendre en compte ce profil, vous devrez modifier le fichier /etc/default/selenium
SELENIUM_FFPROFILE="/home/selenium/firefox-profile"
Redémarrez les services pour la prise en compte de ce profil.
service xvfb start
service selenium start
Stacks Image 1973
Remarques
Les bonnes pratiques de Selenium préconisent la désactivation de la mise à jour automatique de Firefox pour éviter la formation de processus zombie lors de l'exécution des tests. Dans notre cas sous Debian, ce problème est réglé puisque les mises à jour sont réalisées par le processus apt-get.

1.5 Vérification du serveur Selenium

Il est possible de tester le fonctionnement du serveur Selenium en saisissant l'url suivante
http://[ip serveur selenium]:4444/wd/hub/static/resource/hub.html
Vous devriez visualiser l'écran suivant.
Stacks Image 4550
fonctionnement du serveur Selenium
comments powered by Disqus