Qu'est-ce que le sélénium ? Introduction aux tests d'automatisation Selenium

Quel est le sélénium?

Sélénium 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 des scripts de test Selenium. Les tests effectués à l'aide de l'outil de test Selenium sont généralement appelés Test de sélénium.

Suite d'outils Selenium

Le logiciel Selenium n'est pas simplement un outil unique, mais une suite de logiciels, chaque élément répondant aux différents besoins de test d'assurance qualité Selenium d'une organisation. Voici la liste des outils

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

Suite d'outils Selenium

Pour le moment, Selenium RC et WebDriver sont fusionnés en un seul framework pour former Sélénium 2. Soit dit en passant, Selenium 1 fait référence à Selenium RC.

Tutoriel vidéo Sélénium

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

Qui a développé le sélénium ?

Puisque Selenium est un ensemble d’outils différents, il a également eu différents développeurs. Vous trouverez ci-dessous les personnes clés qui ont apporté des contributions notables au projet Selenium.

Sélénium développé

Principalement, le sélénium était créé par Jason Huggins en 2004. Ingénieur chez ThoughtWorks, il travaillait sur une application Web qui nécessitait des tests fréquents. Ayant réalisé que les tests manuels répétitifs de leur application devenaient de plus en plus inefficaces, il a créé un JavaScript 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 rendu JavaScriptRunner open source, qui était later renommé Noyau de sélénium. Pour ceux qui souhaitent explorer d'autres options de test d'applications Web, jetez un œil à celles-ci. Alternatives au sélénium.

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

La politique de même origine interdit au code JavaScript d'accéder aux éléments d'un domaine différent de celui où il a été lancé. Exemple, le code HTML de www.google.com utilise un programme JavaScript « randomScript.js ». La même politique d'origine permettra uniquement à randomScript.js d'accéder aux pages de google.com telles que google.com/mail, google.com/login ou google.com/signup. Cependant, il ne peut pas accéder aux pages de différents sites tels que yahoo.com/search ou guru99.com car elles appartiennent à des domaines différents.

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

C'est la raison pour laquelle avant Selenium RC, les testeurs devaient installer des copies locales de Selenium Core (un programme JavaScript) et du serveur Web contenant l'application Web testée afin qu'ils appartiennent au même domaine.

Naissance de la télécommande Selenium (Selenium RC)

Paul Hammant

Malheureusement; les testeurs utilisant Selenium Core ont dû installer l'ensemble de l'application testée et le serveur Web sur leurs propres ordinateurs locaux en raison des restrictions imposées par le même politique d'origine. Donc un autre ingénieur de ThoughtWork, Paul Hammant, a décidé de créer un serveur qui agira comme un proxy HTTP pour « tromper » le navigateur en lui faisant 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 Télécommande Sélénium or Sélénium 1.

Naissance de la grille de sélénium

Patrick Lightbody

Selenium Grid a été développé par Patrick Lightbody pour répondre au besoin de minimiser autant que possible les temps d’exécution des tests. Il a d’abord qualifié le système de «Assurance qualité hébergée.» Il était capable de capturer des captures d'écran du navigateur lors d'étapes importantes, ainsi que de envoyer des commandes Selenium à différentes machines simultanémentneousuellement.

Naissance de l’IDE ​​Selenium

Shinya Kasatani

Shinya Kasatani du Japon a créé Sélénium IDEun Firefox et une extension Chrome qui peut automatiser le navigateur grâce à une fonction d'enregistrement et de lecture. Il a eu cette idée pour augmenter encore la vitesse de création des cas de test. Il a fait don de Selenium IDE au projet Selenium 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 des programmes JavaScript comme Selenium Core. Il s'agissait du premier framework de test multiplateforme capable de contrôler le navigateur au niveau du système d'exploitation.

Naissance de Sélénium 2

In 2008, toute l'équipe Selenium a décidé de fusionner WebDriver et Selenium RC pour former un outil plus puissant appelé Sélénium 2, avec WebDriver étant le noyau. Actuellement, Selenium RC est toujours en cours de développement mais uniquement en mode maintenance. La plupart des efforts du projet Selenium se concentrent désormais sur Selenium 2.

Alors, pourquoi le nom Sélénium ?

Le nom Sélénium vient d'une blague que Jason a racontée une fois à son équipe. Durant le développement de Selenium, un autre tests automatisés Le cadre était populaire créé par la société appelée Mercure Interactif (oui, la société qui a initialement créé QTP avant son acquisition par HP). Puisque le sélénium est un antidote bien connu contre l’empoisonnement au mercure, 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 Sélénium

Qu’est-ce que l’IDE ​​Sélénium ?

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

Sélénium IDE

Qu'est-ce que la télécommande Selenium (Selenium RC) ?

Selenium RC était le cadre de test phare de l'ensemble du projet Selenium 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 éléments suivantswing langages de programmation:

Télécommande Sélénium (Sélénium RC)

Qu'est-ce que WebDriver ?

Le WebDriver s'avère meilleur que Sélénium IDE et Sélénium 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 JavaScript pour les tests d'automatisation Selenium. 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
  • Rubi

Pilote Web

Qu'est-ce que Selenium Grid?

Selenium Grid est un outil utilisé avec Selenium RC pour exécuter 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 :

  • Activer simultaneonous effectuons des 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 commandes Selenium pour chaque nœud qui y est connecté.

Prise en charge du navigateur et de l'environnement Selenium

À cause de leur archidifférences structurelles, Selenium IDE, Selenium RC et WebDriver prennent en charge différents ensembles de navigateurs et d'environnements d'exploitation.

  Sélénium IDE pilote web
Support du navigateur Mozilla Firefox et Chrome

GoogleChrome 12+

Firefox

Internet Explorer 7+ et Edge

Safari, 

HtmlUnit et PhantomUnit

Système d'exploitation Windows, Mac OS X, Linux Tous les systèmes d'exploitation sur lesquels les navigateurs ci-dessus peuvent fonctionner.

Remarque: Le pilote Opera ne fonctionne plus

Comment choisir le bon outil Selenium pour vos besoins

Outil Pourquoi choisir?
Sélénium IDE
  • Pour en savoir plus sur les concepts sur les tests automatisés et Selenium, notamment :
  • 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 de code JavaScript personnalisé à l'aide de 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 pouvez exporter later vers RC ou WebDriver.
  • Pour tester une application Web par rapport à Firefox et Chrome uniquement.
Sélénium 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 de Selenium Grid.
  • Pour tester votre application sur un nouveau navigateur prenant en charge JavaScript.
  • Pour tester des applications Web avec complex Scénarios 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.
Grille de sélénium
  • Pour exécuter vos scripts Selenium RC dans plusieurs navigateurs et systèmes d'exploitation simultanémentneousuellement.
  • Pour exécuter une énorme suite de tests, celle-ci doit être terminée dans les plus brefs délais.

Une comparaison entre Selenium et QTP (maintenant UFT)

Professionnel des tests rapides (QTP) est un outil de test automatisé exclusif appartenant auparavant à l'entreprise Mercure Interactif avant que Hewlett-Packard ne l'acquière en 2006.. Elle enlève later le propriétaire est MicroFocus et l'outil est renommé UFT one. La suite d'outils Selenium présente de nombreux avantages par rapport à  QTP comme décrit ci-dessous -

Avantages et avantages du sélénium par rapport à QTP

Sélénium QTP
Open source, gratuitset gratuitement. Impression.
Très extensible Modules complémentaires limités
Peut exécuter des tests sur différents navigateurs Ne peut exécuter des tests que dans Firefox, Internet Explorer et Chrome
Les soutiens divers systèmes d'exploitation Ne peut être utilisé que dans Windows
Les soutiens appareils mobiles QTP prend en charge l'automatisation des tests d'applications mobiles (iOS et Android) à l'aide de la solution HP appelée – HP Mobile Center
Peut exécuter des tests tout en le le navigateur est réduit L'application testée doit être visible sur le bureau
Peut exécuter des tests en parallèle. Ne peut s'exécuter qu'en parallèle mais en utilisant Quality Center qui est encore une fois un produit payant.

Avantages de QTP par rapport au sélénium

QTP Sélénium
Peut tester applications Web et de bureau Peut uniquement tester les applications Web
Livré avec un référentiel d'objets intégré N'a pas de référentiel d'objets intégré
Automatise plus rapidement que Selenium car c'est un IDE complet. S'automatise à un rythme plus lent car il ne dispose pas d'un IDE natif et seul un IDE tiers peut être utilisé pour le développement.
Les tests basés sur les données sont plus faciles à réaliser car il dispose de tableaux de données globaux et locaux intégrés. Les tests basés sur les données sont plus fastidieux puisque vous devez vous fier aux capacités du langage de programmation pour définir les valeurs de vos données de test.
Peut accéder aux contrôles dans le navigateur(comme la barre des favoris, la barre d'adresse, les boutons Précédent et Suivant, etc.) Impossible d'accéder aux éléments en dehors de l'application Web testée
Fournit professionnel soutien à la clientèle Aucun support utilisateur officiel n’est proposé.
A une capacité native à exporter les données de test dans des formats externes N'a pas de capacité native pour exporter les données d'exécution vers des formats externes
Le support de paramétrage est construit Le paramétrage peut se faire par programmation mais est difficile à mettre en œuvre.
Les rapports de test sont générés automatiquement Pas de support natif pour générer des rapports de tests/bugs.

Bien que QTP ait clairement des capacités plus avancées, Selenium surpasse QTP dans trois domaines principaux :

  • Prix(car Selenium est totalement gratuit)
  • Flexibilité(en raison du nombre de langages de programmation, de navigateurs et de plates-formes qu'il peut prendre en charge)
  • Tests en parallèle(quelque chose dont QTP est capable mais uniquement avec l'utilisation de Quality Center)

Résumé

  • L'ensemble de la suite de tests logiciels Selenium est composé de quatre composants :
  • Sélénium IDE, un Firefox et un module complémentaire Chrome que vous ne pouvez utiliser que pour créer des cas de test et des suites de tests relativement simples.
  • Selenium Remote Control, également connu sous le nom de Selenium 1, est le premier outil Selenium qui a permis aux utilisateurs d'utiliser des langages de programmation pour créer des complex Des tests.
  • WebDriver est la nouvelle avancée qui permet à vos scripts de test de communiquer directement avec le navigateur, le contrôlant ainsi depuis le niveau du système d'exploitation.
  • Selenium Grid est également un outil utilisé avec Selenium RC pour exécuter des tests parallèles sur différents navigateurs et systèmes d'exploitation.
  • Selenium RC et WebDriver ont fusionné pour former Selenium 2.
  • Selenium est plus avantageux que Microfocus UFT One en termes de coûts et de flexibilité.