Selenium : Automatisation de tests fonctionnels

Publié le 24/06/2007, par Romain Linsolas dans Agile | 1 Commentaire

Article paru dans la newsletter #15 – Septembre 2006

Selenium est un outil open-source permettant d’enregistrer et de rejouer des scenarii dans une application web (et uniquement pour les clients web).


Sélénium se télécharge sous forme d’un plug-in Firefox. On peut alors, depuis firefox, lancer l’enregistreur de scripts de tests (Selenium IDE) :

nl15_selenium.png

Il suffit ensuite d’utiliser l’application dans le browser et Selenium IDE enregistre les actions effectuées.

Une fois ces tests créés, Selenium permet de rejouer les tests en accéléré, ou en pas à pas, et de modifier les scénarios. Enfin, on peut regrouper les tests dans une « TestSuite », et lancer une TestSuite d’un seul bloc.

On peut ajouter tout au long du scenario des vérifications, (comme des « assert »), directement depuis l’application en utilisant les menus contextuels rajoutés par le plugin Selenium.
On peut remanier les différentes étapes du script depuis Selenium IDE (dupliquer des commandes, les déplacer, modifier les valeurs entrées dans l’application ou les valeurs testées, etc.).

Enfin, le script de test est enregistré dans un fichier. On pourra alors rejouer ce fichier ou bien créer une TestSuite qui inclue plusieurs fichiers de tests.
Selenium supporte plusieurs formats de fichiers, le plus basique étant un format FIT, qui décrit en HTML des étapes de test du type :

  1. Charger la page http:// bla bla.
  2. Saisir la valeur « toto » dans le champ « login ».
  3. Cliquer sur le bouton valider.
  4. Vérifier la présence du lien « quitter »

On peut donc lancer ensuite les tests avec un outil FIT, pourquoi pas dans Cruise Control. En utilisant les autres formats, on peut écrire des tests en java, .NET, Perl, python, ruby, ce qui donne plus de liberté dans les scénarios que des tests FIT (boucles, conditions, etc.). Par contre, il faut écrire le code des tests et donc avoir des connaissances de programmation, tandis que l’enregistrement d’un test avec Selenium IDE est à la portée d’un utilisateur lambda.

Enfin, Selenium permet aussi de lancer les tests dans divers bowsers ; on peut ainsi assurer la compatibilité de l’application avec firefox, IE, Mozilla ou Safari.

Point négatif : Selenium IDE ne gère pas simplement les popups javascripts : il ignore totalement les champs saisis à l’aide de boites de dialogue. Heureusement on s’en sort en rajoutant manuellement les commandes de saisie dans les scripts. (d’après certains blogs, il semble que Selenium puisse interagir avec les popups, mais je ne suis pas encore arrivé à ce niveau). Certains sites décrivent comment utiliser Selenium pour tester des applications AJAX (http://www-128.ibm.com/developerworks/library/wa-selenium-ajax)

J’en profite pour souligner le commentaire d’IBM qui tente tant bien que mal de faire sa pub :
« Note that IBM’s Rational Functional Tester tools perform these tests as well, but at a much more complex and wide-reaching level, and come with IBM support. Selenium, on the other hand, prioritizes one task — a Web application — and can perform with more agility.»

Selenium est créé principalement par Thoughtworks (encore eux !!), plus précisément « Thougthworks and friends ».
Infos, documentation et téléchargement sur cette page.

Guillaume Tardif

One Response to “Selenium : Automatisation de tests fonctionnels”

  1. Yassine says:

    J’aimerai avoir de la doc sur ce plugin

Leave a Reply