Qu'est-ce que le Selenium? Tutoriel d'introduction

⚡ Résumé intelligent

Selenium est un framework de test automatisé gratuit et open source conçu pour valider les applications web sur différents navigateurs et plateformes, utilisant plusieurs langages de programmation. Il permet une automatisation des tests robuste, efficace et évolutive, adaptée aux pratiques d'assurance qualité modernes.

  • Principe clé : Selenium facilite la validation automatisée des applications Web sur divers navigateurs et systèmes d'exploitation, prenant en charge des langages comme Java, C#, Pythonet plus encore.
  • Structure de la suite d'outils : Selenium Il comprend quatre composants principaux — IDE, Remote Control, WebDriver et Grid — chacun répondant à des besoins d'automatisation distincts.
  • IDE et prototypeping: Selenium IDE est une extension de navigateur permettant la création rapide de cas et de prototypes.pingmais il est surtout adapté aux scénarios de test simples.
  • Évolution de la télécommande : Selenium RC, désormais en mode maintenance, a été le premier framework permettant d'exécuter des scripts de test dans plusieurs langages, résolvant ainsi les restrictions liées aux politiques des navigateurs.
  • Implémentation de WebDriver : WebDriver communique directement avec les navigateurs, offrant un contrôle au niveau du système d'exploitation et une stabilité supérieure pour l'automatisation complexe.
  • Grille pour le parallélisme : Selenium Grid permet l'exécution parallèle des tests sur plusieurs machines et navigateurs, réduisant considérablement la durée du cycle de test.
  • Compatibilité multiplateforme et navigateurs : Selenium Il prend en charge un large éventail de navigateurs et de systèmes d'exploitation, offrant une flexibilité inégalée pour l'assurance qualité Web.
  • Impact dans le monde réel : Les équipes utilisent Selenium pour accélérer les cycles de publication, réduire les tests manuels et garantir une expérience utilisateur cohérente sur tous les navigateurs, avec des résultats éprouvés dans les domaines du SaaS, de l'intégration continue/déploiement continu et de la livraison de fonctionnalités.

qu'est-ce que le sélénium

Qu'est-ce que le Selenium?

Selenium est un framework de test automatisé gratuit (open source) utilisé pour valider les applications Web sur différents navigateurs et plates-formes. Vous pouvez utiliser plusieurs langages de programmation comme Java, C#, Python, etc. pour créer Selenium Testez les scripts. Tests effectués à l'aide du Selenium L'outil de test est généralement appelé Selenium Tests.

Perspectives d'experts

Évitez d'utiliser des délais de mise en veille fixes dans vos tests. Privilégiez plutôt des temps d'attente explicites (comme WebDriverWait) pour le chargement des éléments. Vos scripts seront ainsi plus fiables et plus rapides, car ils s'adapteront dynamiquement aux conditions réelles de la page – une bonne pratique essentielle pour les étudiants du monde entier, à commencer par Selenium. »

— Himanshu Sheth, Selenium Expert

👉 Inscrivez-vous gratuitement en direct Selenium Projet de test

Selenium Suite d'outils

Selenium Le logiciel n'est pas simplement un outil unique mais une suite de logiciels, chaque élément répondant à des besoins différents. Selenium Besoins en matière de tests d’assurance qualité d’une organisation. Voici la liste des outils

  • Selenium Environnement de développement intégré (IDE)
  • Selenium Télécommande (RC)
  • pilote web
  • Selenium Grille

Selenium Suite d'outils

À l'heure actuelle, Selenium RC et WebDriver sont fusionnés en un seul framework pour former Selenium 2. Selenium 1, d'ailleurs, fait référence à Selenium RC.

Tutoriel vidéo Selenium

Cliquez à nouveau ici si la vidéo n'est pas accessible

Qui a développé Selenium?

Depuis que Selenium est une collection de différents outils, il a également eu différents développeurs. Vous trouverez ci-dessous les personnes clés qui ont apporté des contributions notables au Selenium Projet

Développé Selenium

Principalement, Selenium a été élaboré créé par Jason Huggins en 2004Ingénieur chez ThoughtWorks, il travaillait sur une application web nécessitant des tests fréquents. Constatant que les tests manuels répétitifs de leur application devenaient de plus en plus inefficaces, il a créé un outil de test automatisé. Javascénario programme qui contrôlerait automatiquement les actions du navigateur. Il a nommé ce programme le "JavaScriptTestRunner."

Voyant le potentiel de cette idée pour aider à automatiser d'autres applications Web, il a créé JavaScriptRunner, logiciel libre, a ensuite été renommé Selenium Core. Pour ceux qui souhaitent explorer d'autres options de test d'applications Web, jetez un œil à celles-ci. Selenium des alternatives.

Le problème de la politique de même origine

La politique de même origine interdit JavaCode de script accédant à des éléments d'un domaine différent de celui où il a été lancé. Par exemple, le code HTML de www.google.com utilise un JavaLe script « randomScript.js » est soumis à la politique d'origine identique, qui l'autorise uniquement à accéder aux pages de google.com, telles que google.com/mail, google.com/login ou google.com/signup. Il ne peut en revanche pas accéder aux pages d'autres sites, comme yahoo.com/search ou guru99.com, car ces derniers appartiennent à des domaines différents.

Le problème de la politique de même origine

C’est la raison pour laquelle, avant Selenium RC, des testeurs sont nécessaires pour installer des copies locales des deux Selenium Noyau (un JavaLe programme de script et le serveur web hébergeant l'application web testée appartiennent donc au même domaine.

La naissance de Selenium Télécommande (Selenium RC)

Paul Hammant

Malheureusement, les testeurs utilisant Selenium Core a dû installer l'ensemble de l'application testée ainsi que le serveur Web sur ses propres ordinateurs locaux en raison des restrictions imposées par le politique d'origine identiqueUn autre ingénieur de ThoughtWorks, Paul Hammant, a décidé de créer un serveur qui agirait comme un proxy HTTP pour « tromper » le navigateur et lui faire croire que Selenium Core et l'application Web testée proviennent du même domaine. Ce système est devenu connu sous le nom de Selenium Contrôle à distance or Selenium 1.

La naissance de Selenium Grille

Patrick Lightbody

Selenium La grille a été développée par Patrick Lightbody pour répondre au besoin de minimiser autant que possible les temps d'exécution des tests. Il a initialement appelé le système « Questions-réponses hébergées. » Il était capable de capturer des captures d'écran du navigateur à des étapes importantes, et aussi de envoi Selenium commandes à différentes machines simultanément.

La naissance de Selenium IDE

Shinya Kasatani

Shinya Kasatani du Japon a créé Selenium IDE Firefox et une extension Chrome permettant d'automatiser le navigateur grâce à une fonction d'enregistrement et de lecture. Il a eu cette idée pour accélérer encore la création de cas de test. Il a fait un don. Selenium IDE au Selenium Projet en 2006.

Naissance de WebDriver

Simon Stewart

Simon Stewart créé WebDriver vers 2006 lorsque les navigateurs et les applications Web devenaient plus puissants et plus restrictifs avec JavaProgrammes de script comme Selenium Coeur. Il s'agissait du premier framework de test multiplateforme capable de contrôler le navigateur au niveau du système d'exploitation.

La naissance de Selenium 2

In 2008, la totalité Selenium L'équipe a décidé de fusionner WebDriver et Selenium RC pour former un outil plus puissant appelé Selenium 2(la prise en charge WebDriver étant le noyau. Actuellement, Selenium Le système RC est toujours en développement, mais uniquement en mode maintenance. La plupart des Selenium Les efforts du projet se concentrent désormais sur Selenium 2.

Alors, pourquoi ce nom Selenium?

Le nom Selenium vient d'une blague que Jason a racontée une fois à son équipe. Pendant Seleniumle développement, un autre tests automatisés Le framework était populairement fabriqué par la société appelée Mercury Apprentissage (oui, l'entreprise qui a fabriqué à l'origine QTP (avant son rachat par HP). Depuis Selenium est un antidote bien connu contre Mercury empoisonnement, Jason a suggéré ce nom et ses coéquipiers l'ont pris. C’est ainsi que nous avons pu appeler ce cadre jusqu’à présent.

Pourquoi le nom Selenium

Qu'est-ce que le Selenium IDE?

Selenium L'environnement de développement intégré (IDE) est le cadre le plus simple dans le Selenium suite et est le plus simple à apprendre. C’est une nécessité Chrome et Firefox plug-in que vous pouvez installer aussi facilement qu’avec d’autres plugins. Cependant, en raison de sa simplicité, Selenium L'IDE ne doit être utilisé que comme un prototypeping outil. Si vous souhaitez créer des cas de test plus avancés, vous devrez utiliser soit Selenium RC ou WebDriver.

Selenium IDE

Qu'est-ce que le Selenium Télécommande (Selenium RC) ?

Selenium RC était le cadre de test phare dans le trou Selenium projet depuis longtemps. C'est le premier automatisé test Web outil qui permet aux utilisateurs d'utiliser un langage de programmation qu'ils préfèrent. Depuis la version 2.25.0, RC peut prendre en charge les langages de programmation suivants :

Selenium Télécommande (Selenium RC)

Qu'est-ce que WebDriver ?

Le WebDriver s'avère meilleur que Selenium IDE et Selenium RC sous de nombreux aspects. Il implémente une approche plus moderne et stable dans l'automatisation des actions du navigateur. WebDriver, contrairement à Selenium RC, ne s'appuie pas sur JavaScénario pour Selenium Tests d'automatisation. Il contrôle le navigateur en communiquant directement avec lui.

Les langues prises en charge sont les mêmes que celles de Selenium RC.

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Ruby

Pilote Web

Qu'est-ce que le Selenium Grille?

Selenium La grille est un outil utilisé avec Selenium RC à courir tests parallèles sur différentes machines et différents navigateurs en même temps. L'exécution parallèle signifie exécuter plusieurs tests à la fois.

Caractéristiques :

  • Permet réalisation simultanée de tests in plusieurs navigateurs et environnements.
  • Gain de temps énormément.
  • Utilise le hub-et-nœuds concept. Le hub agit comme une source centrale de Selenium commandes à chaque nœud qui y est connecté.

Selenium Prise en charge du navigateur et de l'environnement

En raison de leurs différences architecturales, Selenium SDI, Selenium RC et WebDriver prennent en charge différents ensembles de navigateurs et d'environnements d'exploitation.

  Selenium IDE pilote web
Support du navigateur Mozilla Firefox et Chrome Google Chrome 12
Firefox
Internet Explorer 7+ et Edge
Safari,
HtmlUnit et PhantomUnit
Operating système Windows, Mac OS X, Linux Tous les systèmes d'exploitation sur lesquels les navigateurs ci-dessus peuvent fonctionner.

À noter: Opera Le pilote ne fonctionne plus

Comment choisir le bon Selenium Un outil adapté à vos besoins

Outil Pourquoi choisir?
Selenium IDE
  • Pour en savoir plus sur les concepts des tests automatisés et Selenium, comprenant:
  • Commandes Selenese telles que type, open, clickAndWait, assert, verify, etc.
  • Localisateurs tels que l'identifiant, le nom, XPath, le sélecteur CSS, etc.
  • Exécution personnalisée JavaCode de script utilisant runScript
  • Exportation de cas de tests sous différents formats.
  • Créer des tests avec peu ou pas de connaissances préalables en programmation.
  • Pour créer des cas de test simples et des suites de tests que vous pourrez exporter ultérieurement vers RC ou WebDriver.
  • Pour tester une application Web par rapport à Firefox et Chrome uniquement.
Selenium RC
  • Concevoir un test en utilisant un langage plus expressif que Selenese
  • Pour exécuter votre test sur différents navigateurs (sauf HtmlUnit) sur différents systèmes d'exploitation.
  • Pour déployer vos tests sur plusieurs environnements à l'aide Selenium Grille
  • Pour tester votre application avec un nouveau navigateur prenant en charge JavaScénario.
  • Pour tester des applications Web avec des scénarios complexes basés sur AJAX.
pilote web
  • Utiliser un certain langage de programmation dans la conception de votre scénario de test.
  • Pour tester des applications riches en fonctionnalités basées sur AJAX.
  • Pour exécuter des tests sur le navigateur HtmlUnit.
  • Pour créer des résultats de tests personnalisés.
Selenium Grille
  • Pour exécuter votre Selenium Scripts RC dans plusieurs navigateurs et systèmes d'exploitation simultanément.
  • Pour exécuter une suite de tests massive qui doit être terminée dans les plus brefs délais.

Études de cas réels

Étude de cas 1 : Compatibilité entre navigateurs pour le tableau de bord SaaS

Scénario

Une société de logiciels en tant que service se préparait à publier un tableau de bord d'analyse qui devait fonctionner de manière cohérente sur les navigateurs modernes (Chrome, Firefox, Edge, Safari).

Challenge

Les tests manuels sur chaque navigateur prenaient du temps, étaient sujets aux erreurs et ne pouvaient pas suivre le rythme des itérations de développement rapides.

Solution avec Selenium

Un ingénieur QA a créé un Selenium Grille configuré pour exécuter simultanément la même suite de tests sur plusieurs navigateurs et systèmes d'exploitation. Les tests ont été créés en Python grâce à Selenium WebDriver pour des actions telles que la connexion, le filtrage des graphiques et l'exportation de données.

Résultat

  • Durée de régression réduite de 80 %.
  • J'ai découvert très tôt des bugs de rendu spécifiques au navigateur (par exemple, des graphiques mal alignés dans IE).
  • Nous avons maintenu une expérience utilisateur cohérente pour le tableau de bord sur l'ensemble des navigateurs, sans intervention manuelle supplémentaire.

⚙️ Étude de cas 2 : Intégration CI/CD pour application Web via Selenium + TestNG

Scénario

Une entreprise de développement web de taille moyenne s'appuie sur un pipeline CI/CD utilisant JenkinsIls devaient s'assurer que les parcours utilisateurs principaux fonctionnaient correctement après chaque modification du code.

Challenge

Les nouveaux déploiements perturbaient parfois les flux utilisateurs (connexion, soumission de formulaires, etc.).ping Détection jusqu'aux tests manuels de fin de journée.

Solution avec Selenium

Un testeur a implémenté un Java-Base Selenium Suite WebDriver intégrée à TestNGLes tests portaient sur l'authentification, les mises à jour de profil et les fonctionnalités de recherche. Ils ont été exécutés sur chaque appareil. Jenkins construction, en tirant parti de l'exécution parallèle et de la paramétrisation du navigateur.

Résultat

  • Retour d'information rapide obtenu : les flux interrompus ont été signalés immédiatement.
  • Réduction des bugs post-déploiement de plus de 60 %.
  • A permis aux développeurs de résoudre les problèmes avant qu'ils n'atteignent l'assurance qualité.

Étude de cas 3 : Accélération du lancement de fonctionnalités pour un agrégateur de voyages

Scénario

Une plateforme d'agrégation de voyages devait lancer une fonctionnalité de réservation de vols repensée. Des tests de régression manuels sur plus de 10 pages ont pris des jours et ont bloqué le lancement.

Challenge

La pression pour réduire les délais de mise sur le marché ne pouvait pas dépasser les cycles de tests manuels, risquant ainsi des retards ou une baisse de la qualité.

Solution avec Selenium & Modèle d'objet de page

Un responsable de l'automatisation de l'assurance qualité a introduit une structure de modèle d'objet de page (POM) en C#. Selenium Les scripts WebDriver encapsulaient les éléments et actions de la page (recherche de vols, application de filtres et gestion des paiements). Des tests automatisés étaient exécutés chaque nuit sur GitLab CI.

Résultat

  • Le temps de test est passé de 3 jours à seulement 4 heures.
  • La réutilisation des scripts sur plusieurs fonctionnalités réduit l'effort de création de scripts de 50 %.
  • La confiance a augmenté : la version a été livrée dans les délais avec un minimum de rapports de bugs.

Commun Selenium Défis (et correctifs)

Même si Selenium Bien que puissant, ce logiciel de test présente souvent des défis qui peuvent affecter la fiabilité et la rapidité. Voici quelques problèmes courants et comment les résoudre :

  1. Tests peu fiables :
    Les tests peuvent échouer de manière aléatoire en raison de problèmes de synchronisation ou de réseau.
    Correction: Utilisez des attentes explicites et des localisateurs stables ; évitez Thread.sleep().
  2. Éléments Web dynamiques :
    La modification des identifiants ou des chemins XPath des éléments provoque des erreurs « élément introuvable ».
    Correction: Utilisez des XPath relatifs, des sélecteurs CSS ou la gestion dynamique des attributs.
  3. SyncProblèmes d'échographie :
    Le chargement des éléments est plus lent que l'exécution du script.
    Correction: Implémentez WebDriverWait avec les conditions attendues.
  4. Incohérences entre navigateurs :
    Les tests se comportent différemment sur Chrome, Firefox, ou Edge.
    Correction: Exécuter des tests sur Selenium Plateformes de grille ou de cloud pour la validation multi-navigateurs.
  5. Gestion des fenêtres contextuelles et des alertes :
    Des fenêtres contextuelles inattendues peuvent interrompre le déroulement des tests.
    Correction: Utilisez le SeleniumUtilisez l'interface d'alerte ou des blocs try-catch pour les gérer correctement.
  6. Frais généraux de maintenance des tests :
    Les modifications fréquentes de l'interface utilisateur rendent les tests fragiles.
    Correction: Adoptez le modèle Page Object (POM) et le contrôle de version pour faciliter les mises à jour.
  7. Défis d'intégration :
    Les pipelines CI/CD peuvent échouer en raison de problèmes de pilotes.
    Correction: Utilisez le Selenium Directeur (Selenium 4+) ou WebDriver Manager pour gérer automatiquement les pilotes.

En bref: pont Selenium Les problèmes proviennent d'une mauvaise synchronisation ou de localisateurs fragiles ; ces deux problèmes peuvent être résolus grâce à des temps d'attente plus intelligents, une conception modulaire et une maintenance continue.

FAQ:

Selenium est un framework d'automatisation open source utilisé pour tester les applications web sur différents navigateurs et plateformes. Il permet aux testeurs de simuler les interactions utilisateur telles que les clics, les soumissions de formulaires et la navigation à l'aide de divers langages de programmation.

Selenium Il est principalement utilisé pour automatiser les tests basés sur navigateur. Il permet de garantir le bon fonctionnement des applications web sur différents navigateurs, prend en charge les tests de régression et fonctionnels, et s'intègre facilement aux pipelines CI/CD pour les tests continus.

Selenium comprend quatre composantes principales : Selenium IDE (outil d'enregistrement/lecture), Selenium RC (obsolète), Selenium pilote web (API d'automatisation moderne), et Selenium Grille (pour l'exécution parallèle de tests multi-navigateurs).

Les quatre types sont : Selenium IDE pour l'enregistrement des tests, Selenium RC pour l'automatisation héritée, Selenium pilote web pour un contrôle direct du navigateur, et Selenium Grille pour des tests distribués et parallèles sur plusieurs navigateurs.

Selenium WebDriver est le composant principal qui interagit directement avec les navigateurs via des API natives. Il permet aux développeurs d'écrire des scripts d'automatisation robustes et multiplateformes dans des langages tels que… Java, Pythonet C#, sans dépendre de JavaScénario.

Selenium IDE Il est facile à utiliser pour les débutants et offre des fonctionnalités d'enregistrement et de lecture via des extensions de navigateur. pilote web, en revanche, est basé sur du code, prend en charge plusieurs langages et fournit une automatisation de navigateur avancée et évolutive adaptée aux frameworks de test du monde réel.

Résumez cet article avec :