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

Paramétrer un test Selenium dans le code

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 PHP MyAdmin (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).

selenium_code_1.png
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”“

selenium_code_2.png
On ouvre un tableau HTML.

selenium_code_3.png
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.

selenium_code_4.png
On s’identifie avec le bon profil.

selenium_code_5.png
On ouvre le formulaire d’ajout du type de contenu “article”.

selenium_code_6.png
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 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 :
selenium_code_7_0.png

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 :


Commentaires

Poster un nouveau commentaire

Le contenu de ce champ ne sera pas montré publiquement.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <h3> <h4> <h5> <object> <param> <embed> <p>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Adds typographic refinements.
  • Potentially problem-causing HTML tags are filtered.