[Docker] Selenium Firefox

àify- re r_Cette procédure va porter sur l’installation de Selenium Firefox.

C’est quoi ?

Selenium est un module qui permet l’automatisation d’un navigateur permettant de tester vos applications Web et de faire vos tests unitaires.

Cette solution est basée sur Docker, ce qui va permettre de garder l’environnement de travail dans un conteneur.

On va ainsi pouvoir automatiser les requêtes vers vos applis ainsi que le clic sur certains boutons. Votre appli ressortira donc testée et cela vous permettra de debugger plus rapidement.

L’installation :

Depuis un moment, je préfère me baser sur mon Docker Registry, ce qui permet d’économiser de la bande passante pour les futurs déploiements de conteneurs. Rendez-vous sur cet article pour l’installation du Docker Registry.

On récupère une fois l’image sur le hub puis on la pousse vers notre Registry:

docker pull selenium/standalone-firefox
docker tag selenium/standalone-firefox localhost:5000/selenium/standalone-firefox
docker push localhost:5000/selenium/standalone-firefox
docker image remove selenium/standalone-firefox
docker image remove localhost:5000/selenium/standalone-firefox

Si vous n’avez pas de Docker Registry, faites comme suit :

docker pull selenium/standalone-firefox

Le lancement :

Si votre image est dans votre Registry :

docker run -d -p 4444:4444 -v /dev/shm:/dev/shm localhost:5000/selenium/standalone-firefox

Dans le cas contraire :

docker run -d -p 4444:4444 -v /dev/shm:/dev/shm  selenium/standalone-firefox

On vérifie que l’application écoute bien sur le port choisi :

lsof -i :4444

Pour l’installation manuelle si vous avez Firefox (sans Docker) :

On installe ensuite node.js :

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
apt-get install -y nodejs

On ajoute le chemin de node à la variable NODE_PATH dans le .bashrc (ou .zshrc) :

export NODE_PATH="/usr/lib/node_modules/npm"

Puis :

source /root/.bashrc

ou :

source /root/.zshrc

puis on installe selenium-webdriver :

npm install selenium-webdriver

On vérifie qu’il est bien installé avec :

npm list -g | grep selenium

Si vous n’avez aucun résultat, c’est que l’emplacement de votre dossier node n’est pas le bon.

On rédige le script qui va servir pour nos tests :

// launch-driver.js
const webdriver = require('selenium-webdriver'); // firefox instantiation const builder = new webdriver.Builder(); builder.forBrowser('firefox'); const driver = builder.build(); // visiter url driver.get('http://votresiteweb.local'); // afficher le titre driver.getTitle().then(title => console.log(title)); // fermeture navigateur driver.quit();

Et enfin, on le lance :

node launch-driver.js