Selenium et SmartGWT

Contexte

Il s’agissait d’un projet de taille moyenne, essentiellement orienté « gestion de dossier », réalisé en Java J2EE.

Fonctionnellement, l’application ne présentait pas de difficulté particulière (si ce n’est le problème classique, dans le cadre de l’automatisation, des exports Excel ou des alertes par courriel). Elle s’interfaçait avec une autre application java qui était totalement disponible et maitrisée.

Le principal challenge résidait dans l’utilisation de smartGWT comme framework pour la couche de présentation.

Le plan de test est géré intégralement dans l’outil Testlink.

Environnement technique

Les postes de développement étaient relativement standards : Windows 7, eclipse, Oracle XE, java 1.6.

L’environnement d’intégration et l’environnement de test étaient hébergés sur des serveurs Ubuntu. Côté intégration, c’est l’outil Jenkins qui était chargé de lancer les tests sur différentes plateformes (Windows, Linux, Firefox, IE).

Bien qu’encore en béta au démarrage du projet, c’est la version 2.0 de Selenium qui a été utilisée.

Mise en place

La mise en place à demander des efforts particuliers sur deux points : smartGWT et Jenkins.

Pour Jenkins, la configuration des différents plugins, certains comportant quelques bugs, a pris plus de temps qu’on ne l’avait imaginé. C’est notamment la remonté du résultat des tests vers Testlink qui a posé problème (pour pouvoir conserver, à tout moment, une vue globale sur l’exécution de l’ensemble de la campagne de test, partie manuelle et partie automatique).

Côté smartGWT, les identifiants des composants graphiques sont générés dynamiquement, ce qui pose problème pour automatiser les tests. Des solutions de contournement sont donnés avec le framework smartGWT, mais dans la pratique, beaucoup de choses restaient difficiles, voir impossibles.

Résultats

Malgré les différents blocages rencontrés (outre les problèmes d’interfaçage avec des éléments hors web), nous avons réussi à automatiser environ 65% des tests.

Les tests, essentiellement développés sous eclipse (sans passer systématiquement par Selenium IDE), sont relativement simples à faire évoluer, même si certaines fonctions de Selenium ont du être surchargées pour supporter smartGWT.

Le développement des tests automatiques a également eu un impact sur le développement de l’application elle même : certaines règles de codage ont été mises en place pour faciliter l’automatisation des tests.

Leave A Comment