Le plugin Eclipse openQA Selenium IDE

Je continue sur le sujet des tests en général et celui des applications web en particulier. Je désire un outil de test au niveau interface web orienté utilisateur, simple d’utilisation, accessible aux non développeurs. De préférence, cet outil doit fonctionner directement dans un navigateur web et permettre d’enregistrer les tests à partir d’une navigation sur le site. Tout ceci pour faciliter des tests d’acceptance.

Je me suis orienté sur OpenQA Selenium IDE. QA signifie ici Quality Assurance ou en français Assurance Qualité. Rien ne vous empêche naturellement de regarder les autres outils de la famille Selenium. Dans un premier temps, j’y ai renoncé à approfondir les autres pour me contenter de Selenium IDE. La version actuelle est la 0.8.7 datant du 21/03/2007. Il s’agit d’un outil de test s’exécutant directement dans le navigateur web, sous forme d’extension (plugin) pour Firefox. Pour enregistrer, le test il suffit d’appuyer sur le bouton d’enregistrement et d’exécuter le test qu’on désire rejouer plus tard.

Il faut avouer que il est parfois nécessaire de modifier le résultat de l’enregistrement. Heureusement, la syntaxe des actions est relativement simple . Il s’agit un triplet commande, cible valeur. Un exemple simple est le renseignement d’un champ dans un formulaire (type, nom du champ, valeur). La partie valeur est parfois inutilisée comme par exemple lors du click sur un bouton. Certaines commandes se terminent par wait pour signifier d’attendre la réponse du serveur, il existe un timeout par défaut. Le format d’enregistrement des tests est en HTML. C’est un peu surprenant mais tout à fait utilisable, les actions sont placées dans un tableau HTML.

Un exemple de code utile est de générer du texte aléatoire, par exemple pour enregistrer un référence unique. Il suffit d’ajouter un peu de javascript.

<tr>
<td>store</td>
<td>javascript{'subject' + (new Date()).getTime()}</td>
<td>subject</td>
</tr>
<tr>
<td>type</td>
<td>subject</td>
<td>${subject}</td>
</tr>
<tr>
<td>assertTextPresent</td>
<td></td>
<td>${subject}</td>
</tr>

Il existe plusieurs commandes d’assertion assertTitle assertTextPresent… Mais une particularité de cet outil est d’avoir des commandes commençant par verify (verifyTitle, verifyTextPresent….). Les commandes « assert » arrête le test si la condition n’est pas vérifiée. Verify continue le test. Ces commandes Verify sont contraires aux principes des tests unitaires. Si vous voulez vérifier deux choses et ne pas s’arrêter au premier test, il faudrait écrire deux méthodes de test différentes. Mais ici, nous sommes bien en test d’acceptance, donc il est envisageable d’avoir ce genre de commande pour collecter le maximum d’information. Dernier point les commandes sont de haut niveau orientées utilisateur, il n’est pas possible d’étendre ce jeux de commandes.

Ce projet est finalement très facile à pendre en main. Je reproche un peu le manque de documentation, il existe bien une FAQ un wiki mais il n’y a pas grand chose dedans. Il est possible après de faire des « testSuite » c’est à dire regrouper les différents scénarios de tests dans un seul fichier qui appelle les autres fichiers, nommons le testsuite.html.

<table>
<tr>
<td>Test suite for the whole application</td>
</tr>
<tr>
<td><a target="testFrame" href="test1.html">Test1</a></td>
</tr>
<tr>
<td><a target="testFrame" href="test2.html">Test2</a></td>
</tr>
</table>

Pour exécuter la suite de test, il faut appeler l’url chrome://selenium-ide/content/selenium/TestRunner.html?
baseURL=http://localhost&test=file:///dir/testsuite.html&auto=true. A vous d’adapter les bons paramètres. Ce principe des tests suite est inspiré directement de JUnit. Il est cependant pas possible de combiner ces « tests suites » pour former d’autres « tests suites » suivant le modèle de JUnit.

Enfin, j’ai trouvé un pdf de présentation en français.

Publicités

Une Réponse to “Le plugin Eclipse openQA Selenium IDE”

  1. petitteckel Says:

    Petit détail, ce projet utilise Jira pour la gestion des bugs et évolutions…

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s


%d blogueurs aiment cette page :