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 :