Outils d'automatisation de tests d'interfaces web
Selenium Remote-Control
Introduction
Dans les sections précédentes, nous avons pu voir que selenium IDE et selenium Core permettaient de créer et éxécuter des tests. Ces tests sont uniquement exécutables sous mozilla firefox. Firefox fonctionne sous Windows, Linux et Mac OS.
Dans cette section nous allons voir comment Selenium Remote Control, ou en "RC", va nous permettre de porter les tests en différents langages sur différents navigateurs et systèmes d'exploitation.
Des tests multi-navigateurs et multi-plateformes
Selenium remote control va permettre de porter les tests vers de nouveaux navigateurs. Voici le tableaux récapitulatifs des compatibilités navigateur<=>système d'exploitation.

Il semblerait que les tests chromes soit également possible sous mac OS ainsi que Linux, cependant ce tableau est tiré du site officiel de Selenium.
Architecture
Voyons la nouvelle architecture que nous propose Selenium RC :

Le serveur Remote Control est un exécutable au format jar ce qui implique la présence d'un JRE sur la machine où l'on souhaite lancer le RC. Une fois actif, il est possible d'éxécuter des tests via ce RC. Ces tests peuvent être aux formats : Java, PHP, C#, Perl, Python et Ruby.
En plus de cela, il sera possible de préciser au RC quel navigateur web est à démarer pour effectuer les tests.
Avantages
En utilisant un de ces langages de programmation, de nouvelles dimensions apparaissent dans l'automatisation des tests d'interface web :
- les conditions (if, else, ...) ainsi que les itérations(for, while, ...) sont maintenant possibles. De ce fait, il devient possible de créer des dépendance de cas de test.
- Il est également possible d'historisater les résultats des tests notamment gràce à des framework du langage utilisé. La gestion des erreurs peut prendre alors une nouvelle dimension. Les tests qui ont échoué peuvent être re-exécuter. Il est également possible de prendre des capture d'écran des tests qui ont échoués.
- Enfin le dernier aspect est la possibilité d'accéder à une base de donnée grâce au langage de programmation. Ainsi il sera possible d'historiser les tests dans une base, mais également la possibilité de comparer directement la cohérence des informations affichées par rapport à des contenus de bases de données.
En pratique
Selenium RC que l'ont télécharge sur le site officiel est un ensemble de 7 dossier (+ un fichier readme.txt).
Un dossier contient le serveur. Les autres dossier contiennent les librairies et documentations nécessaire à l'utilisation des tests selenium dans le langage.
Voici des exemples de codes dans chacun des langages :
Nous pouvons constater que le code à développer pour mettre en oeuvre un même test est casiment similaire, à la syntaxe du langage près.
Le serveur RC peut être lancé avec différentes options pour :
- Configurer le proxy
- Choisir un mode mono ou multi fenêtre(s)
- Choisir du profil Firefox
- Exécuter directement du code DHTML
- Récupérer les logs
- Définir le chemin absolu vers le navigateur (ex : si plusieurs versions d'un même navigateur sont installé sur le même navigateur, c'est le plus récent qui est lancé par défault)
- Utiliser le mode interactif (la commande saisie dans le terminal du RC se répercute immédiatement dans le navigateur)