Selenium Tutoriel de grille : configurer un hub et un nœud (exemple)
Qu’est ce qu' Selenium Grille?
Selenium Grille Fait partie de Selenium Suite spécialisée dans l'exécution de plusieurs tests sur différents navigateurs, systèmes d'exploitation et machines en parallèle. Ceci est réalisé en acheminant les commandes des instances de navigateur distantes où un serveur agit comme un hub. Un utilisateur doit configurer le serveur distant pour exécuter les tests.
Selenium Grid a 2 versions – l’ancienne Grid 1 et la plus récente Grid 2. Nous nous concentrerons uniquement sur Grid 2 car Grid 1 est progressivement obsolète par le Selenium Équipe.
Selenium Grille Architecture
Selenium La grille a un hub et un nœud Architecture.

Moyeu
- Le hub est le point central dans lequel vous chargez vos tests.
- Il ne devrait y avoir qu’un seul hub dans une grille.
- Le hub est lancé uniquement sur une seule machine, par exemple un ordinateur dont le système d'exploitation est Windows 7 et dont le navigateur est IE.
- La machine contenant le hub est l'endroit où les tests seront exécutés, mais vous verrez le navigateur être automatisé sur le nœud.
Nodes
- Les nœuds sont les Selenium instances qui exécuteront les tests que vous avez chargés sur le hub.
- Il peut y avoir un ou plusieurs nœuds dans une grille.
- Les nœuds peuvent être lancés sur plusieurs machines avec différentes plates-formes et navigateurs.
- Les machines exécutant les nœuds ne doivent pas nécessairement avoir la même plate-forme que celle du hub.
Selenium Grid utilise un concept de nœud hub dans lequel vous exécutez le test uniquement sur une seule machine appelée mode, mais l'exécution sera effectuée par différentes machines appelées nœuds.
Comment configurer Selenium Grille?
Dans cette section, vous utiliserez 2 machines. La première machine sera le système qui exécutera le hub tandis que l'autre machine exécutera un nœud. Pour plus de simplicité, appelons la machine sur laquelle le hub s'exécute comme « Machine A », tandis que la machine sur laquelle s'exécute le nœud sera « Machine B ». Il est également important de noter leurs adresses IP. Disons que la machine A a une adresse IP de 192.168.1.3 tandis que la machine B a une adresse IP de 192.168.1.4.
Étape 1) Télécharger Selenium Serveur de ici..
Étape 2) Vous pouvez placer le Selenium Fichier .jar du serveur n’importe où sur votre disque dur. Mais pour les besoins de ce didacticiel, placez-le sur le lecteur C de la machine A et de la machine B. Après cela, vous avez maintenant terminé l'installation. Selenium Grille. Les étapes suivantes lanceront le hub et le nœud.
Étape 3)
- Nous allons maintenant lancer un hub. Accédez à la machine A. À l'aide de l'invite de commande, accédez à la racine du lecteur C de la machine A, car c'est le répertoire dans lequel nous avons placé le Selenium Server.
- À l'invite de commande, tapez java -jar sélénium-server-standalone-2.30.0.jar -role hub
- Le hub devrait être lancé avec succès. Votre invite de commande devrait ressembler à l’image ci-dessous.
Étape 4) Une autre façon de vérifier si le hub est en cours d'exécution consiste à utiliser un navigateur. Selenium Grid, par défaut, utilise le port 4444 de la machine A pour son interface Web. Ouvrez simplement un navigateur et accédez à http://localhost:4444/grid/console
Vous pouvez également vérifier si la machine B peut accéder à l'interface Web du hub en y lançant un navigateur et en allant là où « iporhostnameofmachineA » doit être l'adresse IP ou le nom d'hôte de la machine sur laquelle le hub est exécuté. Puisque l'adresse IP de la machine A est 192.168.1.3, alors dans le navigateur de la machine B, vous devez taper http://192.168.1.3:4444/grid/console
Étape 5)
- Maintenant que le hub est déjà configuré, nous allons lancer un nœud. Accédez à la machine B et lancez-y une invite de commande.
- Accédez à la racine du lecteur C et tapez le code ci-dessous. Nous avons utilisé l'adresse IP 192.168.1.3 car c'est là que s'exécute le hub. Nous avons également utilisé le port 5566, mais vous pouvez choisir le numéro de port gratuit de votre choix.
- REMARQUE : Vous devez maintenant indiquer le chemin d'accès au pilote Gecko si vous utilisez Firefox. Voici le code mis à jour qui doit être utilisé
java -Dwebdriver.gecko.driver="C:\geckodriver.exe" -jar selenium-server-standalone-3.4.0.jar -role webdriver -hub http://192.168.1.3:4444/grid/register -port 5566
- Lorsque vous appuyez sur Entrée, votre invite de commande doit être similaire à l'image ci-dessous.
Étape 6) Allez à Selenium Interface Web en grille et actualisez la page. Vous devriez voir quelque chose comme ça.
À ce stade, vous avez déjà configuré une grille simple. Vous êtes maintenant prêt à exécuter un test à distance sur la machine B.
Quand utiliser Selenium Grille?
Tu devrais utiliser Selenium Grille lorsque vous souhaitez effectuer l'une ou les deux opérations suivantes :
- Exécutez vos tests sur différents navigateurs, systèmes d'exploitation et machines en même temps. Cela garantira que l'application que vous utilisez USP,EP, BP est entièrement compatible avec une large gamme de combinaisons navigateur-OS.
- Gagnez du temps dans l’exécution de vos suites de tests. Si vous configurez Selenium Grid pour exécuter, disons, 4 tests à la fois, vous pourrez alors terminer toute la suite environ 4 fois plus rapidement.
Grille 1.0 contre grille 2.0
Voici les principales différences entre Selenium Grille 1 et 2.
Grille 1 | Grille 2 |
---|---|
Selenium Le Grid 1 possède sa propre télécommande différente de celle du Selenium Serveur RC. Ce sont deux programmes différents. | Selenium Grid 2 est désormais fourni avec le Selenium Fichier jar du serveur |
Vous devez installer et configurer Apache Ant d'abord avant de pouvoir utiliser la grille 1. | Vous n'avez pas besoin d'installer Apache Ant dans Grid 2. |
Ne peut prendre en charge que Selenium Commandes/scripts RC. | Peut prendre en charge les deux Selenium Scripts RC et WebDriver. |
Vous ne pouvez automatiser qu'un seul navigateur par télécommande. | Une télécommande peut automatiser jusqu'à 5 navigateurs. |
Selenium la grille peut être configurée de deux manières différentes ; l'un via la ligne de commande et l'autre via le fichier de configuration JSON.
Conception de scripts de test pouvant s'exécuter sur la grille
Pour concevoir des scripts de test qui s'exécuteront sur la grille, nous devons utiliser Capacités souhaitées et les RemoteWebDriver objets.
- Capacités souhaitées est utilisé pour définir le type de navigateur ou OS que nous allons automatiser.
- RemoteWebDriver est utilisé pour définir sur quel nœud (ou machine) notre test sera exécuté.
Pour utiliser la Capacités souhaitées objet, vous devez d'abord importer ce package
Pour utiliser la RemoteWebDriver objet, vous devez importer ces packages.
Utilisation de l'objet DesiredCapabilites
Accédez à l'interface Web de Grid et survolez une image du navigateur que vous souhaitez automatiser. Prenez note du Plate-forme, et les nom du navigateur montré par l’info-bulle.
Dans ce cas, la plateforme est « XP » et le nom du navigateur est « »Firefox. »
Nous utiliserons la plateforme et le nom du navigateur dans notre WebDriver comme indiqué ci-dessous (bien sûr, vous devez d'abord importer les packages nécessaires).
Utilisation de l'objet RemoteWebDriver
Importez les packages nécessaires pour RemoteWebDriver, puis transmettez l'objet DesiredCapabilities que nous avons créé ci-dessus en tant que paramètre pour l'objet RemoteWebDriver.
Exécution d'un exemple de scénario de test sur la grille
Vous trouverez ci-dessous un simple WebDriver Tester code que vous pouvez créer dans Eclipse sur la machine A. Une fois que vous l’aurez exécuté, l’automatisation sera effectuée sur la machine B.
import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.*; public class Grid_2 { WebDriver driver; String baseUrl, nodeURL; @BeforeTest public void setUpWthrows MalformedURLException { baseUrl = "http://newtours.demoaut.com/"; nodeURL = "http://192.168.1.4:5566/wd/hub"; DesiredCapabilities capability = DesiredCapabilities.firefox(); capability. setBrowserName("firefox"); capability. setPlatform(Platform.XP); driver = new RemoteWebDriver(new URL(nodeURL), capability); } @AfterTest public void afterTest() { driver.quit(); } @Test public void simpleTest() { driver.get(baseUr1); Assert.assertEquas("Welcome: Mercury Tours", driver.getTitle()); } }
Le test devrait réussir.
Selenium configuration de la grille à l'aide du fichier JSON
JSON signifie Javascript Notation d'objet. Il s'agit d'un format standard utilisé pour l'échange de données entre le navigateur et le serveur Web. Selenium dispose d'un fichier de configuration JSON intégré qui peut être utilisé pour configurer la grille Selenium.
Vous trouverez ci-dessous les étapes pour configurer la grille Selenium à l'aide du fichier de configuration JSON.
Étape 1) Téléchargez le code du fichier de configuration JSON en utilisant le chemin ci-dessous
Voici le code
{ "port": 4444, "newSessionWaitTimeout": -1, "servlets" : [], "withoutServlets": [], "custom": {}, "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher", "registryClass": "org.openqa.grid.internal.DefaultGridRegistry", "throwOnCapabilityNotPresent": true, "cleanUpCycle": 5000, "role": "hub", "debug": false, "browserTimeout": 0, "timeout": 1800 }
Étape 2) Copiez et collez le code sur un éditeur de texte tel que le Bloc-notes avec l'extension « .json »
Étape 3)Lancez le hub à l'aide de la commande ci-dessous à l'aide de l'invite de commande
java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json
NOTE: Selenium fichier jar autonome et le fichier json doit être présent dans le même répertoire
Étape 4) L'écran ci-dessous apparaîtra, indiquant que le hub est configuré avec succès
Étape 5) Ouvrez le navigateur Web et essayez de vous connecter à l'URL ci-dessous
http://192.168.43.223:4444/grid/console
NOTE: L'URL peut varier d'une machine à l'autre. L'URL suivie de « Les nœuds doivent s'inscrire sur » sur l'écran ci-dessus doit être utilisée.
Étape 6) L'écran Grid Console apparaîtra, indiquant que le hub est opérationnel
Configurer NODES à l'aide de JSON
Étape 1) Téléchargez l'exemple de fichier de configuration de nœud fourni par Selenium en utilisant l'URL ci-dessous
NOTE: SI VOUS UTILISEZ SELENIUM 3.0 OU SUPÉRIEUR, LE FICHIER JSON CI-DESSOUS DOIT ÊTRE UTILISÉ
Étape 2) Copiez et collez le code dans un éditeur de texte tel que le Bloc-notes et enregistrez le fichier avec l'extension « .json ».
Étape 3)
Exécutez la commande ci-dessous à l'invite de commande
Java-Dwebdriver.chrome.driver="chromedriver.exe" -Dwebdriver.ie.driver="IEDriverServer.exe" -Dwebdriver.gecko.driver="geckodriver.exe" -jar selenium-server-standalone-2.53.1.jar -role node -nodeConfig node1.json
NOTE: Avant d'exécuter la commande, assurez-vous que les pilotes de chacun des navigateurs ont été téléchargés dans le répertoire de la machine locale.
Étape 4) L'écran ci-dessous apparaîtra lorsque la touche Entrée est enfoncée
Étape 5) Accédez à la console de grille pour vérifier si les nœuds ont été configurés avec succès
Les navigateurs sont affichés sur la console de grille. Nous pouvons donc être sûrs que les nœuds sont configurés avec succès.
Exemples de cas de test activés Selenium La grille:
package com.objectrepository.demo; import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.*; public class SeleniumGrid { WebDriver driver; String baseURL, nodeURL; @BeforeTest public void setUp() throws MalformedURLException { baseURL = "https://demo.guru99.com/test/guru99home/"; nodeURL = "http://192.168.43.223:5566/wd/hub"; DesiredCapabilities capability = DesiredCapabilities.chrome(); capability.setBrowserName("chrome"); capability.setPlatform(Platform.WIN10); driver = new RemoteWebDriver(new URL(nodeURL), capability); } @AfterTest public void afterTest() { driver.quit(); } @Test public void sampleTest() { driver.get(baseURL); if (driver.getPageSource().contains("MOBILE TESTING")) { Assert.assertTrue(true, "Mobile Testing Link Found"); } else { Assert.assertTrue(false, "Failed: Link not found"); } } }
Le code ci-dessus lance le navigateur Chrome et accède à l'URL spécifiée dans la variable « baseURL ». Il a vérifié qu'un nom de lien « Mobile Testing » est affiché sur la page
L'URL de la variable 'nodeURL' peut être modifiée pour refléter l'adresse IP de la machine distante. Le résultat du test peut être vérifié par défaut TestNG rapport généré
Résumé
- Selenium Grid est utilisé pour exécuter plusieurs tests simultanément sur différents navigateurs et plates-formes.
- Grid utilise le concept hub-noeud.
- Le hub est le point central où vous chargez vos tests.
- Les nœuds sont les Selenium instances qui exécuteront les tests que vous avez chargés sur le hub.
- Pour installer Selenium Grid, il vous suffit de télécharger le Selenium Fichier jar du serveur – le même fichier utilisé lors de l’exécution Selenium Essais RC.
- Il existe 2 façons de vérifier si le hub est en cours d'exécution : l'une via l'invite de commande et l'autre via un navigateur.
- Pour exécuter des scripts de test sur la grille, vous devez utiliser les objets DesiredCapabilities et RemoteWebDriver.
- DesiredCapabilites est utilisé pour définir le type de navigateur et de système d'exploitation que nous allons automatiser.
- RemoteWebDriver est utilisé pour définir le nœud (ou la machine) sur lequel notre test s'exécutera.