3. Paramétrer les tests et scénarios fonctionnels avec Selenium (dans le code)

le 15 Juillet 2009, par Stéphane

Une fois le plan de test établi, il ne reste plus qu'à paramétrer chaque test puis générer les scénarios

Avant de commencer

Vous devez disposer de :

  • un site / une application à tester ;-)
  • un jeu de test : quelques images, vidéos, sons, textes, données représentatives
  • Firefox 2.x VERSION PC (nous avons rencontré des problèmes sous Mac)
  • l'extension Selenium IDE
  • un accès à MySQL ou PHPMyAdmin (pas fondamental mais très pratique, vous verrez)

Quelques conseils utiles si vous travaillez en équipe :

  • Tous les tests doivent s'appuyer sur un répertoire commun (c:\selenium dans notre cas) pour être ensuite mis en commun et exécuté sans problème
  • Toutes les ressources (images, sons, ...) doivent posséder un nom unique et être stockées au même endroit (c:\selenium dans notre cas) pour être ensuite mis en commun et exécuté sans problème

Paramétrer un test (à la main)

Pour ceux à l'aise avec le code, voici un exemple :

Il faut une entête XHTML avec un encodage en UTF8 (sinon le test ou le scénario n'est pas lu).

Il faut une entête XHTML avec un encodage en UTF8 (sinon le test ou le scénario n'est pas lu). Notez link rel='selenium.base' href='http://breek.fr' /.

On ouvre un tableau HTML.

On se logout pour être sur que le test unitaire repart sur une base propre. Même chose pour le retour à la racine du site. Vous découvrirez vite que la commande "open" est très utile pour pointer directement vers la bonne URL sans passer par un "clic" qui lui peut ne plus fonctionner si des modifications sont effectuées sur l'interface.

On s'identifie avec le bon profil.

On ouvre le formulaire d'ajout du type de contenu "article".

On rempli le formulaire à l'aide de plusieurs commande spécifiques puis on envoi le formulaire.

La commande type permet de remplir un champ (imput, textarea...). Notez que pour uploader une image (dans Drupal) il n'est pas utile de la charger de manière séquentielle, le submit final suffit.

La commande click exécute un clic sans attendre. Elle est utilisée à l'intérieur du formulaire pour déplier le fieldset "Données Article". Notez que toutes les cibles sont basées sur le DOM.

La commande Select permet de sélectionner une valeur dans une liste déroulante simple. La commande "addSelection" permet de sélectionner plusieurs valeurs dans une liste à choix multiples.

Notez //form[@id='node-form']/div/div/div[1]/div[5]/fieldset/legend/a qui permet de cibler un élément particulier du DOM. Cette cible devra être réécrite avec xpath pour qu'elle fonctionne à coup sûr.

La commande clickAndWait exécute un clic mais contrairement à click, elle attend que la page soit chargée. Elle est donc utilisée pour naviguer entre les pages. Enfin, la commande verifyTextPresent est très utile pour constater qu'une action a été, a priori, exécutée avec succès : il suffit de vérifier la présence du message de confirmation d'action (si on considère que les fonctions core du CMS fonctionnent à coup sur). On peut aller plus loin avec des commandes telles que assert et waitFor.

Pour en savoir plus, visitez http://seleniumhq.org/documentation/core/reference.html

On ferme le tableau, le body puis la page. Et voilà that's all folks!

Paramétrer un scénario Selenium

Je dois avouer que je n'ai pas compris comment créer facilement un scénario à partir de Selenium IDE. La méthode que je vous propose consiste donc à créer un tableau HTML en suivant la même logique que pour la création d'un test. La seul différence est qu'au lieu d'enchaîner des lignes comprenant 3 colonnes, on enchaîne des lignes avec 1 colonne qui appellent le test. Ce qui donne :

Les lecteurs du livre "Conduite de projet web" peuvent télécharger un modèle facilitant la génération de scénarios Selenium.

Ensuite, il suffit d'ouvrir le test et de le lancer. Les résultats sont lus de la même manière que pour un test.

Pour en savoir plus, le site officiel :


comments powered by Disqus