Ce premier billet a pour objectif de présenter Selenium et ses fonctionnalités. Le second sera d’avantage axé sur son implémentation et utilisation.
Selenium est une suite d’outils permettant de faire des tests fonctionnels d’une application web (et uniquement web). Ces outils sont distribués par OpenQA, sous la licence libre Apache 2.0.
Par outil de test fonctionnel d’une application web, j’entends :
Selenium est composé de 3 éléments :
Contrairement à Selenium Core, Selenium RC et Selenium IDE s’installent sur le poste du développeur. Selenium RC peut aussi s’installer sur un serveur dédié à l’exécution des tests si l’on souhaite les exécuter de façon automatisée.
Petit aperçu d’un test enregistré dans Selenium IDE :
Le test consiste à :
Avant d’aller plus loin, Selenium n’est pas fait pour :
Et pour être totalement honnête, Selenium :
Les utilisateurs de Selenium ont le profil suivant (liste non exhaustive) :
Sauf à vouloir perdre du temps, il convient de procéder de la façon suivante :
La réponse est oui, si :
Nous pouvons voir les Test Suites de deux façons :
Petite illustration : imaginons que notre application porte sur la gestion des congés.
Dans le premier cas, ma Test Suite est composée de trois cas de test. Chaque test couvre l’ensemble du processus à tester.
Dans le second cas, chaque composant est une portion du process complet. Le "Test 1" pourrait tout à fait être représenté par ce second cas.
Il "suffit" de s’appuyer sur la capacité de Selenium à exporter les tests enregistrés dans Selenium IDE dans un des formats supportés par Selenium RC et adapté à votre outil d’intégration continue.
Une fois exporté et intégré à votre outil, lors d’un commit, une tâche est lancée qui consiste à :
Vous pourriez objecter qu’il est possible de lancer Selenium RC avec un test au format HTML. Certes mais dans la mesure où vous allez vouloir probablement réinitialiser votre application suite à votre test, vous serez contraint de passer par un langage de script.
Nous arrivons au terme de ce premier billet qui avait pour objectif de planter le décor sur Selenium, ses capacités et son fonctionnement. Le prochain billet consistera à rentrer dans le vif du sujet et montrer comment Selenium IDE et Selenium RC peuvent être utilisés.
Pour info, Quick Test Professional (alias QTP), édité par Mercury / HP, est un outil de test fonctionnel, que ça soit Web ou autres. La description d’un cas de test peut être réalisée par une "macro VBA" ou par une "description" via une interface graphique. Plus d’infos sur QTP : https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp ?zn=bto&cp=1-11-127-24%5E1352_4000_100__
Au final, les rapports d’exécution peuvent être consolidés au niveau de Quality Center (autre outil Mercury HP) pour avoir une vision sur les bugs ou les régressions, au cours du cycle de développement.
Thomas,
Pour avoir eu l’occasion d’assister à une démo des outils Mercury/HP, il est vrai que cette suite est impressionnante de part ses capacités. Son prix aussi d’ailleurs 
Selenium n’a certes pas la couverture fonctionnelle de QTP ou de la suite QC. Néanmoins, l’outil couvre les besoins de base en matière de test, a le mérite d’être aisé à prendre en main et pour un coût quasi nul (l’outil en soit est gratuit, il faut juste prévoir un temps d’appropriation).
Bref, avant de se lancer dans QTP/QC ou Test Director (IBM), il est à mon humble avis judicieux/opportun de tester Selenium.
Bonjour,
Savez-vous si Selenium fonctionne bien pour tester BO ? Avez eu des retours d’expérience à ce sujet ?
cdlt JM
Bonjour,
Je n’ai pas eu l’occasion de le faire personnellement.
J’aurais tendance à dire que dès lors que vous êtes en présence d’une application web et que la partie javascript est bien faite (ie, que Selenium est en mesure de capturer toutes vos actions dans lesquelles vous utilisez du javascript), vous devriez pouvoir l’utiliser avec Selenium.
Il faut bien distinguer ce qui est propre à BO et ce qui a été développé autour de BO. Que BO soit utilisable avec Selenium n’implique pas que le développement réalisé autour de BO le soit.
Nicolas
Pour avoir été confronté cette année à QTP, c’est un logiciel effectivement assez puissant dans la diversité des technologies qu’il est capable « d’automatiser », avec cependant quelques lacunes :
1. Une politique de licence _très_ propriétaire : tout gratuit pendant 3 ans pour que les gens s’approprient les technos, pour un verrouillage ensuite.
2. Instabilité du moteur d’exécution (redémarrage forcé tous les 50 tests car bugs autour de 100 tests sur les cas utilisés).
3. Peu de flexibilité dans l’enchainement des tests, sauf à mettre en oeuvre la partie Business Process Testing, qui verrouille encore plus sur la solution.
Bref, Selenium est effectivement plus un outil « agile » et QTP l’outil des « grosses DSI », en caricaturant un peu.
Xavier,
Merci pour ce retour utilisateur et plus spécialement pour les points 2 et 3.
Nicolas