Cucumber + Watir + Webdriver = Tiercé gagnant de l’EUE ?

Posted by on 17 Mai 2011 in Planet, Supervision | 1 comment

Ça fait un bon moment que je tourne (un peu en rond par moment 😉 dans la pile logicielle nécessaire à la supervision de bout en bout aka End User Experience et c’est tout récemment que j’ai identifié la chaîne logicielle à mettre en œuvre pour une telle supervision depuis nos ordonnanceurs favoris; au moins les « Nagios Like Compatible » (Icinga, Centreon Engine, Shinken…). Comme j’en ai fait quelques démonstrations au Salon Linux qui vient de se dérouler, il est temps de partager avec vous ces quelques informations afin de vous éviter l’ensemble des recherches que j’ai dû faire pour en arriver là.

Nous allons parcourir les différents éléments logiciels constituant une des piles possibles pour effectuer de la supervision dite de bout en bout. Commençons par le haut pour finir en bas. Mon installation comprend, outre un serveur Nagios like, une machine Ubuntu Desktop qui sert à exécuter les tests à proprement parler depuis un navigateur puisque Watir fonctionne en mode « full browser ». Le navigateur choisi est Firefox 3.6 mais IE et Safari sont aussi au menu.

Cucumber et Cucumber-nagios

Afin de raccorder le tout à notre ordonnanceur favori, il convient d’avoir un plugin qui est dans le cas de notre pile cucumber-nagios. C’est lui qui va transformer la sortie de cucumber pour qu’elle soit compatible Nagios; vous savez ce genre de chose

CUCUMBER OK - Critical: 0, Warning: 0, 2 okay | passed=2; failed=0; nosteps=0; total=2; time=0

Venons-en à un des deux morceaux de choix de cette pile. Je vous avais déjà parlé de cucumber mais je n’avais à l’époque fait qu’effleurer la surface de ce merveilleux logiciel. Depuis, j’ai compris (j’ai mis le temps 😉 que celui-ci n’est qu’une couche d’abstraction au pilote qui va réellement effectuer les tests (dans le cadre de cet article Watir) et qui permet de faire rédiger les scénarios par des personnes dites fonctionnelles et pas forcément versées dans la technique. On revient ici à la notion de description des tests par le comportement attendu. C’est donc une pièce majeure qui permet de brancher un scénario identique sur n’importe quelle techno de tests de bout en bout.

Watir et Webdriver

Watir est quant à lui la partie qui permet de définir quelles sont les actions à faire exécuter par le navigateur. Après des premiers tests avec Firewatir, j’ai abandonné ce dernier au profit de Webdriver qui outre le fait qu’il est pérenne, contrairement à Firewatir qui va être abandonnée; est également utilisé par la version 2 de Selenium, la suite la plus connue à ce jour de test dans un navigateur. Je préfère néanmoins personnellement la syntaxe limpide de Watir mais tout est question de goût. Le point important est que dans les deux cas, Watir ou Selenium, un seul pilote, Webdriver est utilisé.

Webdriver pourrait être défini comme le pilote au sens driver du terme de la pile et l’élément le plus bas de la couche. Il gère à ce jour la majorité des différents moteurs de navigateur du marché.

Au niveau de l’ordonnanceur

Sur notre ordonnanceur, rien à installer puisque c’est par un check_nrpe que va être appelé le script à exécuter sur la machine robot (Ubuntu Desktop dans mon cas).

Conclusion

La pile logicielle présentée ici n’en est qu’une parmi beaucoup d’autres. Elle présente néanmoins l’avantage de facilement s’installer sur le robot à coup de « gem install » puisque tout est en ruby et de partager une librairie commune (webdriver) avec le leader en logiciel libre sur le marché des tests dans le navigateur. De plus, rien n’est à installer sur son ordonnanceur; à condition de dédier une machine robot pour les test, ce qui paraît obligatoire (à moins que vous ayez un serveur Nagios like avec une interface Gnome ou KDE ;-). Une page dans le wiki devrait suivre prochainement pour illustrer par l’exemple cet article ainsi qu’un article présentant le panorama complet des solutions existantes en libre pour faire de la supervision et du test de bout en bout. À suivre donc…

One Comment

  1. 18-5-2011

    Article très intéressant et surtout très attendu. On regarde qu’au fil des années la supervision Technique n’est plus qu’un élément de RCA afin d’analyser les problèmes aux niveaux des services rendus aux utilisateurs.

    La vision des S.I a évolué avec le temps, à la Supervision de faire de même maintenant 😉