Articles

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

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

Selenium est un framework de test automatisé gratuit (open-source) utilisé pour valider des 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 de Sélénium. Les tests effectués à l’aide de l’outil de test du sélénium sont généralement appelés Tests de sélénium.

Le logiciel Selenium n’est pas seulement un outil unique, mais une suite de logiciels, chaque pièce répondant aux différents besoins de test d’assurance qualité du sélénium d’une organisation. Voici la liste des outils

  • Environnement de développement intégré au Sélénium (E)
  • Télécommande au sélénium (RC)
  • WebDriver
  • Grille au sélénium

Introduction au sélénium
Introduction au Sélénium

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

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

Dans ce tutoriel, vous apprendrez:

  • Qu’est-ce que le sélénium?
  • Qui a développé le sélénium ?
  • Le Même Problème de Politique d’origine
  • Naissance de la Télécommande au Sélénium (Sélénium RC)
  • Naissance de la Grille au Sélénium
  • Naissance de l’E au Sélénium
  • Naissance du WebDriver
  • Naissance du Sélénium 2
  • Alors, Pourquoi le nom Sélénium?
  • Brève Introduction Sel Sélénium
  • Brève introduction Télécommande Sélénium (Sélénium RC)
  • Brève Introduction WebDriver
  • Grille Sélénium
  • Remarque sur le Support du Navigateur et de l’Environnement
  • Comment Choisir le Bon Outil Sélénium pour Vos besoins
  • Une comparaison entre le Sélénium et le QTP (maintenant UFT)
  • Avantages du QTP par rapport au Sélénium

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

Puisque Selenium est une collection d’outils différents, il avait également différents développeurs. Voici les personnes clés qui ont apporté des contributions notables au projet Selenium

Introduction au sélénium

td>

Principalement, Selenium a été créé par Jason Huggins en 2004. Ingénieur chez ThoughtWorks, il travaillait sur une application Web nécessitant 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 programme JavaScript qui contrôlerait automatiquement les actions du navigateur. Il a nommé ce programme comme le « JavaScriptTestRunner. »

Voyant le potentiel de cette idée pour aider à automatiser d’autres applications Web, il a créé JavaScriptRunner open-source qui a ensuite été renommé Selenium Core.

Le même problème de stratégie d’origine

La même stratégie d’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 dans www.google.com utilise un programme JavaScript « randomScript.js ». La même stratégie d’origine n’autorisera que randomScript.js pour accéder aux pages dans google.com tels 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 parce qu’ils appartiennent à des domaines différents.

Introduction à Selenium

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 Selenium Remote Control (Selenium RC)

Introduction au sélénium

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 la même politique d’origine. Ainsi, 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 Sélénium Remote Control ou Sélénium 1.

Naissance de la grille de sélénium

Introduction au sélénium

La grille de sélénium 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 d’abord appelé le système « QA hébergé. »Il était capable de capturer des captures d’écran de navigateur pendant des étapes importantes, et également d’envoyer des commandes de sélénium à différentes machines simultanément.

Naissance de Selenium ID

Introduction à Selenium

Shinya Kasatani du Japon a créé Selenium ID, une extension Firefox qui peut automatiser le navigateur grâce à une fonctionnalité d’enregistrement et de lecture. Il a eu cette idée pour augmenter encore la vitesse de création de cas de test. Il a fait don de l’E Selenium au projet Selenium en 2006.

Naissance de WebDriver

Introduction à SeleniumSimon Stewart a créé WebDriver vers 2006 lorsque les navigateurs et les applications Web devenaient plus puissants et plus restrictifs avec des programmes JavaScript comme Selenium Core. C’était le premier framework de test multiplateforme capable de contrôler le navigateur à partir du niveau du système d’exploitation.

Naissance de Selenium 2

En 2008, toute l’équipe de Selenium a décidé de fusionner WebDriver et Selenium RC pour former un outil plus puissant appelé Selenium 2, WebDriver étant le noyau. Actuellement, le sélénium RC est toujours en cours de développement mais uniquement en mode maintenance. La plupart des efforts du projet Selenium sont maintenant concentrés sur le sélénium 2.

Alors, Pourquoi le nom Sélénium?

Le nom Selenium vient d’une blague que Jason a fendue une fois à son équipe. Au cours du développement de Selenium, un autre cadre de test automatisé a été populaire par la société appelée Mercury Interactive (oui, la société qui a initialement fabriqué QTP avant son acquisition par HP). Puisque le sélénium est un antidote bien connu pour 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.

Origine du nom du framework Selenium

Brève introduction Sel Selenium

L’environnement de développement intégré Selenium (Sel) est le framework le plus simple de la suite Selenium et est le plus facile à apprendre. C’est un plugin Firefox que vous pouvez installer aussi facilement qu’avec d’autres plugins. Cependant, en raison de sa simplicité, l’EDI Sélénium ne doit être utilisé que comme outil de prototypage. Si vous souhaitez créer des cas de test plus avancés, vous devrez utiliser Selenium RC ou WebDriver.

Avantages et inconvénients de l'E sélénium

Brève introduction La télécommande au sélénium (Sélénium RC)

Le Sélénium RC a longtemps été le cadre de test phare de l’ensemble du projet Selenium. Il s’agit du premier outil de test Web automatisé permettant aux utilisateurs d’utiliser un langage de programmation qu’ils préfèrent. À partir de la version 2.25.0, RC peut prendre en charge les langages de programmation suivants:

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

Avantages et inconvénients du sélénium RC

Brève introduction WebDriver

Le WebDriver se révèle être meilleur que Selenium ID et Selenium RC à bien des égards. Il implémente une approche plus moderne et plus stable dans l’automatisation des actions du navigateur. WebDriver, contrairement à Selenium RC, ne repose pas sur JavaScript pour les tests d’automatisation du Sélénium. 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

Avantages et inconvénients du Webdriver sélénium

Sélénium Grid

Selenium Grid est un outil utilisé avec Selenium RC pour exécuter des tests parallèles sur différentes machines et différents navigateurs en même temps. L’exécution parallèle signifie l’exécution de plusieurs tests à la fois.

Caractéristiques:

  • Permet l’exécution simultanée de tests dans plusieurs navigateurs et environnements.
  • Permet de gagner énormément de temps.
  • Utilise le concept de hub et de nœuds. Le concentrateur agit comme une source centrale de commandes de sélénium pour chaque nœud qui lui est connecté.

Remarque sur la prise en charge du navigateur et de l’environnement

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

Selenium IDE WebDriver
Browser Support Mozilla Firefox Internet Explorer versions 6 to 11, both 32 and 64-bit
Microsoft Edge version 12.10240 & above ( partial support some functionalities under development)
Firefox 3.0 and above
Google Chrome 12.0. and above
Opera 11.5 and above
Android – 2.3 et plus pour les téléphones et tablettes
(appareils &émulateurs)
iOS 3+ pour les téléphones (appareils &émulateurs) et 3.2+ pour les tablettes (appareils &émulateurs)
HtmlUnit 2.9 et plus
Système d’exploitation Windows, Mac OS X, Linux Tous les systèmes d’exploitation sur lesquels les navigateurs ci-dessus peuvent s’exécuter.

Remarque: Selenium WebDriver est considéré comme le successeur de Selenium RC qui a été déprécié & officiellement annoncé par SeleniumHQ.

Comment choisir le Bon Outil de sélénium pour Votre besoin

Outil
Pourquoi choisir?

Selenium IDE

  • To learn about concepts on automated testing and Selenium, including:
  • Selenese commands such as type, open, clickAndWait, assert, verify, etc.
  • Locators such as id, name, xpath, css selector, etc.
  • Executing customized JavaScript code using runScript
  • Exporting test cases in various formats.
  • Pour 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 plus tard vers RC ou WebDriver.
  • Pour tester une application web sur Firefox et Chrome uniquement.

Selenium RC

  • Pour concevoir un test 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 des scénarios complexes basés sur AJAX.

WebDriver

  • Pour 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 test personnalisés.

Selenium Grid

  • Pour exécuter simultanément vos scripts Selenium RC dans plusieurs navigateurs et systèmes d’exploitation.
  • Pour exécuter une énorme suite de tests, qui doit se terminer le plus rapidement possible.

Une comparaison entre le sélénium et le QTP (maintenant UFT)

Quick Test Professional (QTP) est un outil de test automatisé propriétaire appartenant auparavant à la société Mercury Interactive avant son acquisition par Hewlett-Packard en 2008. 2006. La suite d’outils Selenium présente de nombreux avantages par rapport au QTP, comme détaillé ci-dessous –

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

div>Selenium
QTP
Open source, gratuit à utiliser et gratuit. Commercial.
Hautement extensible Modules complémentaires limités
Peut exécuter des tests sur différents navigateurs Ne peut exécuter des tests que sous Firefox, Internet Explorer et Chrome
Prend en charge divers systèmes d’exploitation Ne peut être utilisé que sous Windows
Prend en charge les appareils mobiles QTP Prend en charge les applications mobiles automatisation des tests (iOS & Android) utilisant la solution HP appelée – HP Mobile Center
Peut exécuter des tests pendant que le navigateur est minimisé Doit avoir l’application sous test pour ê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 à nouveau un produit payant.

Advantages of QTP over Selenium

Advantages of QTP over Selenium
QTP
Selenium
Can test both web and desktop applications Can only test web applications
Comes with a built-in object repository Has no built-in object repository
Automatise plus rapidement que Selenium car il s’agit d’unE complet. Automatise à un rythme plus lent car il n’a pas d’EDI natif et seul un EDI tiers peut être utilisé pour le développement
Les tests pilotés par les données sont plus faciles à effectuer car ils ont des tables de données globales et locales intégrées. Les tests pilotés par les données sont plus lourds car 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 du navigateur (tels que la barre des favoris, la barre d’adresse, les boutons Précédent et suivant, etc.) Ne peut pas accéder aux éléments en dehors de l’application Web testée
Fournit un support client professionnel Aucun support utilisateur officiel n’est offert.
A la capacité native d’exporter les données de test dans des formats externes N’a pas la capacité native d’exporter les données d’exécution vers des formats externes
La prise en charge du paramétrage est intégrée Le paramétrage peut être effectué via la programmation mais est difficile à implémenter.
Les rapports de test sont générés automatiquement Aucun support natif pour générer des rapports de test/bogues.

Bien que le QTP ait clairement des capacités plus avancées, le sélénium l’emporte sur le QTP dans trois domaines principaux:

  • Coût (car le sélénium est entièrement gratuit)
  • Flexibilité (en raison d’un certain nombre de langages de programmation, de navigateurs et de plates-formes qu’il peut prendre en charge)
  • Tests parallèles (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:
  • Selenium ID, un add-on Firefox que vous ne pouvez utiliser que pour créer des cas de test et des suites de tests relativement simples.
  • Télécommande Selenium, également connue sous le nom de Selenium 1, qui est le premier outil Selenium permettant aux utilisateurs d’utiliser des langages de programmation pour créer des tests complexes.
  • WebDriver, la nouvelle percé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 été fusionnés pour former Selenium 2.
  • Le sélénium est plus avantageux que le QTP en termes de coûts et de flexibilité. Il vous permet également d’exécuter des tests en parallèle, contrairement à QTP où vous n’êtes autorisé à exécuter des tests que de manière séquentielle.