web-dev-qa-db-fra.com

Différence avec Protractor avec / sans sélénium?

Vérification du rapporteur documentation , je vois qu'il existe une option pour exécuter le rapporteur sans utiliser le serveur Selenium en utilisant directConnect: true drapeau.

Quelle est la différence entre l'exécution de tests de rapporteur avec un serveur Selenium et sans serveur Selenium autre que le fait que seuls Chrome, Firefox sont pris en charge pour ce dernier cas?

25
meteor

Tout d'abord, actuellement, vous avez 5 options intégrées différentes/façons de se connecter aux pilotes du navigateur :

  1. spécifiez seleniumServerJar pour démarrer localement le serveur autonome Selenium
  2. spécifiez seleniumAddress pour vous connecter à un serveur Selenium en cours d'exécution (local ou distant)
  3. définissez sauceUser et sauceKey pour vous connecter au serveur Selenium distant de Sauce Labs
  4. définissez browserstackUser et browserstackKey pour utiliser des serveurs Selenium distants via BrowserStack
  5. utilisez directConnect pour vous connecter directement à Chrome ou à Firefox. Il existe d'autres paramètres chromeDriver et firefoxPath que vous pouvez utiliser pour définir les emplacements binaires personnalisés du pilote Chrome et de l'application Firefox.

Les 4 premières options fonctionnent essentiellement via un "proxy", un serveur Selenium:

Le serveur agit comme proxy entre votre script de test (écrit avec l'API WebDriver) et le pilote du navigateur (contrôlé par les protocoles WebDriver). Le serveur transmet les commandes de votre script au pilote et renvoie les réponses du pilote à votre script.

La principale raison d'automatiser les navigateurs via un serveur Selenium intermédiaire par opposition à la connexion directe avec un pilote Web est que le serveur Selenium, s'il agit comme Grille Selenium , vous permet d'étendre/de mettre à l'échelle vos tests sur plusieurs navigateurs, plusieurs navigateurs sur plusieurs systèmes, voir, par exemple, Sauce Labs Selenium Grid . Pour info, il y a aussi BrowserStack service , qui, en dehors d'autres fonctionnalités, agit comme un serveur Selenium avec, à l'instar de Sauce Labs, une énorme quantité de capacités/configurations différentes - navigateurs et systèmes .

L'autre cas d'utilisation du démarrage d'un serveur Selenium (en parlant de l'option 2) et de la non-utilisation de directConnect est que vous pouvez avoir une ou des configurations spécifiques sur lesquelles vous souhaitez que vos tests s'exécutent. Disons que vous avez une machine Windows avec IE 11 à bord et Ubuntu avec Firefox 35. Dans ce cas, vous pouvez configurer ces machines en tant que nœuds Selenium qui se connecteraient à un serveur/concentrateur Selenium .

Si vous exécutez vos tests localement et que vos navigateurs cibles sont Chrome ou/et Firefox, utilisez directConnect, vos tests s'exécuteraient plus rapidement.

Mais, si vous exécutez vos tests localement et devez tester contre IE, Safari ou d'autres navigateurs, vous iriez avec les options 1-4 (généralement 1), car ces navigateurs ne peuvent pas fonctionner en mode "connexion directe".

Voir également les sujets connexes:

49
alecxe

En termes simples, si directConnect est vrai, il exécutera les tests sans utiliser le serveur Selenium. Où serveur Selenium signifie une configuration similaire à Grille Selenium (Hub et nœud). L'exécution de tests via Selenium Server vous permet d'exécuter des tests sur une machine distante ou sur votre machine locale et fournit une option pour répartir la charge d'exécution entre les différents nœuds. Il est également possible d'exécuter le test sur plusieurs navigateurs en même temps à l'aide du serveur Selenium.

Alors que directConnect false exécutera le test uniquement sur votre installation locale de FireFox et Chrome. Il exécutera le test sur la même machine où existe la base de code de test.

4