Vous êtes sur la page 1sur 19

Test fonctionnel avec Selenium

Qu'est-ce que le test fonctionnel ?


Le test fonctionnel garantit le fonctionnement d'un logiciel en vérifiant que toutes les fonctionnalités répondent aux spécifications et fonctionnent
correctement. Il s'agit d'une technique de test qui simule l'interaction de l'utilisateur avec l'application.

Testing types Test d'automatisation Intégration agile

Les types de tests fonctionnels incluent les tests La création de scripts d'automatisation facilite Le test fonctionnel est un élément essentiel de la
unitaires, d'intégration et système. les tests de régression. méthodologie Agile Scrum.
Concepts clés des tests fonctionnels

1 Cas de test 2 Scénarios de test


Un cas de test représente une séquence Les scénarios de test regroupent plusieurs cas
d'étapes spécifiques à suivre pour vérifier une de test pour couvrir des parcours d'utilisation
fonctionnalité donnée de l'application. plus complexes dans l'application

Exigences fonctionnelles 4 Couverture des


3 fonctionnalités
Les exigences fonctionnelles définissent les
L’objectif des tests fonctionnels est de couvrir
comportements attendus de l'application.
toutes les fonctionnalités de l'application, en
s'assurant qu'elles fonctionnent correctement
et qu'elles produisent les résultats attendus.
AVANTAGES DE L'AUTOMATISATION DES TESTS FONCTIONNELS

Réduction des coûts En optimisant l'utilisation des ressources et en diminuant les besoins
en main-d'œuvre pour l'exécution manuelle des tests.

Gain de temps En exécutant les tests de manière rapide et efficace, ce qui permet
aux équipes de se concentrer davantage sur d'autres tâches critiques.

Amélioration de l'efficacité En réduisant les délais d'exécution, en augmentant la couverture des


tests

Détection précoce des problèmes En identifiant les erreurs et les anomalies dès les premières étapes
du développement

Amélioration de la couverture des tests En exécutant un large éventail de scénarios et de cas de test, ce qui
garantit une vérification exhaustive des fonctionnalités du système
et une meilleure détection des éventuels problèmes.
Existant d’outils pour les tests fonctionnels

Cypress Appium
Cypress est un outil d'automatisation Appium est un outil open source
des tests end-to-end pour les d'automatisation des tests pour les
applications web. applications mobiles iOS et Android.

Postman Robot Framework


Postman est un outil largement utilisé C’est un framework de test générique
pour l'automatisation des tests d'API. et extensible qui prend en charge
l'automatisation des tests.
Présentation de Sélénium
Définition Historique
Sélénium est un outil de test open-source utilisé pour automatiser Sélénium a été créé en 2004 par Jason Huggins et a connu
les tests fonctionnels sur des applications web. Il est compatible plusieurs évolutions au fil des ans. SELENIUM a connu plusieurs
avec une variété de navigateurs web et de langages de évolutions et mises à jour et aujourd'hui, il est devenu la norme de
programmation. Les tests se font en simulant l'interaction de facto pour l'automatisation des tests fonctionnels.
l'utilisateur avec l'application.
Pourquoi utiliser Sélénium ?
Sélénium est un outil open source pour les tests d'automatisation, facile à utiliser, compatible avec plusieurs langages de programmation et plusieurs
navigateurs. Il est idéal pour les tests à grande échelle grâce à sa fiabilité et sa robustesse.

Compatibilité Intégration Flexibilité

Selenium prend en charge les L'outil s'intègre avec plusieurs autres Ce framework permet la création de
navigateurs tels que Chrome, Firefox, IE, outils pour la gestion de tests tels que scripts de test pour les applications web.
Safari, etc. JUnit, TestNG, Maven, etc.

Facilité d'utilisation

Selenium est facile à utiliser même pour les développeurs débutants.


Les différents composants de Selenium

1 Selenium IDE

Un environnement de développement intégré


Selenium WebDriver 2 pour l'écriture de scripts de tests

Un outil pour l'automatisation des tests


fonctionnels 3 Selenium Grid

un outil pour l'exécution de tests sur plusieurs


machines en parallèle
Installation et Configuration de Sélénium
La manière la plus simple d'installer Sélénium est d'utiliser les outils de gestion de dépendances tels que Maven (Java), pip (Python) ou gem
(Ruby). SELENIUM prend en charge plusieurs langages de programmation, notamment Java, Python, C#, Ruby, etc.
Sélection de navigateurs et plates-formes pour les tests

L'application peut être exécutée sur différentes plates-formes et navigateurs. Il est essentiel de sélectionner le navigateur et la plate-forme en fonction
de la demande de l'entreprise et de l'utilisateur final, pour assurer une couverture de test complète.

Navigateurs populaires Internet Explorer, Google Chrome, Firefox, Safari, Edge

Plates-formes principales Windows, Linux, MacOS

Applications mobiles IOS, Android

Environnement de développement intégré (IDE) Eclipse, IntelliJ IDEA, Visual Studio Code, PyCharm
CONFIGURATION DES NAVIGATEURS POUR SELENIUM

CHROMEDRIVER GECKODRIVER AUTRES NAVIGATEURS

C'est le principal composant de C'est le principal composant de Pour les autres navigateurs pris en
SELENIUM utilisé par Chome pour SELENIUM utilisé par Mozilla Firefox charge par SELENIUM, tels que
interagir avec les éléments d'une pour interagir avec les éléments d'une Microsoft Edge ou Safari, vous devrez
application web et automatiser les tests. application web et automatiser les tests. télécharger et configurer les pilotes
spécifiques à ces navigateurs. Les
instructions détaillées sont disponibles
sur les sites officiels de chaque pilote.
CREATION DE SCRIPTS DE TESTS ROBUSTES AVEC SELENIUM
UTILISATION DES SELECTEURS POUR IDENTIFIER LES ELEMENTS DE PAGE :

POUR IDENTIFIER LES ELEMENTS DE PAGE ACTIONS DE LA SOURIS ET DU CLAVIER

Sélecteur par ID : driver.find_element_by_id() Clics de souris: driver.click()

Par nom : driver.find_element_by_name Clics droit avec la souris: driver.context_click()

Par classe: driver.find_element_by_class_name Double clics : driver.double_click()

Par balise: driver.find_element_by_tag_name Touches spéciales: send_keys(Keys.ENTER

Par XPath : driver.find_element_by_xpath Défilement de la page: driver.execute_script()

Par rélecteur CSS: driver.find_element_by_css_selector() Saisie de texte avec le clavier: driver.send_keys()


GESTION DES FENETRES ET DES ONGLETS DE NAVIGATEUR

Ouvrir une nouvelle fenêtre driver.execute_script("window.open(​'url');")

Basculer vers une fenêtre spécifique window_handles = driver.window_handles


driver.switch_to.window(window_handles[1])

Fermer une fenêtre driver.close()

Ouvrir un nouvel onglet driver.find_element_by_tag_name('body').send_keys(Keys.CONTR


OL + 't')

Basculer vers un onglet spécifique driver.switch_to.window(driver.window_handles[1])

Fermer un onglet driver.find_element_by_tag_name('body').send_keys(Keys.CONTR


OL + 'w')
UTILISATION DES FRAMEWORKS DE TEST

Les frameworks de test jouent un rôle crucial dans l'automatisation des tests fonctionnels, offrant une structure et des fonctionnalités avancées pour écrire et
exécuter des tests de manière efficace.

Pytest JUnit TestNG

Pytest gère les tests d'intégration pour le JUnit est un framework de test unitaire largement TestNG est un framework de test plus récent et
développement Python. utilisé pour les tests fonctionnels avec plus avancé, offrant des fonctionnalités
SELENIUM WebDriver supplémentaires par rapport à JUnit.
GESTION DES RAPPORTS ET DE LA GENERATION DE LOGS

La gestion des rapports et de la génération de logs joue un rôle crucial dans l'automatisation des tests fonctionnels avec SELENIUM.

Les rapports de test fournissent des informations Les captures d'écran permettent de capturer Les logs permettent de capturer et d'enregistrer les
détaillées sur l'exécution des tests, les résultats visuellement l'état de l'application au moment de informations pertinentes pendant l'exécution des
obtenus et les éventuelles erreurs rencontrées. l'exécution des tests, ce qui peut être utile pour le tests, ce qui facilite le débogage, la surveillance et
débogage, la documentation et la communication l'analyse des résultats.
des résultats des tests.
Différence entre test d'intégration et test fonctionnel

Tests d'intégration Tests fonctionnels


Les tests d'intégration vérifient les interfaces, les dépendances et les Les tests fonctionnels vérifient les entrées, les sorties et le
interactions entre les modules, assure la communication et comportement du logiciel en utilisant des données d'entrée
l'interaction entre les différents composants du système. spécifiques. Ils vérifient les fonctionnalités spécifiques d'un logiciel.
Meilleures pratiques de tests d'automatisation
avec Selenium
Pour réussir des tests d'automatisation avec Selenium, il est important de suivre les meilleures
pratiques. Il est recommandé de :

1 Créer de petites fonctions de test 2 Créer des scripts de test clairs

Il est plus facile de maintenir et de dépanner Créer des scripts compréhensibles pour une
les fonctions de test plus petites. meilleure collaboration au sein de l'équipe.

3 Ajouter des retards 4 Utiliser des sélécteurs d'éléments stables

Pour éviter les faux résultats, il est


recommandé d'ajouter des retards pour Utilisez des sélecteurs de manière stable pour
permettre aux éléments de charger. identifier le bon élément sans être dépendant
de la disposition aléatoire des éléments sur la
page.
Conclusion
L'automatisation des tests fonctionnels est une pratique essentielle pour garantir la qualité et la fiabilité des applications logicielles. Elle permet de
réduire les efforts manuels, d'améliorer la couverture des tests, d'assurer la cohérence des résultats et de réaliser des économies de coûts. Grâce à
l'automatisation des tests fonctionnels, les équipes de développement peuvent accélérer les cycles de développement, réduire les risques d'erreurs
et offrir une expérience utilisateur optimale. Les tests automatisés peuvent être exécutés de manière répétée, précise et cohérente, ce qui garantit
une évaluation objective des résultats.

Vous aimerez peut-être aussi