01/06/2010

Yslow beacon / ShowSlow

Author: Romain Dehaudt, Head of Revenue & Operations

Yslow recèle une petite pépite qui est « Yslow beacon » . Cela permet d’envoyer les résultats analysés à une url de callback. Ainsi il est possible de centraliser les résultats et d’avoir un historique voir même de comparer des résultats.

Pour cela il faut modifier 2 variables de configuration de Firefox via about:config.
extensions.firebug.yslow.beaconUrl : Url de traitement ex (http://yslow.groupereflect.net/call.php)
extensions.firebug.yslow.optinBeacon : active la fonctionnalité via un booléen.

Il y a aussi un autre paramètre qui permet de configurer le nombre d’information envoyé.
extensions.firebug.yslow.beaconInfo
: basic, grade, stats, comps, all

En général je mets « all » comme ça je récupère tout.

Il existe une application ShowSlow (0.3) qui permet d’agréger c’est résultats. Il est sous licence New BSD donc on est assez libre de l’utiliser et le faire évoluer.

Une nouvelle version est récemment sortir qui corrige un bug fort gênant. ShowSlow ne fonctionnait pas avec Yslow2 car l’envoi des données ne se fait plus de la même manière. Maintenant dans le cas d’une configuration différente de « basic » les données sont envoyées dans le flux POST au format JSON.
En fait si on recherche les données dans $_POST on ne les trouve pas il faut utiliser php://input.

Voici comment en 2 lignes on récupère dans un tableau les données postés par Yslow.
$post_data = file_get_contents('php://input');
$post = json_decode($post_data, true);

ShowSlow dispose d’un site de démo (http://www.showslow.com/) avec de nombreuses urls vérifiées, ca donne une idée de qu’il est possible de faire avec.

Il ne reste plus qu’à automatiser Yslow afin d’avoir un jeu de résultat important.  Eric Daspet propose une méthode en utilisant mozrepl, xvfb personnellement j’ai utilisé Xinc et Sélénium.

gallery image