Protractor / Serveur Selenium

Références

L'actualité

Librairie

L'information

Configuration du serveur Selenium

Lorsque vous travaillez avec Protractor, vous devez spécifier comment vous connecter aux pilotes du navigateur qui vont démarrer et contrôler les navigateurs sur lesquels vous testez. Vous utiliserez probablement le serveur Selenium. Le serveur agit en tant que proxy entre votre script de test (écrit avec l'API WebDriver) et le pilote de 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. Le serveur peut gérer plusieurs scripts dans différentes langues. Le serveur peut démarrer et gérer plusieurs navigateurs dans différentes versions et implémentations.


Le fichier de configuration inclut plusieurs options pour le serveur Selenium, qui sont expliquées dans les sections ci-dessous.

Serveur Selenium autonome

Pour exécuter le serveur Selenium sur votre ordinateur local, utilisez le serveur autonome Selenium.

JDK

Pour exécuter un serveur Selenium local, le kit de développement Java(JDK) doit être installé. Vérifiez cela en exécutant à partir de la ligne de commande java -version.

Installation et démarrage du serveur

Pour installer et démarrer manuellement le serveur autonome Selenium, utilisez l'outil de ligne de commande webdriver-manager, fourni avec Protractor.

  • Exécutez la commande update : webdriver-manager update; Ceci installera le serveur et ChromeDriver.
  • Exécutez la commande de démarrage : webdriver-manager start; Ceci démarrera le serveur. Vous verrez beaucoup de journaux de sortie, en commençant par INFO. La dernière ligne sera Info - Started org.openqa.jetty.jetty.Server.
  • Laissez le serveur en marche pendant que vous menez vos sessions de test.
  • Dans votre fichier de configuration, définissez seleniumAddress; l'adresse du serveur en cours d'exécution. Cette valeur par défaut est http://localhost:4444/wd/hub.

Démarrer le serveur à partir d'un script de test

Pour démarrer le serveur autonome Selenium à partir de votre script de test, définissez les options suivantes dans votre fichier de configuration:

  • seleniumServerJar- Emplacement du fichier jar du serveur autonome Selenium. Spécifiez un emplacement de fichier.
  • seleniumPort- Le port à utiliser pour démarrer le serveur autonome Selenium. Si non spécifié, la valeur par défaut est 4444.
  • seleniumArgs- Tableau d'options de ligne de commande à transmettre au serveur. Pour une liste complète, démarrez le serveur avec l' -helpindicateur.

Connexion à un serveur en cours d'exécution

Pour vous connecter à une instance en cours d'exécution d'un serveur Selenium autonome, définissez cette option :

  • seleniumAddress; Connectez-vous à une instance en cours d'exécution d'un serveur Selenium autonome. L'adresse sera une URL.

Noter que si vous définissez seleniumAddress, les paramètres seleniumServerJar, seleniumPort, seleniumArgs, browserstackUser, browserstackKey, sauceUser et sauceKey seront ignorés.

Serveur Selenium distant

Pour exécuter vos tests sur un serveur Selenium distant, vous devez disposer d'un compte auprès d'un service hébergeant le serveur (et les pilotes du navigateur). Protractor supporte de manière intégrée BrowserStack, Sauce Labs et TestObject.





Utilisation de TestObject en tant que serveur Selenium distant

Dans votre fichier de configuration, définissez ces options :

  • testobjectUser - Le nom d'utilisateur de votre compte TestObject.
  • testobjectKey - La clé de votre compte TestObject.

Noter que si vous définissez testobjectUser et testobjectKey, les paramètres kobitonUser, kobitonKey, browserstackUser, browserstackKey, seleniumServerJar, seleniumPort, seleniumArgs, sauceUser et sauceKey seront ignorés.

Utilisation de Kobiton en tant que serveur Selenium distant

Dans votre fichier de configuration, définissez ces options :

  • kobitonUser - Le nom d'utilisateur de votre compte Kobiton.
  • kobitonKey - La clé API de votre compte Kobiton.

Noter que si vous définissez kobitonUser et kobitonKey, les paramètres browserstackUser, browserstackKey, seleniumServerJar, seleniumPort, seleniumArgs, sauceUser et sauceKey seront ignorés.

Utilisation de BrowserStack en tant que serveur Selenium distant

Dans votre fichier de configuration, définissez ces options :

  • browserstackUser - Le nom d'utilisateur de votre compte BrowserStack.
  • browserstackKey - La clé de votre compte BrowserStack.

Noter que si vous définissez browserstackUser et browserstackKey, les paramètres seleniumServerJar, seleniumPort, seleniumArgs, sauceUser et sauceKey seront ignorés.

Vous pouvez éventuellement définir la propriété name dans une fonctionnalité afin de donner un nom aux travaux sur le serveur. Sinon, ils se verront attribuer un hachage aléatoire.

Utilisation de Sauce Labs en tant que serveur Selenium distant

Dans votre fichier de configuration, définissez ces options :

  • sauceUser - Le nom d'utilisateur de votre compte Sauce Labs.
  • sauceKey - La clé de votre compte Sauce Labs.

Noter que si vous définissez sauceUser et sauceKey, les paramètres seleniumServerJar, seleniumPort, seleniumArgs, browserstackUser et browserstackKey seront ignorés.

Vous pouvez éventuellement définir la propriété name dans une fonctionnalité afin de donner un nom aux travaux sur le serveur. Sinon, ils seront simplement appelés Unnamed Job

Connexion directe aux pilotes du navigateur

Protractor peut tester directement Chrome et Firefox sans utiliser de serveur Selenium. Pour l'utiliser, dans votre ensemble de fichiers de configuration directConnect: true.

directConnect: true - Votre script de test communique directement avec le pilote Chrome ou le pilote Firefox, en ignorant tout serveur Selenium. Si cela est vrai, les paramètres pour seleniumAddress et seleniumServerJar seront ignorés. Si vous essayez d'utiliser un navigateur autre que Chrome ou Firefox, une erreur sera générée.

L'avantage de la connexion directe aux pilotes de navigateur est que vos scripts de test peuvent démarrer et être exécutés plus rapidement.

Réutiliser un WebDriver existant

Le cas d'utilisation de la réutilisation d'un WebDriver existant est lorsque vous avez du code existant selenium-webdriver et que vous maîtrisez déjà la façon dont le WebDriver est créé, mais souhaitez également que Protractor utilise le même navigateur. Vous pouvez donc utiliser les localisateurs d'éléments de protractor et le reste de celui-ci son API. Cela pourrait être fait avec le fournisseur de pilote attachSession, mais l'API attachSession est en cours de suppression dans la version selenium-webdriver 4.0.0.

Au lieu d'un fichier de configuration de protractor, vous créez un objet de configuration dans votre code de configuration de test et ajoutez votre objet WebDriver déjà créé et l'URL de base.


Notez que ce fournisseur de pilote vous laisse le contrôle de quitter le conducteur, mais cela signifie aussi des appels API Protractor qui attendent le conducteur de quitter correctement et / ou redémarrer le navigateur, par exemple restart, restartSync et forkNewDriverInstance, ne se comportera pas comme indiqué.