Dans un monde numérique où la qualité logicielle est cruciale, les tests garantissent la robustesse et la fiabilité des applications. Ce support, richement illustré de cas pratiques, est le guide pensé pour les développeurs pour apprendre à écrire et automatiser des tests fonctionnels avec Selenium, le framework Python incontournable en la matière. Le support commence par présenter l'importance des tests et en propose une typologie détaillée pour mieux appréhender les...
Dans un monde numérique où la qualité logicielle est cruciale, les tests garantissent la robustesse et la fiabilité des applications. Ce support, richement illustré de cas pratiques, est le guide pensé pour les développeurs pour apprendre à écrire et automatiser des tests fonctionnels avec Selenium, le framework Python incontournable en la matière.
Le support commence par présenter l'importance des tests et en propose une typologie détaillée pour mieux appréhender les différentes techniques à mettre en œuvre. Il offre également des rappels technologiques indispensables sur la structure d'une application web et sur les bases du langage Python.
Vous plongez ensuite dans le monde des tests unitaires en Python en explorant les assertions, les expressions régulières et les différentes bibliothèques disponibles, avec un focus sur l'utilisation de Pytest pour une meilleure gestion des tests.
Les premières étapes avec Selenium depuis son installation jusqu'à la mise en place des scénarios de tests et à leur exécution sont ensuite détaillées avant de découvrir comment, avec le framework, simuler le comportement des applications dans un navigateur et comment récupérer un élément d’une page HTML. Vous étudiez ensuite le comportement de l’application web en fonction des actions des utilisateurs et la capture de données (Data Capture) qui permet de récupérer et d'extraire des données d’une page web pour vérifier et valider le contenu affiché. Les Waits, mécanismes utilisés pour gérer le temps d’attente des interactions avec les éléments d'une page web pendant l'exécution des tests, sont aussi présentés.
Ce support vous propose également d’appréhender les meilleures pratiques de conception de pages avec Page Object Model et de découvrir comment exécuter vos tests sur plusieurs navigateurs simultanément grâce à Selenium Grid.
En fin de lecture, des chapitres optionnels vous conduisent vers des notions plus avancées liées aux tests de données (Data Driven Test).
6.2 Avec une partie du texte : By.PARTIAL_LINK_TEXT
7. Par le chemin XPATH
7.1 Introduction à la syntaxe XPATH
7.2 XPATH et les navigateurs
7.3 Avec le XPATH : By.XPATH
8. Locators relatifs
8.1 Locator above
8.2 Locator below
8.3 Locator to-left-of
8.4 Locator to-right-of
8.5 Locator near
9. Exercices
9.1 Exercice 1
9.2 Exercice 2
9.3 Exercice 3
9.4 Exercice 4
9.5 Exercice 5
9.6 Exercice 6
9.7 Exercice 7
Les interactions utilisateur
1. Target Object Identification
2. WebElement, le cœur des tests fonctionnels
2.1 Accéder aux propriétés d’un WebElement
2.1.1 Nom de la balise
2.1.2 Texte de la balise
2.1.3 Taille de la balise
2.1.4 Position de la balise
2.1.5 Propriétés d’affichage et de sélection
2.1.6 Propriétés et attributs
2.1.7 Valeur d’une propriété CSS
3. Émulation de la souris
3.1 Méthode click
3.2 ActionChains et WebElements
3.3 Exemple : le survol de la souris
4. Gestion des formulaires HTML et événements clavier
4.1 Simuler une saisie clavier
4.2 Simuler une touche clavier précise
4.3 Simuler l’appui sur une touche
4.4 Simuler le relâchement d’une touche
4.5 Effacer une entrée utilisateur
4.6 Soumettre un formulaire
4.7 Test de la validation d’un formulaire avec JavaScript
5. Exercices
5.1 Exercice 1
5.2 Exercice 2
5.3 Exercice 3
Les captures et validations des données
1. Présentation des data tables
1.1 Balises HTML
1.2 Page HTML de démonstration
2. Table HTML
3. Table dynamique
4. Liste déroulante
4.1 Classe Select
4.2 Liste déroulante simple
4.3 Liste déroulante multiple
5. Drag and drop
6. Exercices
6.1 Exercice 1
6.2 Exercice 2
6.3 Exercice 3
Les waits pour une interaction optimale
1. Latences d’une application Web
2. Implicit waits
3. Excepted conditions
4. Explicit waits
4.1 Avec les excepted conditions
4.2 Avec une custom expected condition
4.3 Avec une lambda
5. Fluent waits
6. Synthèse sur les waits
7. Stratégie de chargement de la page
8. Passons aux vrais tests fonctionnels
8.1 Application multipage
8.1.1 Description de l’application
8.1.2 Tests de l’application
8.2 Application OnePage
8.2.1 Description de l’application
8.2.2 Tests de l’application
9. Exercices
9.1 Exercice 1
9.2 Exercice 2
Le design pattern Page Object Model
1. Vers une meilleure modélisation de nos tests
2. Le design pattern Page Object Model (POM)
2.1 Application multipage
2.2 Application OnePage
3. Exercices
L'exécution sur plusieurs navigateurs simultanément
1. Limite de notre approche actuelle
2. Mise en place et implémentation
3. Exercice
Le design pattern Data Driven Testing
1. Principe et avantages
2. Data Driven Testing avec POM et fichiers
2.1 Fichier JSON, POM et Data Driven Testing
2.2 Fichier CSV, POM et Data Driven Testing
2.3 Fichier XML, POM et Data Driven Testing
2.4 Fichier XLS, POM et Data Driven Testing
3. Data Driven Testing et BD
4. Data Driven Testing sans POM
5. Exercice
Index
Ludivine CREPIN
Docteur en Intelligence Artificielle depuis 2009, Ludivine CREPIN est depuis consultante indépendante pour des entreprises au niveau européen, de la start-up à la multinationale. Forte de son expertise, elle propose à ses clients ses services de conseil, de développement et de recherche appliquée pour tous les types de projets informatiques. Les projets qu’elle mène couvrent toutes les phases de leur développement, de l’écriture du code à la mise en production des applications dont le comportement est garanti entre autres par les tests fonctionnels. Également formatrice, Ludivine fait ici profiter le lecteur de toute sa pédagogie pour la maîtrise des tests fonctionnels avec Selenium.