Selenium

Marionnettiste VS Sélénium

Marionnettiste VS Sélénium
Aujourd'hui, lorsqu'il s'agit de tests Web automatisés, Puppeteer et Selenium sont les deux noms qui reviennent. L'une des principales raisons pour lesquelles ils sont bien connus est leur capacité à exécuter des navigateurs sans tête. Par conséquent, avant de poursuivre l'article, examinons rapidement ce que sont les navigateurs sans tête et leurs avantages.

En termes simples, les navigateurs sans tête sont des navigateurs qui peuvent être utilisés pour tester la convivialité des pages Web et exécuter des interactions de navigateur comme vous le feriez avec votre navigateur habituel. La seule différence ici est qu'il n'y a pas d'interface utilisateur graphique (GUI) et qu'ils sont généralement exécutés à partir du terminal.

Navigateurs sans tête :

Maintenant que nous avons connu un facteur majeur pour les deux outils, nous pouvons procéder.

Marionnettiste

Puppeteer est une bibliothèque Node de Google qui fournit une API simple pour contrôler Chrome sans tête. Grâce à Puppeteer, les tâches courantes telles que saisir des entrées, cliquer sur des boutons, tester la convivialité des pages Web et même le grattage Web peuvent être effectuées facilement.

Puppeteer est officiel de l'équipe Chrome et utilise le protocole de débogage à distance Chrome, tout comme nous le trouverions avec Chrome Devtools. Cette bibliothèque prend en charge la syntaxe JavaScript moderne disponible dans Google Chrome.

Installer

L'installation et la prise en main de Puppeteer sont très simples. Étant donné que Puppeteer est une bibliothèque de nœuds, elle peut être installée à l'aide du npm outil.

L'installation peut se faire avec la commande ci-dessous :

npm je marionnettiste

L'exécution de la commande ci-dessus installe Puppeteer. Il est prévu de télécharger également une version récente de Chromium qui fonctionnerait avec l'API.

La taille de Chromium varie selon le système d'exploitation :

Après l'installation de Puppeteer, vous pouvez trouver plus d'informations sur la façon de commencer, vous pouvez également consulter d'autres exemples de code.

Caractéristiques

Alors que la capacité de Puppeteer à lancer un navigateur sans tête est une fonctionnalité qui lui a valu une certaine renommée, ce n'est pas la seule fonctionnalité qui le rend génial. Puppeteer a également quelques autres fonctionnalités qui le rendent utile, jetons un coup d'œil rapide à certaines d'entre elles.

Automatisation facile :

Bien qu'il existe d'autres outils pouvant être utilisés pour l'automatisation du Web, Puppeteer arrive en tête. Cela est dû au fait qu'il fonctionne bien pour un seul navigateur, qui est le navigateur Headless Chrome, il effectue donc des tâches d'automatisation Web de la manière la plus efficace possible. Puppeteer fonctionne également très bien avec les bibliothèques de tests unitaires populaires telles que Mocha et Jasmine.

Test de capture d'écran :

Il s'agit d'une fonctionnalité vitale pour toute tâche de test Web automatisé. Les captures d'écran sont importantes et permettent de suivre le résultat des interactions avec les éléments d'une page Web. Des bibliothèques telles que Puppeteer-screenshot-tester existent également dans Puppeteer qui offrent la possibilité de comparer les captures d'écran générées lors des tests. En plus de générer des captures d'écran des tests, les PDF peuvent également être générés à partir de pages Web testées dans marionnettiste.

Test de performance:

Chrome fournit des DevTools qui permettent l'enregistrement de la chronologie des performances des pages Web, et Puppeteer en profite également. Avec Puppeteer, les traces chronologiques des sites Web peuvent être capturées pour examiner les problèmes de performances. En raison du contrôle API de haut niveau de Puppeteer sur le protocole Chrome Developers Tools, il donne aux utilisateurs la possibilité de contrôler les techniciens de maintenance et de tester la mise en cache des sites Web.

Grattage Web :

Une discussion sur les fonctionnalités ne serait pas terminée sans reconnaître la capacité de Puppeteer à être utilisé à des fins de grattage Web. Apprendre à utiliser Puppeteer en tant que grattoir Web est assez facile, jetez un œil à la documentation de l'API.

Avantages

  1. Fonctionne très bien pour les tests visuels.
  2. Idéal pour les tests de bout en bout.
  3. Rapide par rapport au sélénium.
  4. Peut prendre des captures d'écran de pages Web.
  5. Plus de contrôle sur les tests via Chrome.
  6. Peut tester le mode hors ligne.

Les inconvénients

  1. Prend en charge uniquement JavaScript (Node)
  2. Prend en charge uniquement Chrome

Sélénium

Selenium est un puissant framework de test Web, capable d'automatiser les applications Web à des fins de test. Selenium est également connu pour sa capacité à automatiser les tâches d'administration basées sur le Web.

Le sélénium se présente en deux parties ; le Selenium WebDriver pour créer des suites d'automatisation et des tests puissants basés sur un navigateur et l'IDE Selenium pour créer des scripts de reproduction rapide de bogues.

Sans oublier que Selenium prend également en charge les navigateurs sans tête comme on le voit avec Puppeteer.

Installer

Contrairement à Puppeteer, la configuration de Selenium n'est pas simple. Selenium prend en charge de nombreuses langues et différents navigateurs, donc ces conditions possibles doivent être prises en compte.

Vous trouverez ci-dessous des liens vers des didacticiels officiels sur la configuration des liaisons Selenium pour différentes langues.

En plus de prendre en charge différentes langues, Selenium prend également en charge plusieurs navigateurs. Contrairement à Puppeteer qui installe Chromium lors de l'installation, vous devrez peut-être installer des pilotes Web pour le navigateur Web de votre choix.

Voici des liens vers des pilotes Web pour Mozilla Firefox et Google Chrome.

Si vous aussi vous souhaitez utiliser l'IDE Selenium, il existe aussi pour plusieurs navigateurs. Voici les liens vers Selenium IDE pour Mozilla Firefox et Google Chrome.

Caractéristiques

Sa capacité à fonctionner avec des navigateurs sans tête en a fait incontestablement l'outil d'automatisation Web le plus populaire, mais il existe d'autres fonctionnalités qui le rendent puissant.

Prise en charge multilingue :

C'est une caractéristique très importante de Selenium. Avec sa prise en charge de plusieurs langues, davantage de développeurs peuvent utiliser l'outil pour leurs tâches de test d'automatisation Web.  Bien que l'on puisse penser que sa prise en charge multilingue le rendrait lent, Selenium fonctionne toujours à une bonne vitesse car le démarrage d'un serveur dans Web Driver n'est pas nécessaire.

Prise en charge multiplateforme :

De la même manière que Selenium n'est pas limité par les barrières linguistiques, il n'est pas non plus limité par la barrière de la plate-forme. Ce n'est pas une nouvelle que les applications Web se comportent différemment sur plusieurs plates-formes. Selenium donne aux testeurs la possibilité de tester sur les principaux navigateurs Web pour offrir une expérience utilisateur fluide aux utilisateurs de différents navigateurs.  Outre les navigateurs, Selenium peut également être utilisé pour tester sur des applications mobiles telles que Android, iOS, Windows, Blackberry.

Outil d'enregistrement :

Avec Selenium IDE, il est facile d'enregistrer des tests d'automatisation Web. Selenium IDE permet aux testeurs d'utiliser la capacité d'enregistrement ainsi que la prise en charge de la saisie semi-automatique et la capacité de naviguer dans les commandes. L'outil d'enregistrement a cessé de fonctionner sur Firefox 55 et les versions ultérieures, mais il existe d'autres plugins sur Firefox qui servent le même objectif. Par conséquent, la possibilité d'enregistrer des tests reste une fonctionnalité majeure de Selenium.

Grattage Web :

Bien que Selenium soit utilisé pour tester des applications Web, il s'adapte également bien en tant que grattoir Web. Selenium peut être utilisé pour gratter les sites Web AJAX et les sites Web les plus difficiles à gratter, à condition que vous puissiez comprendre la structure HTML. Vous pouvez consulter ce tutoriel sur l'utilisation de Selenium pour le scraping Web avec Python.

Avantages

  1. Prise en charge multiplateforme.
  2. Prise en charge multilingue.
  3. Possibilité d'enregistrer des tests.
  4. Peut prendre des captures d'écran aussi.
  5. Grande communauté d'utilisateurs.

Les inconvénients

  1. Lent par rapport à Marionnettiste.
  2. Contrôle limité sur les tests par rapport à Puppeteer.

Conclusion

Si vous ne vous souciez pas de tester des pages Web sur d'autres plates-formes que Chrome, vous pouvez travailler avec Puppeteer, à condition que vous puissiez travailler avec JavaScript (Node). Cependant, si vous êtes préoccupé par plusieurs plates-formes, l'utilisation de Selenium est une évidence. En parlant de leurs capacités de grattage Web, les deux outils sont eux-mêmes là-bas. Il convient de noter cependant que Puppeteer pourrait être plus rapide que Selenium.

N'importe quel outil que vous choisissez à la fin de la journée devrait convenir, profitez simplement de l'écriture de vos scripts d'automatisation.

Comment développer un jeu sur Linux
Il y a dix ans, peu d'utilisateurs de Linux prédisaient que leur système d'exploitation préféré serait un jour une plate-forme de jeu populaire pour l...
Ports Open Source des moteurs de jeux commerciaux
Les récréations de moteur de jeu gratuites, open source et multiplateformes peuvent être utilisées pour jouer à d'anciens ainsi qu'à certains des titr...
Meilleurs jeux de ligne de commande pour Linux
La ligne de commande n'est pas seulement votre plus grand allié lorsque vous utilisez Linux, elle peut également être une source de divertissement car...