Installation & configuration complète de sitespeed.io en mode headless.
Besoin d’un outil de gestion de vos performances web disponible simplement, en quelques instants ? Testez gratuitement Dareboost.
Cette installationde de sitespeed.io a les particularités suivantes:
- Une installation complète avec un navigateur pour récupérer les données Navigation Timing.
- Une installation en mode «headless» pour ne pas avoir à installer un environnement graphique complet sur le serveur.
- Installation réalisée sur Ubuntu 12.04 LTS 64bits.
Avant d’installer sitespeed.io, il faut installer NodeJS et PhantomJS.
Installation de Sitespeed.io
Une fois nodeJS et PhantomJS installé, ne reste plus qu’à installer les dépendances système nécessaires et à cloner le dépôt de sitespeed.io.
sudo apt-get install openjdk-7-jre-headless curl
cd $HOME
git clone https://github.com/sitespeedio/sitespeed.io.git
Vérifier l’installation avec
$HOME/sitespeed.io/bin/sitespeed.io -h
Installation de Chrome en mode headless
Pour pouvoir récupérer les données Navigation Timing avec sitespeed.io, il faut avoir au moins un navigateur installé.
Chrome
Nous allons procéder à l’installation en mode «headless» de Chrome. Cela permet de se passer d’un environnement graphique complet de bureau comme Gnome ou autres. Le paquet à installer pour ce faire s’appelle xvfb
«X virtual framebuffer».
sudo apt-get install libxss1 xvfb
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb
Pour connecter sitespeed.io et Google Chrome, il faut installer Chromedriver
Chromedriver
sudo apt-get install libgconf2-4 libxi6
wget http://chromedriver.storage.googleapis.com/2.16/chromedriver_linux64.zip
unzip wget http://chromedriver.storage.googleapis.com/2.16/chromedriver_linux64.zip
Nous avons maintenant une installation complète de sitespeed.io. Regardons un peu les options de configuration possibles.
Configuration de sitespeed.io
Toute la configuration de sitepseed.io se fait en passant des options à la ligne de commande.
xvfb-run -e /dev/stdout --server-args='-screen 0 1280x800x24' $HOME/sitespeed.io/bin/sitespeed.io -u https://checkmy.ws -c chrome -z 3 -n 'www.checkmy.ws' -r $HOME/www/sitespeed.io/ -l sitespeed.io-desktop -m 512 -k true -d 0
La commande commence par l’invocation de xvfb-run
qui permet de lancer Chrome en mode «headless».
Sont passés à xvfb-run les options suivantes:
- Utilisation de la sortie console avec
-e /dev/stdout
. - Numéro d’écran à
0
et taille à1280x800
en millions de couleurs24
.
Et côté sitespeed.io, les options passées sont les suivantes:
-u http://…
pour l’adresse du site à analyser.-c chrome
pour collecter les données Navigation Timing avec Chrome.-z 3
pour répéter la connexion trois fois. Cela permet de déterminer max, min et moyenne pour chaque métrique.-n 'www.checkmy.ws'
pour nommer le rapport www.checkmy.ws.-r $HOME/www/sitespeed.io/
pour déterminer l’emplacement de stockage du rapport.-l sitespeed.io-desktop
pour appliquer les règles PC bureau ou-l sitespeed.io-mobile
pour appliquer les règles mobiles.-m 512
pour fixer la taille mémoire de la machine virtuelle Java.-k true
pour prendre une capture d’écran de la page analysée.-d 0
pour ne pas analyser d’autres pages sur le site. Normalement, sitespeed.io suit les liens présents sur la page et analyse les pages en relation.
Pour comparer plusieurs sites, il est possible d’utiliser sitespeed.io-sites
.
xvfb-run -e /dev/stdout --server-args='-screen 0 1280x800x24' $HOME/sitespeed.io/bin/sitespeed.io-sites -i $HOME/hosting-fr.txt -c chrome -z 3 -n 'Comparatif hébergeurs' -r $HOME/www/sitespeed.io/ -l sitespeed.io-desktop -m 512 -k true -d 0
La seule option qui diffère, en dehors de l’appel d’une ligne de commande distincte sitespeed.io-sites
est l’option -i $HOME/hosting-fr.txt
qui permet de lire un fichier où sont stockés les sites à analyser, un par ligne.