Qu'est-ce que le sélénium?
Selenium est un cadre 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 tels que 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 tests Selenium.
Le logiciel Selenium n'est pas seulement un outil unique, mais une suite de logiciels, chaque élément répondant aux différents besoins de test Selenium QA d'une organisation. Voici la liste des outils
- Environnement de développement intégré Selenium (IDE)
- Télécommande au sélénium (RC)
- WebDriver
- Grille de sélénium
![](https://cdn.css-code.org/1083603/what_is_selenium_introduction_to_selenium_automation_testing.png.webp)
Pour le moment, Selenium RC et WebDriver sont fusionnés en un seul framework pour former Selenium 2 . Soit dit en passant, le sélénium 1 fait 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é Selenium?
- La même question de politique d'origine
- Naissance de la télécommande Selenium (Selenium RC)
- Naissance de Selenium Grid
- Naissance de Selenium IDE
- Naissance de WebDriver
- Naissance de Selenium 2
- Alors, pourquoi le nom Selenium?
- Brève introduction Selenium IDE
- Brève introduction de la télécommande au sélénium (Selenium RC)
- Brève introduction WebDriver
- Grille de sélénium
- Remarque sur la prise en charge du navigateur et de l'environnement
- Comment choisir le bon outil Selenium 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é Selenium?
Puisque Selenium est une collection d'outils différents, il a également eu différents développeurs. Vous trouverez ci-dessous les personnes clés qui ont apporté une contribution notable au projet Selenium
Principalement, Selenium a été 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 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 rendu JavaScriptRunner open-source qui a ensuite été rebaptisé Selenium Core . |
La même question de politique d'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é . Par exemple, le code HTML de www.google.com utilise un programme JavaScript "randomScript.js". La même politique d'origine autorisera uniquement randomScript.js à 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 ils appartiennent à des domaines différents.
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)
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. Un autre ingénieur de ThoughtWork, Paul Hammant , a donc 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 Selenium ou Selenium 1 .
Naissance de Selenium Grid
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 initialement appelé le système « QA hébergé ». Il était capable de capturer des captures d'écran du navigateur pendant des étapes importantes, et d' envoyer des commandes Selenium à différentes machines simultanément.
Naissance de Selenium IDE
Shinya Kasatani du Japon a créé Selenium IDE , une extension Firefox 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 de cas de test. Il a fait don de Selenium IDE au projet Selenium en 2006 .
Naissance de WebDriver
Simon 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 cadre 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 Selenium a décidé de fusionner WebDriver et Selenium RC pour former un outil plus puissant appelé Selenium 2 , 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 Selenium?
Le nom Selenium provient d'une blague que Jason a une fois racontée à son équipe. Au cours du développement de Selenium, un autre cadre de test automatisé était populaire, créé par la société Mercury Interactive (oui, la société qui a initialement créé 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 sommes arrivés à appeler ce cadre jusqu'à présent.
Brève introduction Selenium IDE
L'environnement de développement intégré Selenium (IDE) est le cadre le plus simple de la suite Selenium et le plus facile à apprendre . C'est un plugin Firefox que vous pouvez installer aussi facilement que possible 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 scénarios de test plus avancés, vous devrez utiliser Selenium RC ou WebDriver.
Brève introduction de la télécommande au sélénium (Selenium RC)
Selenium 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 de leur choix . À partir de la version 2.25.0, RC peut prendre en charge les langages de programmation suivants:
- Java
- C #
- PHP
- Python
- Perl
- Rubis
Brève introduction WebDriver
Le WebDriver s'avère meilleur que Selenium IDE et Selenium RC à bien des égards. Il met en œuvre une approche plus moderne et plus stable pour automatiser les 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
- Rubis
Grille de sélénium
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 exécuter plusieurs tests à la fois.
Caractéristiques:
- Permet l'exécution simultanée de tests dans plusieurs navigateurs et environnements.
- Gain de temps énormément.
- Utilise le concept de hub et de nœuds . Le hub agit comme une source centrale de commandes Selenium pour chaque nœud qui y est connecté.
Remarque sur la prise en charge du navigateur et de l'environnement
En raison de leurs différences architecturales, Selenium IDE, Selenium RC et WebDriver prennent en charge différents ensembles de navigateurs et d'environnements d'exploitation.
Selenium IDE | WebDriver | |
---|---|---|
Prise en charge du navigateur | Mozilla Firefox | Internet Explorer versions 6 à 11, version 32 et 64 bits de Microsoft Edge 12.10240 et supérieur (prise en charge partielle de certaines fonctionnalités en cours de développement) Firefox 3.0 et supérieur Google Chrome 12.0. et supérieur Opera 11.5 et supérieur Android - 2.3 et supérieur pour téléphones et tablettes (appareils et émulateurs) iOS 3+ pour téléphones (appareils et émulateurs) et 3.2+ pour tablettes (appareils et émulateurs) HtmlUnit 2.9 et supérieur |
Système opérateur | Windows, Mac OS X, Linux | Tous les systèmes d'exploitation sur lesquels les navigateurs ci-dessus peuvent fonctionner. |
Remarque: Selenium WebDriver est désigné comme le successeur de Selenium RC qui a été abandonné et officiellement annoncé par SeleniumHQ.
Comment choisir le bon outil Selenium pour vos besoins
Outil | Pourquoi choisir? |
---|---|
Selenium IDE |
|
Sélénium RC |
|
WebDriver |
|
Grille de sélénium |
|
Une comparaison entre le sélénium et le QTP (maintenant UFT)
Quick Test Professional (QTP) est un outil de test automatisé propriétaire qui appartenait auparavant à la société Mercury Interactive avant son acquisition par Hewlett-Packard en 2006 . La suite d'outils Selenium présente de nombreux avantages par rapport à QTP, comme détaillé ci-dessous -
Avantages et avantages du sélénium par rapport au QTP
Sélénium | QTP |
---|---|
Open source , gratuit à utiliser et gratuit. | Commercial . |
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 |
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 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 pendant que le navigateur est réduit au minimum | Nécessite que l'application testée soit 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. |
Avantages du QTP par rapport au sélénium
QTP | Sélénium |
---|---|
Peut tester les applications Web et de bureau | Ne peut tester que les applications Web |
Livré avec un référentiel d'objets intégré | N'a pas de référentiel d'objets intégré |
S'automatise plus rapidement que Selenium car il s'agit d'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 à effectuer car ils comportent des tables de données globales et locales intégrées . | Les tests basés sur les données sont plus compliqués 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 commandes du navigateur (telles que 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 un support client professionnel | Aucun support utilisateur officiel n'est proposé. |
Possède une capacité native pour 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 test / bogue. |
Bien qu'il soit clair que QTP a des capacités plus avancées, Selenium l'emporte sur QTP dans trois domaines principaux:
- Coût (car Selenium 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)
- Test 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 comprend quatre composants:
- Selenium IDE, un module complémentaire de Firefox 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, 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 à partir du 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.