Qu'est-ce que Selenium WebDriver? Différence avec RC

Table des matières:

Anonim

Qu'est-ce que Selenium Webdriver?

Selenium Webdriver est une collection d'API open source utilisée pour tester des applications Web. L'outil Selenium Webdriver est utilisé pour automatiser les tests d'applications Web afin de vérifier qu'il fonctionne comme prévu ou non. Il prend principalement en charge les navigateurs comme Firefox, Chrome, Safari et Internet Explorer. Il vous permet également d'exécuter des tests multi-navigateurs.

WebDriver vous permet également d' utiliser un langage de programmation pour créer vos scripts de test (pas possible dans Selenium IDE).

Vous pouvez maintenant utiliser des opérations conditionnelles comme if-then-else ou switch-case. Vous pouvez également effectuer une boucle comme do-while.

Les langages de programmation suivants sont pris en charge par WebDriver

  • Java
  • .Rapporter
  • PHP
  • Python
  • Perl
  • Rubis

Vous n'êtes pas obligé de les connaître tous. Vous avez juste besoin d'être bien informé. Cependant, dans ce didacticiel, nous utiliserons Java avec Eclipse comme IDE.

Différence entre Selenium RC et Webdriver

Avant l'avènement de WebDriver en 2006, il existait un autre outil d'automatisation appelé Selenium Remote Control. WebDriver et Selenium RC présentent les fonctionnalités suivantes:

  • Ils vous permettent tous deux d' utiliser un langage de programmation dans la conception de vos scripts de test.
  • Ils vous permettent tous deux d' exécuter vos tests sur différents navigateurs.

Alors, en quoi diffèrent-ils? Discutons des réponses.

1. Architecture

L'architecture de WebDriver est plus simple que celle de Selenium RC .

  • Il contrôle le navigateur à partir du niveau du système d'exploitation
  • Tout ce dont vous avez besoin est l'IDE de votre langage de programmation (qui contient vos commandes Selenium) et un navigateur.
L'architecture de Selenium RC est bien plus compliquée.
  • Vous devez d'abord lancer une application distincte appelée Selenium Remote Control (RC) Server avant de pouvoir commencer les tests.
  • Le serveur Selenium RC agit comme un "intermédiaire" entre vos commandes Selenium et votre navigateur
  • Lorsque vous commencez les tests, Selenium RC Server "injecte" un programme Javascript appelé Selenium Core dans le navigateur.
  • Une fois injecté, Selenium Core commencera à recevoir des instructions relayées par le serveur RC à partir de votre programme de test.
  • Lorsque les instructions sont reçues, Selenium Core les exécutera en tant que commandes Javascript.
  • Le navigateur obéira aux instructions de Selenium Core et transmettra sa réponse au serveur RC.
  • Le serveur RC recevra la réponse du navigateur et vous affichera ensuite les résultats.
  • RC Server récupérera l'instruction suivante de votre script de test pour répéter tout le cycle.

2. Vitesse

WebDriver est plus rapide que Selenium RC car il parle directement au navigateur utilise le propre moteur du navigateur pour le contrôler.

Selenium RC est plus lent car il utilise un programme Javascript appelé Selenium Core. Ce Selenium Core est celui qui contrôle directement le navigateur, pas vous.

3. Interaction réelle

WebDriver interagit avec les éléments de la page de manière plus réaliste. Par exemple, si vous avez une zone de texte désactivée sur une page que vous testiez, WebDriver ne peut vraiment pas y entrer de valeur, tout comme une personne réelle ne le peut pas.

Selenium Core, tout comme les autres codes JavaScript, peut accéder aux éléments désactivés. Dans le passé, les testeurs de Selenium se plaignent du fait que Selenium Core pouvait entrer des valeurs dans une zone de texte désactivée dans leurs tests. Différences dans l'API

4. API

L'API de Selenium RC est plus mature mais contient des redondances et des commandes souvent déroutantes . Par exemple, la plupart du temps, les testeurs ne savent pas s'il faut utiliser type ou typeKeys; ou s'il faut utiliser click, mouseDown ou mouseDownAt. Pire encore, différents navigateurs interprètent chacune de ces commandes de manière différente aussi!

L'API de WebDriver est plus simple que celle de Selenium RC . Il ne contient pas de commandes redondantes et déroutantes.

5. Prise en charge du navigateur

WebDriver peut prendre en charge le navigateur HtmlUnit sans tête

HtmlUnit est qualifié de "headless" car il s'agit d'un navigateur invisible - il est sans interface graphique.

C'est un navigateur très rapide car aucun temps n'est passé à attendre le chargement des éléments de la page. Cela accélère vos cycles d'exécution de test.

Puisqu'il est invisible pour l'utilisateur, il ne peut être contrôlé que par des moyens automatisés.

Selenium RC ne peut pas prendre en charge le navigateur HtmlUnit sans tête. Il a besoin d'un navigateur réel et visible pour fonctionner.

Limitations de WebDriver

WebDriver ne peut pas facilement prendre en charge les nouveaux navigateurs

N'oubliez pas que WebDriver fonctionne au niveau du système d'exploitation. N'oubliez pas non plus que différents navigateurs communiquent avec le système d'exploitation de différentes manières. Si un nouveau navigateur sort, il peut avoir un processus de communication différent avec le système d'exploitation par rapport aux autres navigateurs. , Donc vous devez donner à l'équipe WebDriver tout à fait un certain temps pour que le nouveau processus en avant de pouvoir mettre en œuvre sur la prochaine version WebDriver.

Cependant, c'est à l'équipe de développeurs WebDriver de décider s'ils doivent ou non prendre en charge le nouveau navigateur.

Selenium RC a un générateur de résultats de test intégré

Selenium RC génère automatiquement un fichier HTML des résultats des tests . Le format du rapport a été prédéfini par RC lui-même. Jetez un œil à un exemple de ce rapport ci-dessous.

WebDriver n'a pas de commande intégrée qui génère automatiquement un fichier de résultats de test . Vous devrez vous fier à la fenêtre de sortie de votre IDE, ou concevoir le rapport vous-même en utilisant les capacités de votre langage de programmation et le stocker sous forme de texte, HTML, etc.

Résumé

  • WebDriver est un outil permettant de tester des applications Web sur différents navigateurs en utilisant différents langages de programmation.
  • Vous êtes désormais en mesure de réaliser des tests puissants car WebDriver vous permet d'utiliser un langage de programmation de votre choix pour concevoir vos tests.
  • WebDriver est plus rapide que Selenium RC en raison de son architecture plus simple.
  • WebDriver parle directement au navigateur tandis que Selenium RC a besoin de l'aide du serveur RC pour ce faire.
  • L'API de WebDriver est plus concise que celle de Selenium RC.
  • WebDriver peut prendre en charge HtmlUnit alors que Selenium RC ne le peut pas.
  • Les seuls inconvénients de WebDriver sont:
    • Il ne peut pas facilement prendre en charge les nouveaux navigateurs , mais Selenium RC le peut.
    • Il n'a pas de commande intégrée pour la génération automatique des résultats de test.