Accédez en illimité à
tous nos livres & vidéos, sur l'IA, le dev, les réseaux... Cliquez ici
Bibliothèque Numérique ENI :
tous nos livres & vidéos, en accès illimité 24h/24. Cliquez ici

Création des tests

Structure d’un projet

Avant de commencer la création des tests, il est important de comprendre la structure d’un projet Robot Framework. Bien qu’il n’existe pas de structure standard, chaque projet comporte généralement les mêmes composants.

L’objectif de la présentation de la structure d’un projet est de comprendre la fonctionnalité de chaque composant d’un projet Robot Framework. Cette section se concentre sur les composants basiques du projet. Pour l’instant, il convient de retenir qu’un projet Robot Framework simple se compose de trois composants principaux :

  • Test Case (cas de test) : il s’agit d’une série d’actions accompagnées de jeux de données, des prérequis et de descriptions des résultats attendus. Il a pour objectif principal la vérification d’une fonctionnalité ou d’un aspect spécifique du système sous test.

  • Test Suite (suite de test) : il s’agit d’un ensemble de cas de test qui partagent généralement un point commun, comme un objectif spécifique, une fonctionnalité ou aspect particulier à tester.

  • Keywords (mot-clé) : il s’agit d’une instruction ou d’un ensemble d’instructions qui effectue une ou plusieurs actions spécifiques dans un cas de test.

Les trois composants peuvent être...

Méthodes d’écriture des tests avec RIDE

Avant de se lancer dans la construction d’un projet Robot Framework, il est essentiel de se pencher sur les différentes méthodes disponibles pour élaborer et structurer les tests. Robot Framework offre principalement deux approches distinctes pour écrire des tests automatisés : l’utilisation des fonctionnalités graphiques de l’éditeur RIDE (Robot Framework Integrated Development Environment) et l’écriture directe en texte au sein de l’onglet Editor de RIDE ou à l’aide d’un éditeur de texte classique tel que Visual Studio Code, Sublime Text ou Bloc-notes.

La première méthode, basée sur les fonctionnalités graphiques de RIDE, permet de créer et de gérer les tests de manière visuelle et intuitive, facilitant ainsi la prise en main pour les débutants et offrant une interface conviviale pour organiser les suites de tests et les cas de test sans nécessiter une connaissance approfondie de la syntaxe Robot Framework.

La seconde méthode consiste à rédiger les tests directement en texte brut, offrant une plus grande flexibilité et un contrôle renforcé sur la structure et le contenu des fichiers de test. Cette approche est particulièrement appréciée par les utilisateurs plus expérimentés qui préfèrent utiliser des éditeurs de texte avancés, bénéficiant de fonctionnalités telles que la coloration syntaxique, l’autocomplétion et l’intégration avec des systèmes de contrôle de version comme Git.

L’accent sera mis exclusivement sur l’utilisation de RIDE afin d’explorer à la fois l’écriture des tests via une interface graphique et en mode textuel. Utiliser RIDE en mode textuel revient exactement au même que travailler avec un éditeur comme VS Code ou un autre éditeur similaire. La seule différence réside dans les fonctionnalités spécifiques offertes par chaque éditeur, indépendamment de l’outil ou de la technologie utilisée. Les lecteurs habitués à la lecture de code peuvent d’ailleurs envisager d’utiliser...

Création d’une suite de tests

La création d’une suite de tests dans Robot Framework constitue une étape essentielle pour organiser efficacement les tests automatisés. Une suite de tests regroupe un ensemble de tests associés par une thématique commune ou une fonctionnalité spécifique, ce qui simplifie leur exécution et leur gestion. Sans la mise en place d’une suite de tests, il est impossible de concevoir un cas de test. Cette section examine les différentes méthodes de conception d’une suite de tests, en présentant d’abord l’approche via l’interface graphique, puis celle basée sur l’édition textuelle.

 Pour créer une suite de tests depuis RIDE, cliquez sur File puis New Project. Une petite fenêtre s’affiche avec les informations suivantes :

  • Name : nom attribué au projet et donc à la suite de tests.

  • Type : choix entre File et Directory. Sélectionner File permet de créer une suite de tests, tandis que Directory crée un dossier contenant une ou plusieurs suites de tests. Le choix par défaut est File.

  • Format : les différents formats possibles pour une suite de tests dans Robot Framework. Le format ROBOT est utilisé exclusivement dans ce livre. Format simple et fiable, compatible avec la plupart des éditeurs, et favorisé par RIDE.

  • Parent Directory : l’emplacement où le projet sera créé....

Bibliothèques Robot Framework

La notion de bibliothèques dans Robot Framework est essentielle pour son efficacité et sa polyvalence. Leur importance peut être résumée en une seule phrase : en matière d’automatisation des tests, Robot Framework ne peut rien accomplir sans l’utilisation de bibliothèques. Cette affirmation est particulièrement vraie dans le cadre d’une automatisation avancée des tests, bien qu’elle puisse ne pas s’appliquer si l’on se limite à une simple automatisation de processus.

En informatique, le terme « bibliothèque » désigne une collection de ressources réutilisables. Une définition simple et accessible d’une bibliothèque est la suivante : une boîte à outils contenant des morceaux de code pré-écrits, tels que des fonctions, des classes ou des modules, qui peuvent être utilisés pour effectuer des tâches spécifiques de manière efficace et standardisée. Dans le contexte de l’automatisation des tests, et plus particulièrement dans celui de Robot Framework, ces morceaux de code pré-écrits prennent la forme de mots-clés (ou keywords).

Un mot-clé représente généralement une action ou une série d’actions qui simulent le comportement d’un utilisateur ordinaire du système testé. Par exemple, des mots-clés peuvent inclure des actions telles que ouvrir le navigateur, saisir du texte, cliquer sur un bouton ou vérifier la présence d’un élément. Ces mots-clés sont essentiels, car ils permettent de créer des cas de test lisibles et maintenables, en masquant les détails techniques et en rendant les tests plus compréhensibles, même pour ceux qui ne possèdent pas une expertise approfondie en programmation.

Ainsi, les bibliothèques constituent le cœur de Robot Framework, fournissant les briques de base nécessaires pour construire des suites de tests robustes et efficaces. Elles facilitent non seulement la réutilisation du code, mais aussi l’intégration avec d’autres outils et technologies, rendant Robot Framework un outil puissant et polyvalent pour l’automatisation des tests....

Installation et import d’une bibliothèque

La configuration d’une suite de tests dans Robot Framework repose principalement sur l’import d’au moins une bibliothèque externe. Cette section portera sur l’utilisation de la bibliothèque SeleniumLibrary, l’une des bibliothèques externes les plus couramment utilisées.

Dans Robot Framework, toutes les bibliothèques externes doivent être installées avant de pouvoir être utilisées dans les tests automatisés. Pour installer une bibliothèque externe, il est indispensable d’utiliser la commande pip de Python, le gestionnaire de paquets standard pour Python. pip simplifie l’installation, la mise à jour et la gestion des bibliothèques nécessaires aux projets de test.

Voici la commande pour installer une bibliothèque avec pip :

pip install <nom_bibliotheque> 

Pour installer SeleniumLibrary, la commande sera donc :

pip install robotframework-seleniumlibrary 

La plupart des bibliothèques pour Robot Framework suivent une convention de nommage spécifique : elles sont précédées par le préfixe robotframework-. Cette convention facilite l’identification et l’installation des bibliothèques nécessaires à l’automatisation des tests.

Il est indispensable de consulter la documentation de chaque bibliothèque afin de déterminer avec précision le nom du package à installer ainsi que le nom exact de la bibliothèque à intégrer dans la suite de tests. Cette étape est importante, car Robot Framework est sensible à la casse, ce qui signifie que les caractères majuscules et minuscules sont traités comme distincts. Par conséquent, toute erreur, même minime, dans le nom d’une bibliothèque ou d’un mot-clé, entraînera l’échec de l’import.

Bien que la majorité des bibliothèques respectent une convention de nommage standardisée...

Écrire un cas de test

Avant d’aborder la manière d’écrire un cas de test automatisé en utilisant Robot Framework, il est essentiel de définir ce qu’est un cas de test automatisé et d’en analyser les composants fondamentaux.

Un cas de test automatisé est défini comme un script ou une série de scripts conçus pour effectuer automatiquement des vérifications spécifiques sur un logiciel, garantissant ainsi son bon fonctionnement conformément aux attentes et aux spécifications initiales. Ces tests automatisés sont indispensables pour assurer la qualité et la fiabilité des applications, en permettant de détecter rapidement les erreurs et les dysfonctionnements potentiels.

Comme mentionné précédemment, la bibliothèque SeleniumLibrary sera utilisée dans les projets Robot Framework pour effectuer des tests d’interface web. Ce type de tests web se compose principalement de deux éléments essentiels :

  • L’action à effectuer : il s’agit des interactions simulées telles que la saisie de texte, le clic sur des boutons, le défilement de la page, la sélection d’options dans des menus déroulants, etc. Ces actions reproduisent le comportement d’un utilisateur lors de l’utilisation d’une application web. Les tests automatisés ne se limitent pas aux actions réalisées sur l’interface graphique, mais incluent également des vérifications des résultats à la suite de l’exécution d’une ou de plusieurs actions.

  • Les informations sur l’élément graphique concerné par cette action : il est nécessaire de disposer des sélecteurs ou des identifiants permettant de localiser précisément les éléments de l’interface utilisateur sur lesquels les actions seront effectuées. Cela peut inclure des identifiants HTML, des classes CSS, des chemins XPath, ou d’autres méthodes de sélection des éléments de l’interface graphique.

Il paraît donc évident que l’automatisation de ce type de tests nécessite un outil offrant à la fois une liste exhaustive d’actions capables de simuler le comportement...

Technique de localisation des éléments

Avant d’aborder les différentes techniques utilisées pour localiser les éléments au sein d’une interface graphique, il est essentiel d’expliquer d’abord la structure des interfaces graphiques et les technologies employées pour leur présentation. Les interfaces graphiques se déclinent principalement en trois types : web, mobile et desktop, chacune possédant des caractéristiques spécifiques liées aux technologies utilisées pour leur développement et à la manière dont les éléments sont présentés.

  • Interfaces web : développées à l’aide de technologies telles que HTML, CSS et JavaScript, les interfaces web sont accessibles via des navigateurs internet. La structure d’une interface web repose sur le DOM (Document Object Model), qui représente les éléments de la page sous forme d’arborescence hiérarchique. Cette structure permet une manipulation dynamique des éléments à l’aide de scripts, facilitant ainsi l’interaction utilisateur et l’adaptation de l’interface en temps réel.

  • Interfaces mobiles : conçues pour les appareils mobiles tels que les smartphones et les tablettes, les interfaces mobiles utilisent des technologies spécifiques comme Swift ou Objective-C pour iOS, et Java ou Kotlin pour Android. Sur Android, le XML est couramment utilisé pour définir les layouts et les éléments de l’interface utilisateur. Les interfaces mobiles doivent être optimisées pour des écrans de petite taille et des interactions tactiles.

  • Interfaces desktop : destinées aux applications installées sur des ordinateurs de bureau, les interfaces desktop utilisent des frameworks comme WPF (Windows Presentation Foundation) pour Windows, qui utilise XAML (une variante de XML) pour définir les interfaces, Cocoa pour macOS, ou des bibliothèques multiplateformes comme Qt et GTK.

Ainsi, la localisation des éléments varie en fonction des technologies et des plateformes utilisées, nécessitant des approches spécifiques pour chaque type d’interface afin d’assurer une automatisation des tests efficace et fiable.

Voici...

Création des mots-clés

Les mots-clés sont créés à partir des fonctionnalités des bibliothèques importées. Ils permettent de regrouper des actions communes ou spécifiques au sein de blocs réutilisables. L’utilisation des mots-clés facilite la structuration et la simplification des cas de test en réduisant les répétitions et en améliorant la lisibilité du code, tout en garantissant une meilleure maintenabilité.

À l’exemple du cas de test présenté dans la sous-section précédente Environnement desktop, Effectuer une recherche valide, il est pertinent d’examiner les méthodes de réutilisation de certaines étapes de ce test.

Par exemple, il pourrait être nécessaire d’effectuer la même recherche sur deux navigateurs différents. Une solution possible serait de dupliquer le test afin d’en avoir deux versions, en remplaçant simplement le paramètre du navigateur, utilisé dans le mot-clé Open Browser, de Chrome par Firefox dans la seconde version. Toutefois, cette approche n’est pas optimale en termes de maintenance. En effet, la gestion du test Effectuer une recherche valide impliquerait la maintenance de deux versions identiques du test, différenciées uniquement par le navigateur utilisé. L’ampleur de cette problématique devient encore plus évidente dans un scénario où il serait requis de tester la connexion de centaines de comptes.

La création de mots-clés constitue une solution efficace à cette problématique. Plutôt que de dupliquer le test, un mot-clé sera créé, acceptant en argument le type de navigateur. Ce mot-clé pourra ainsi être réutilisé dans tous les contextes nécessaires, simplifiant la maintenance et améliorant la flexibilité des tests.

Il existe deux façons, comme pour l’écriture des cas de test, de créer des mots-clés : l’une via l’interface graphique depuis l’onglet Editor, et l’autre en mode textuel depuis l’onglet Text Edit.

1. Création de mot-clé depuis l’interface graphique (onglet Editor)

Pour créer un mot-clé depuis...

Utilisation des variables

Les variables en informatique sont des composants permettant de stocker des valeurs utilisées et modifiées tout au long du cycle de vie d’exécution du projet. L’usage principal des variables dans Robot Framework est de stocker des jeux de données.

Il existe trois types de variables dans Robot Framework.

1. Variables scalaires (scalar)

Les variables scalaires sont conçues pour stocker une seule valeur à la fois. Elles peuvent contenir différents types de données et sont représentées dans Robot Framework par la syntaxe ${var_scalaire}, précédée du symbole dollar « $ ».

Voici quelques exemples de variables scalaires :

  • ${url} https://www.google.com : pour stocker l’URL d’une application ;

  • ${xpath_barre_recherche} //textarea[@id="APjFqb"] : pour stocker le locator d’un élément.

Les variables scalaires peuvent être créées de deux manières : en utilisant l’interface graphique ou l’éditeur de texte. Pour créer une variable scalaire via l’interface graphique de RIDE :

 Faites un clic droit sur la suite de tests.

 Cliquez sur New Scalar.

images/04RF36.png

Créer une nouvelle variable scalaire depuis l’interface graphique

Une fenêtre s’ouvre, invitant à renseigner le nom et la valeur de la variable. À noter que la valeur peut être modifiée durant l’exécution du projet. Il est aussi possible d’ajouter un commentaire pour expliquer la raison de la création de cette variable.

images/urldelapptestee.png

Saisie du nom de la variable scalaire

En cliquant sur OK, la variable apparaît dans la structure du projet avec l’icône $. Cette icône permet de distinguer les variables scalaires, facilitant ainsi leur identification et leur gestion au sein du projet.

La même variable peut également être créée en mode textuel depuis l’onglet Text Edit.

 Créez la section *** Variables *** si elle n’existe pas.

 Placez-vous sur la première ligne vide de la section ***Variables***.

 Saisissez le nom de la variable ${url}. Ce nom doit être positionné à la colonne 0, c’est-à-dire aligné à...

Fichiers Resources

Dans les sections précédentes, la création et l’utilisation des variables ainsi que des mots-clés ont été abordées. Il a été démontré que la création de mots-clés permet de construire une bibliothèque de mots-clés personnalisés, réutilisables dans différents tests. De même, l’utilisation de variables facilite l’isolation des jeux de données des tests et simplifie leur gestion à travers l’ensemble du projet.

Il est envisageable d’utiliser les mêmes jeux de données dans plusieurs projets d’automatisation, ou de tirer parti des efforts investis dans la création de mots-clés pour les réutiliser dans d’autres projets, évitant ainsi de repartir de zéro. Cette réutilisation est rendue possible grâce aux fichiers Resources, qui permettent de créer des fichiers composés uniquement de variables, uniquement de mots-clés, ou de combiner les deux, afin de les importer dans n’importe quel projet Robot Framework. Un fichier Resource ne contient pas de section Test Cases.

Il n’existe pas de bouton dédié, comme pour les autres éléments créés précédemment, permettant de créer un fichier Resource directement depuis l’interface...

Résumé

Ce chapitre présente les concepts essentiels pour concevoir des tests automatisés avec Robot Framework. Il commence par expliquer la structure d’un projet et ses composants principaux. Ensuite, il explore les deux méthodes d’écriture des tests avec l’éditeur RIDE : via l’interface graphique et par l’édition textuelle.

La section consacrée aux bibliothèques de Robot Framework explique comment installer, intégrer et utiliser diverses bibliothèques, internes et externes, dans un projet Robot Framework. La conception des tests est ensuite abordée, en montrant comment un test automatisé s’appuie fortement sur un test manuel bien conçu, avant d’être automatisé.

La partie sur la localisation des éléments couvre différentes méthodes pour identifier les éléments de l’interface, avec un accent particulier sur l’utilisation des XPath, assurant une localisation précise et robuste. La création de mots-clés y est aussi abordée, mettant en avant leur rôle important pour améliorer la réutilisabilité et la lisibilité des tests en encapsulant des actions répétitives dans des mots-clés personnalisés.

Enfin, l’utilisation des variables est présentée en détaillant...