Au revoir Selenium, SimpleTest revient et JQUnit arrive

vendredi 23 mai 2008 :: perrick :: PHP :: un commentaire :: aucun trackback

Il y a quelques temps nous étions passés à Selenium pour lancer nos tests de recette automatique sur notre application -- OpenTime. Et il y a un mois environ, nous avons changé le fusil d'épaule : en plus de faire les tests unitaires avec SimpleTest, nous l'utilisons aussi pour faire les tests de recette. Le pourquoi tient en un mot : simplicité.

Le serveur Selenium (en Java) n'était tout simplement pas stable -- en plus, c'est une plaie à maintenir quand on est spécialiste de PHP et pas de Java. Ensuite SimpleTest a marqué pas mal de point avec des assertions sur le code HTML via des sélecteurs CSS. Enfin le processus était trop dur à automatiser. Grosso modo, SVN lançait un script en post-commit, ce script PHP installait une version de l'application puis SimpleTest prenait la main pour lancer les tests Selenium via le serveur, ce serveur lançait à son tour un Firefox ou un Opera avant de recevoir les résultats, SimpleTest recevait le tout et enfin un email était envoyé... Trop fragile. Surtout quand on pense que la ligne de commande doit être capable d'ouvrir un Serveur X pour le navigateur au milieu de tout ça. Avec un reboot automatique -- chaque soir -- du serveur Selenium, ça devenait définitivement trop complexe.

Nous sommes donc revenus à une architecture plus simple pour l'intégation continue avec SimpleTest pour les tests unitaires et de recette : on n'utilise plus de navigateur mais au moins ça tourne tous les jours et on peut l'oublier un peu... Surtout que tout le monde chez No Parking utilise OpenTime au quotidien : le besion est moins pressant.

Et puis donc, le petit nouveau du jour : jqunit. Il s'agit d'un testeur unitaire spécialisé pour le framework jQuery dont nous dépendons désormais pour pas mal d'interactions côté client. Ce composant n'est pas encore intégré dans notre process d'intégation continue -- chaque chose en son temps -- mais déjà avoir une première barre verte sur ce code là quand on développe, c'est pas mal... Affaire à suivre donc.

Vos commentaires et/ou trackbacks

Le jeudi 5 juin 2008 à 15:00, commentaire par drido :: #

personnellement, je trouve que selenium est très pratique et simple à automatiser. Peut etre avez vous choisi une voie trop complexe car selenium + selnium ide + maven + selenium rc donne un environnement simple et puissant pour de l'intégration continue. La méthode, construire les tests avec selnium ide, puis les convertir en Java automatiquement. Installer maven, puis créer un projet java-maven avec le plugin selenium-rc. Lancer les tests avec une commande maven, en les intégrant aux tests JUnit pour lesquels on peut avoir un joli reporting via la plugin surefire. Et si on encapsule tout ça dans son serveur d'intégration continue, ça nous donne une appli de tests fonctionnels simple à maintenir et puissante avec plein d'options de paramétrage possible...

Ajouter un commentaire

Les commentaires pour ce billet sont fermés.