Logo Parasoft Rechercher

Découvrez GoogleTest certifié TÜV avec Agentic AI pour les tests C/C++ !
Plus de détails »

Blog Parasoft

Tutoriel d'automatisation du sélénium pour les débutants

By Wilhelm Haaker • 21 février 2024 • 9 min de lecture
21 février 2024 | 9 min de lecture
By Wilhelm Haaker
Texte à gauche : Tutoriel d'automatisation Selenium pour les débutants. À droite, une image 3D d’un rouage multicouche aux couleurs irisées représentant l’automatisation des tests.

Si vous recherchez une feuille de triche Selenium pour vous lancer dans les tests Web Selenium, voici une ventilation riche en expérience de la façon de démarrer avec Selenium.

Au cours de mon expérience d'apprentissage Selenium, j'ai découvert quelques trucs et astuces pour commencer. Voici quelques ressources intéressantes qui pourraient également vous aider.

J'ai appris à utiliser Selenium grâce à Parasoft Selenic , le produit de Parasoft destiné aux testeurs Selenium . J'avais déjà une certaine expérience des tests web, du développement Java et de JUnit, mais je n'avais jamais utilisé Selenium auparavant. Cet article présente quelques ressources qui m'ont été utiles pour me familiariser avec cet outil. Tout d'abord, un bref aperçu de Selenium.

Qu'est-ce que le sélénium ?

Selenium est un framework de test open source conçu spécifiquement pour valider les applications web sur différentes plateformes et navigateurs. Cet outil de test d'automatisation se distingue par sa compatibilité avec de nombreux systèmes d'exploitation, navigateurs, langages de programmation et frameworks.

Graphique montrant les tests automatisés basés sur le Web Selenium open source dans le centre connectés à plusieurs frameworks, langages de programmation, navigateurs et systèmes d'exploitation

La première chose à faire lorsqu'on apprend Selenium est de bien comprendre la différence entre Selenium IDE et Selenium WebDriver . Je pensais que Selenium IDE, un programme d'enregistrement/lecture avec interface graphique basé sur Selenium WebDriver, serait idéal pour débuter. Mais je me suis vite heurté à des limitations : la lecture échouait à cause de localisateurs incorrects ou manquants. J'ai alors compris que tout testeur Selenium sérieux utilise Selenium WebDriver. Le sort en était jeté : il me fallait me mettre à coder.

Pourquoi Selenium est-il un outil d'automatisation populaire

L'automatisation des tests, dans l'ensemble, offre de nombreux avantages, allant d'une couverture de code accrue à une réduction des délais de mise sur le marché. La popularité de Selenium est probablement liée à la communauté enthousiaste qui l'entoure. C'est relativement facile à apprendre pour les débutants.

Dans les tests d'automatisation, Selenium accélère le processus de test, améliore la précision et permet de tester dans des scénarios qui seraient laborieux s'ils étaient effectués manuellement. Selenium offre aux développeurs la flexibilité de concevoir des cadres d'automatisation personnalisés et prend en charge l'exécution de tests en parallèle pour augmenter la vitesse et l'efficacité des tests.

Premiers pas avec le sélénium

Les bibliothèques Selenium WebDriver sont disponibles pour plusieurs langages, ce qui rend Selenium accessible à un large public. Étant donné que je suis plus à l'aise avec Java, j'ai opté pour ce langage. (Par ailleurs, bien que JUnit ne soit pas indispensable pour les tests Selenium en Java, je ne vois pas pourquoi on s'en priverait, car il offre de nombreuses fonctionnalités spécifiquement conçues pour l'écriture de cas de test en Java .)

Enfin, si j'allais écrire des JUnits, alors je me suis dit que je pourrais aussi bien les écrire dans un IDE. Il existe deux IDE qui sont principalement utilisés dans l'industrie pour Java: Eclipse et IntelliJ. La majeure partie de ma carrière a consisté à utiliser Eclipse, donc je suis resté fidèle à cela.

Ayant pris ces décisions, j'étais prêt à commencer.

Compétences essentielles pour réussir les tests de sélénium

Avant de commencer, assurez-vous de disposer de certaines compétences préalables pour vous familiariser avec les bases de l'automatisation des tests.

Compétences Web

Il est important de maîtriser HTML et CSS. N'ayez pas peur du code source d'un site web et comprenez comment il se traduit en ce qui s'affiche dans votre navigateur. Si HTML vous est totalement étranger, je vous suggère de suivre une formation de base. Voici un excellent site web qui m'a été très utile à mes débuts sur le web :

Outils de développement du navigateur et XPath. Une autre compétence fondamentale consiste à savoir localiser les éléments d'une page. Selenium WebDriver propose plusieurs mécanismes pour cela, que vous découvrirez bientôt. Il est important de maîtriser les outils de développement du navigateur pour localiser les éléments d'une page. Voici un excellent tutoriel pour vous familiariser rapidement avec Chrome :

Compétences de codage

Si vous cherchez à faire la transition vers un rôle d'ingénieur en automatisation des tests, vous devrez développer des compétences en codage. Avant de paniquer, la bonne nouvelle est que l'écriture de code pour automatiser les tests Web dans Selenium est relativement facile. En fait, je pense que Selenium est un excellent moyen d'apprendre le codage; le code que vous allez écrire est étroitement limité, vous êtes donc moins susceptible d'être totalement submergé. Il ne devrait pas être difficile de trouver des didacticiels et des leçons gratuits pour vous familiariser avec la langue de votre choix. Dans le but d'apprendre ce que vous devez savoir sur Selenium, j'ai trouvé un tutoriel fantastique qui couvre Java et Selenium pour un débutant total:

Si vous choisissez Java, je vous recommande également d'apprendre JUnit, qui est un cadre de test populaire pour Java. Voici un excellent tutoriel qui couvre JUnit ET la dernière leçon couvre l'application de JUnit avec les tests Selenium:

Configuration de votre environnement Selenium

Outre le didacticiel de toolsqa, une autre ressource que je me suis retrouvée fréquentée était la suivante:

Ces deux ressources couvriront tous les sujets nécessaires à la configuration de votre environnement avec Eclipse, Java, JUnit 4, Selenium WebDriver et Maven.

… Maven? Qu'est-ce que c'est? Un commentaire que je ferai est que la plupart des didacticiels que j'ai trouvés placent Maven comme sujet avancé plus bas dans la liste. Maven est un outil de construction qui facilite la compilation, le test et le déploiement de code avec toutes les dépendances requises. Comme JUnit, Maven est un autre élément facultatif, mais je veux l'évoquer maintenant car il facilite la configuration de votre projet une fois que vous savez quoi faire. Si vous commencez avec Maven, vous n'aurez pas à penser à convertir votre projet Java en un projet Maven plus tard, commencez simplement avec Maven depuis le début! Le tutoriel que j'ai le plus aimé pour cela était de:

Écrire votre premier script Selenium : un guide étape par étape

Les deux références de didacticiel que j'ai mentionnées font du bon travail en vous guidant dans la création de votre premier script. L'article toolsqa suppose moins de connaissances en codage et le lien softwaretestinghelp.com couvre plus de terrain, mais ils sont tous les deux excellents :

Une fois que vous avez installé votre premier script et que vous êtes au courant de JUnit, la dernière leçon du didacticiel JUnit de toolsqa vous aidera à refactoriser vos scripts initiaux au format JUnit:

Maîtriser le modèle objet de page dans Selenium

Une fois que vous êtes familiarisé avec les bases de Selenium et que vous disposez d'un script qui lit un scénario ou deux dans votre navigateur, vous devriez être prêt à passer au niveau suivant. Le modèle d'objet de page est un moyen d'organiser votre code de test Selenium pour le rendre plus maintenable et réduire le code en double.

Jusqu'à présent, tous mes tests contenaient le code directement dans ma méthode de test. J'ai donc procédé en deux étapes : j'ai d'abord refactorisé mon test existant pour utiliser le modèle Page Object, puis je l'ai refactorisé une seconde fois afin de l'optimiser avec le modèle Page Factory. Ce processus en deux étapes s'est avéré très instructif, et j'imagine combien je le regretterais si j'avais ignoré ces bonnes pratiques et créé des tests à la chaîne. Vous pouvez automatiser ce processus si vous utilisez l'enregistreur intelligent de l' édition gratuite de Parasoft Selenic.

Voici quelques guides que j’ai utilisés pour me renseigner sur le sujet :

Si cela semble être du travail supplémentaire et du code supplémentaire pour le même résultat, vous avez raison. Et si vous n'avez qu'un ou deux tests, c'est peut-être exagéré, mais ce n'est jamais le cas pour un ingénieur en automatisation de tests. Ce modèle finit par prendre tout son sens dans le monde lorsque vous créez une suite de tests de régression robuste de 1 ou 2 tests. La réutilisation du code va vous faire gagner un temps incroyable à long terme.

Stratégies de localisation des éléments dans le sélénium

En expérimentant avec vos scripts Selenium, vous comprendrez vite pourquoi j'ai mentionné la localisation d'éléments sur une page comme une compétence essentielle. Vous utiliserez très souvent les outils de développement de votre navigateur et vous commencerez à vous familiariser avec XPath. Bien qu'il existe de nombreuses façons de localiser des éléments sur une page avec Selenium, XPath est l'une des plus flexibles et puissantes. Si vous ne parvenez pas à identifier un élément de manière unique avec des méthodes simples comme l'utilisation d'un identifiant, d'un nom ou d'un lien, vous devrez vous tourner vers XPath ou les localisateurs CSS. Tout test Selenium un tant soit peu complexe nécessitera l'utilisation ponctuelle d'XPath pour localiser des éléments récalcitrants. Plus vous maîtriserez XPath, plus vous deviendrez un testeur efficace.

Très bien Wilhelm, XPath est génial, pouvez-vous me donner quelque chose de plus que des devoirs ici ? En fait, oui! Il existe également une astucieuse extension Chrome (elle est également disponible pour Firefox) appelée TruePath. Ce plugin fait un travail décent en proposant des listes de XPaths recommandés parmi lesquels vous pouvez copier/coller dans votre code de localisateur Selenium. Ce n'est pas toujours parfait, mais j'ai trouvé utile soit de présenter un XPath relatif que j'ai immédiatement aimé, soit de présenter un XPath relatif qui était suffisamment proche de quelque chose que j'aimais, et je pourrais ensuite l'utiliser comme point de départ pour peaufiner.

Attente intelligente sur AJAX qui utilise jQuery

Une fois que la localisation des éléments sera devenue un réflexe, vous rencontrerez probablement un autre problème courant. L'application web que vous testez utilise des appels AJAX ( JavaScript et XML synchrones ) que le navigateur effectue vers le serveur. Votre script Selenium exécute les actions trop rapidement , ne laissant pas au navigateur le temps de traiter ce trafic asynchrone. Le site e-commerce que je testais présentait ce problème : mon test Selenium cliquait sur « Ajouter au panier » puis sur « Voir le panier » si vite que, lorsqu'il arrivait sur la page du panier, celui-ci était vide ! Je devais indiquer à mon test Selenium d'attendre un délai approprié avant de cliquer sur « Voir le panier », mais comment faire ?

Il y a quelques leçons de base sur Selenium associées aux conditions d'attente que les didacticiels couvrent, mais aucune d'entre elles ne semblait appropriée pour quelque chose d'asynchrone et dynamique comme celui-ci. Comment puis-je prédire le temps qu'il faudra au serveur Web pour répondre? Dois-je surestimer pour être sûr et rendre mon test plus lent que nécessaire? Y a-t-il un meilleur moyen? Il s'avère que oui. De nombreux frameworks Web modernes utilisent aujourd'hui la bibliothèque jQuery pour prendre en charge les appels AJAX qu'ils effectuent vers le serveur principal. Selenium WebDriver me permet d'exécuter JavaScript en tant qu'étape de test, et je peux exécuter du JavaScript qui vérifie l'état de jQuery pour avoir une idée du moment où le navigateur a fini de parler au serveur Web et que je peux continuer. Enterré profondément dans le site Web toolsqa, ne faisant pas partie du didacticiel Selenium, j'ai trouvé ceci:

Pour les débutants, ces informations supplémentaires sont excellentes, mais si vous voulez quelque chose de plus pertinent, voici un article concis sur le même sujet:

Gestion du changement : stratégies pour une automatisation stable du sélénium

Le dernier sujet que je souhaite aborder est un problème récurrent pour tous les testeurs Selenium : la gestion des changements. L’un des inconvénients de l’automatisation des tests web réside dans la fréquence des modifications de l’interface utilisateur et leur impact sur la stabilité des tests automatisés. En tant qu’ingénieur en automatisation des tests, vous vous habituerez rapidement, parfois à contrecœur, à la résolution des problèmes liés à l’échec d’un test et à ses causes :

  • Un problème avec votre test
  • Un problème avec l'environnement
  • Une modification anodine de l'application (pas un bug)
  • Un changement inattendu dans l'application (un vrai bug !)

Attendez-vous à beaucoup de fausses alarmes avec vos tests automatisés échouant non pas parce qu'ils ont trouvé un bogue, mais plutôt parce qu'ils doivent être maintenus ou parce que l'environnement a un problème.

L'une des stratégies pour aider à minimiser ce problème omniprésent que j'ai déjà abordé avec Element Location. Souvent, lorsqu'un test ne parvient pas à localiser un élément, c'est parce qu'il utilise une stratégie de localisation qui n'est plus valide sur le déploiement le plus récent de l'application. La façon dont vous localisez un élément peut être importante ici, alors discutons d'un exemple de la façon d'écrire un localisateur résilient au changement:

Si vous pensez à un XPath absolu vers un élément comme celui-ci:

/ html / body / div [25] / div [2] / div / span / section [2] / div / h2 / p

Boy, tout petit changement dans le HTML va casser cette chose. Si vous construisez un XPath relatif comme ceci:

//p[@id='8232:0′ITED[contains(.,'Guidance for Success ')]

Votre test aura alors plus de chances de réussir. Notez bien l'expression « plus de chances ». Il arrive que l'application évolue tellement qu'il est tout simplement impossible de la tester. Cependant, rédiger des tests plus robustes vous évitera bien des tracas à l'avenir. (Vous pouvez aussi consulter Parasoft Selenic .)

Ce même problème est également présent avec l'attente. De nombreux facteurs peuvent provoquer une instabilité dans l'automatisation de vos tests en raison des conditions d'attente. Utiliser des stratégies comme Smart Waiting sur AJAX L'utilisation de jQuery vous aidera à réduire la probabilité de devoir résoudre un problème avec votre test en raison des conditions d'attente. Sur le sujet, voici un tutoriel utile sur les attentes dans Selenium:

Tout comme pour l'emplacement des éléments, cependant, vous allez parfois être SOL et la maintenance est inévitable.

Tirez parti de Parasoft Selenic pour des tests de sélénium améliorés

À mesure que vous progressez dans votre apprentissage de l'automatisation Selenium, il est essentiel d'explorer des outils capables d'améliorer vos capacités de test et de rationaliser vos flux de travail. Parasoft Selenic se révèle un allié précieux pour les tests Selenium, offrant des fonctionnalités avancées qui peuvent considérablement enrichir votre expérience Selenium.

1. Enregistreur intelligent pour des tests sans effort

Smart Recorder de Parasoft Selenic se distingue par la simplification des tests de l'interface utilisateur Web, permettant aux testeurs débutants et expérimentés de créer des scripts Selenium sans codage approfondi grâce à son interface conviviale. Une organisation efficace des scripts est cruciale pour la maintenabilité et la réduction de la duplication, et Selenic défend cela en tirant parti du modèle d'objet de page (POM). POM structure vos tests pour plus de clarté et de facilité de gestion, tandis que le modèle Page Factory permet la refactorisation et l'optimisation, garantissant ainsi que vos tests restent évolutifs et adaptables.

2. Résoudre les problèmes d'exécution des tests

Parasoft Selenic utilise des heuristiques d'IA pour déterminer si les échecs sont dus à une véritable régression dans l'application. Exécutez vos tests Selenium en séquence ou en parallèle en toute confiance, sachant que la capacité d'auto-réparation de Parasoft Selenic, grâce à ses stratégies améliorées de localisation et de gestion des conditions d'attente, détectera les tests instables, les modifiera en temps réel pendant leur exécution et vous montrera comment elle a assuré leur bon fonctionnement.

3. Testez uniquement le code qui a changé

Au lieu d'exécuter des milliers de tests avant de connaître la qualité de la compilation, Selenic optimise votre suite de tests Selenium pour n'exécuter que les tests nécessaires à la validation des modifications de code entre les compilations. Grâce à ses fonctionnalités intelligentes de sélection de tests, Selenic utilise l'analyse d'impact des tests pour réduire leur temps d'exécution et vous permettre d'obtenir plus rapidement un retour d'information de votre pipeline CI/CD.

4. Intégration avec Maven pour une configuration de projet transparente

Parasoft Selenic facilite la configuration transparente du projet en s'intégrant à Maven, un puissant outil de construction. Maven rationalise la compilation, les tests et le déploiement de votre code ainsi que de ses dépendances. Démarrer votre projet Selenium avec Maven dès le début peut améliorer la gestion de projet et simplifier les tâches futures, garantissant ainsi une expérience de développement et de test fluide.

Que vous vous concentriez sur la création de tests, la gestion d'actions asynchrones ou la garantie de la stabilité des modifications, Parasoft Selenic fournit un ensemble robuste de fonctionnalités pour élever votre automatisation Selenium vers de nouveaux sommets.

Automatisation des tests Selenium : un parcours d'apprentissage et de croissance

L' apprentissage de Selenium m'a permis de mieux comprendre les défis que vous rencontrerez en devenant ingénieur en automatisation des tests. Si vous débutez et que vous vous sentez intimidé, rappelez-vous que c'est plus simple qu'il n'y paraît et que vous deviendrez un expert en tests web automatisés en un rien de temps.

Essayez dès aujourd'hui l' édition gratuite de Selenic si vous êtes prêt à démarrer votre parcours.

Optimisez les tests de l'interface utilisateur Web Selenium avec l'IA et le ML.

Téléchargez Selenic Free Edition