Skip to main content

Toutes les personnes dans le domaine de l’automatisation des tests connaissent Robot Framework et Selenium. Ce sont les deux principaux cadres d’automatisation que les développeurs et les testeurs utilisent pour créer des environnements de test qui automatisent la vérification d’une autre application.

Alors, quelles sont les applications futures de ces cadres et comment façonneront-ils l’évolution de la technologie et des applications web ? Dans cet article, j’explorerai les similarités et différences entre Robot Framework et Selenium, l’automatisation par mots-clés, et d’autres avis d’experts.

Les similarités entre Robot Framework et Selenium

Les deux cadres sont des technologies éprouvées, Selenium existant depuis plus de deux décennies et Robot Framework approchant les 20 ans. 

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

This field is for validation purposes and should be left unchanged.
Name*

Les deux sont open source et disposent de bases d’utilisateurs se comptant par centaines de milliers (voire millions). Cependant, aucun n’est un outil au sens strict du terme : ce sont des cadres que vous utilisez pour créer votre outil adapté à votre objectif de test spécifique. 

Robot Framework et Selenium sont largement utilisés pour tester les applications web. En réalité, Selenium a été conçu spécifiquement pour cette finalité, tandis que Robot Framework a été pensé pour automatiser à peu près tout. On sait que Robot Framework est même utilisé pour tester des systèmes de signalisation sensibles au facteur temps.

Les deux cadres sont accessibles depuis divers langages de programmation : Selenium est historiquement associé à Java et C++, tandis que Robot Framework est principalement rattaché à Python.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

This field is for validation purposes and should be left unchanged.
Name*

Les différences entre Robot Framework et Selenium

Un cadre d’automatisation des tests fonctionne entre le testeur et l’application à tester. Il propose une interface de script (« interface de test supérieure ») pour décrire les tests au cadre et une interface de pilote (« interface de test inférieure ») servant à piloter l’application sous test, afin de simuler les actions d’un utilisateur. La principale tâche du cadre est donc de traduire les commandes du script de test de l’interface supérieure en clics, points et frappes clavier dans l’interface inférieure.

Selenium a d’abord établi la norme pour l’interface inférieure dans les tests d’applications web : un modèle cohérent d’adressage des éléments des pages web via un format de sélection appelé XPath. L’interface supérieure de Selenium n’est qu’une mince bibliothèque de programmation pour manipuler les XPaths, ce qui demande de solides compétences en développement. De plus, tous les utilisateurs de Selenium savent que les XPaths ont tendance à évoluer, et que les tests nécessitent une maintenance continue, longue et coûteuse.

Robot Framework est né de la frustration causée par des outils d’automatisation laborieux, Selenium inclus. L’objectif était de bâtir un cadre générique d’automatisation pouvant s’étendre grâce à des bibliothèques personnalisées implémentant diverses interfaces de test. Le concept s’est inspiré de l’automatisation basée sur les mots-clés, initiée par Hans Buwalda et le développement dirigé par le comportement (BDD). 

Qu’est-ce que l’automatisation basée sur les mots-clés dans Robot Framework ?

L’automatisation basée sur les mots-clés consiste à programmer des commandes de haut niveau telles que Login, EnterLead, CreateContact, etc., qui réalisent les actions récurrentes d’un testeur ou d’un véritable utilisateur. Ces mots-clés masquent les détails complexes des XPaths et autres aspects techniques. Les concepteurs de tests utiliseront alors ces mots-clés pour définir les scénarios de test à proprement parler. Si quelque chose change dans l’implémentation de l’application sous-jacente, il suffit de modifier la définition des mots-clés, et tous les tests les utilisant fonctionneront à nouveau.

Considérations sur l’automatisation basée sur les mots-clés

L’automatisation basée sur les mots-clés comporte toutefois un bémol. Une attention particulière doit être apportée à la définition du vocabulaire des mots-clés pour éviter leur prolifération. Si vous appliquez le BDD, cette prolifération est presque assurée. Si le vocabulaire est spécifique à une application, concevoir des tests pour une application avec Robot Framework n’implique pas nécessairement une expertise pour une autre. 

Et, tout comme pour Selenium, les développeurs chargés de maintenir ces implémentations de mots-clés ont tendance à devenir des goulots d’étranglement dans le processus. Les XPaths sujets à modification à maintenir sont peut-être bien moins nombreux qu’avec Selenium, mais ils existent encore.

Bénéfices de l’automatisation par mots-clés et richesse des bibliothèques

L’évolutivité de Robot Framework a permis à la communauté de créer de nombreuses bibliothèques de mots-clés utiles. Par exemple, il existe au moins trois bibliothèques uniques d’automatisation web : SeleniumLibrary, QWeb et BrowserLibrary. SeleniumLibrary pour Robot Framework a été construite sur Selenium, mais avec un niveau d’abstraction supérieur à Selenium lui-même. La communauté héberge quantité de bibliothèques pour d’autres usages, comme les tests d’API ou la génération de données de test. 

Si vous êtes un programmeur professionnel, vous pouvez réaliser n’importe quelle tâche d’automatisation web avec Selenium, mais il vous faut tout faire vous-même. Robot Framework apporte le même niveau de flexibilité, mais avec un très grand nombre de bibliothèques utiles qui peuvent rendre votre travail bien plus productif.

Le modèle d’extensibilité bien pensé est l’un des grands atouts de Robot Framework. Par exemple, vous pouvez créer de nouvelles bibliothèques de mots-clés en programmant en Python ou dans un autre langage de votre choix, ou simplement en enchaînant des mots-clés existants, même avec des structures de contrôle basiques, pour en former de nouveaux.

Note sur le no-code

Si vous n'êtes pas un programmeur professionnel, vous serez démuni avec Selenium et, pour être honnête, presque aussi démuni avec Robot Framework. Vous ne pouvez pas comprendre grand-chose à un script Selenium, mais si vous voyez un script de test Robot Framework, vous pourrez probablement, mais pas toujours, suivre sa logique et comprendre ce qu'il est censé faire. Si vous disposez de bons exemples à copier et à améliorer, vous serez même capable de créer vous-même des scripts Robot Framework.

De nombreux responsables de tests estiment que travailler avec Robot Framework est plus productif qu'avec Selenium, grâce à son niveau d'abstraction plus élevé et à ses bibliothèques prêtes à l'emploi qui réduisent à la fois le coût de l'automatisation et, en particulier, celui de la maintenance des tests. Il est courant d'observer des gains de productivité de quatre à huit fois supérieurs à ceux obtenus avec Selenium. 

En revanche, si vous savez ce que vous faites, vous pouvez sans aucun doute y parvenir avec Selenium : la contrainte de devoir tout faire soi-même s’accompagne de la liberté de pouvoir tout réaliser par soi-même.