Tests fonctionnels avec Selenium

le 15 Juillet 2009, par Stéphane

Cet article explique aux chefs de projets fonctionnels et techniques sans aucune expérience Selenium comment automatiser des tests fonctionnels, pas à pas, avec Selenium IDE, une extension du navigateur Firefox.

Les bonnes pratiques et les conseils que nous vous donnons sont issus de notre retour d'expérience après plusieurs campagnes de tests sur des plateformes de gestion de contenu (de type Drupal 6 avec plusieurs instances synchronisées, des workflows complexes, plus de 20 types de contenus...) au cours desquelles nous avons paramètré environ 1200 tests exécutés à 15 reprises soit près de 18000 tests réalisés. Avec de tels chiffres on comprend vite l'intérêt de l'automatisation ;-)

Schéma expliquant les interactions entre Selenium IDE, Selenium RC et
Selenium Grid

Selenium

Selenium est un ensemble d'outils open source et gratuits dont l'objectif est d'automatiser les tests fonctionnels d'application web. Attention, ces outils sont destinés à des tests fonctionnels : le paramétrage est essentiellement basé sur l'interface de l'application. Pour réaliser de vrais tests unitaires, il est préférable d'utiliser des outils plus proches du code, tels que simpletest dans notre cas (Drupal 6).

Selenium IDE

Selenium IDE est l'outil qui permet de paramétrer les tests très facilement via une interface WYSIWYG dans Firefox. C'est là sa grande force : un chef de projet purement fonctionnel peut sans problème participer au paramétrage sans jamais taper une ligne de code. Les tests ainsi créés peuvent être joués individuellement ou regroupés dans des scénarios qui enchaînent les tests dans un ordre précis (nous détaillons tout ça plus loin). De cette manière on peut simuler une activité réelle sur le site ou l'application web.

Selenium RC et Selenium Grid

Pour les projets de grande envergure il est aussi possible d'exécuter ses tests sur les principaux navigateurs (IE, FF, Safari...) via Selenium Remote Control, un serveur Java. Il est même possible de coordonner plusieurs serveur Selenium RC via Selenium Grid. Des services de tests de charge basés sur Selenium Grid sont d'ailleurs en train d'émerger.

Enfin, et c'est important, Selenium s'intègre aux principaux frameworks de test tels que JUnit. L'outil permet en effet d'exporter les tests en PHP, Java, C#, Perl, Python, Ruby...

Dans les prochaines semaines :

  1. Comment préparer un plan de test fonctionnel avec Selenium
  2. Comment paramétrer les tests et scénarios fonctionnels avec Selenium (via l'IDE)
  3. Comment paramétrer les tests et scénarios fonctionnels avec Selenium (dans le code)
  4. Comment passer les tests et scénarios fonctionnels avec Sélenium

Pour en savoir plus, le site officiel :


comments powered by Disqus