Introduction
Dans certaines situations, l'exécution de tests automatisés multi-plateformes avec différents type de navigateurs web sera nécessaire. Selenium Grid qui est l'un des outils de la suite Selenium a été conçu pour répondre à ce genre de besoin. Il permet la prise de contrôle à distance d'un ou plusieurs navigateurs web installés sur divers machines. Grâce à Selenium Grid, vous pouvez également paralléliser l'exécution de vos tests automatisés.
Mode standalone, hub et nodes
Il existe deux types de configuration pour l'utisation de Selenium Grid. Le mode standalone et le mode hub associé à des noeuds Selenium.
Le mode standalone
Le mode hub associé à des noeuds selenium
Téléchargement
Téléchargements des drivers pour les navigateur web
Driver | Lien |
---|---|
chromedriver | https://chromedriver.chromium.org/downloads (Chrome) |
msedge | https://developer.microsoft.com/fr-fr/microsoft-edge/tools/webdriver (Microsoft Edge) |
geckodriver | https://github.com/mozilla/geckodriver/releases (Mozilla Firefox) |
operadriver | https://github.com/operasoftware/operachromiumdriver/releases (Opera) |
Téléchargements de Selenium Grid
Tutoriel d'utilisation
Mode standaloneCommande pour lancer le serveur en mode standalone
java -Dwebdriver.chrome.driver=./browserdriver/chromedriver.exe -Dwebdriver.gecko.driver=./browserdriver/geckodriver.exe -Dwebdriver.edge.driver=./browserdriver/msedgedriver.exe -Dwebdriver.gecko.driver=./browserdriver/operadriver.exe -jar selenium-server-4.0.0.jar standalone
Les drivers « chromedriver.exe », « geckodriver.exe », « msedgedriver.exe » sont placés dans le dossier « browserdriver ».
En utilisant un navigateur web, ouvrir le lien http://adresse_ip_server_selenium:4444 pour vérifier le lancement du serveur selenium en mode standalone
Mode Hub associé à des noeuds Selenium
Commande pour lancer le serveur Hub
java -jar selenium-server-4.0.0.jar hub --session-request-timeout 500 --tracing false
Le port 4444 est le numéro de port par défaut du serveur hub.
En utilisant un navigateur web, ouvrir le lien http://adresse_ip_server_hub:4444 pour vérifier le lancement du serveur selenium en mode hub
Commande pour lancer un serveur node
La commande ci-dessous est lancé à l'intérieur de le machine « node 2 » et <adresse_ip_serveur_hub> = 10.0.0.10 (voir schema ci-dessus). 4442 et 4443 sont les numéros de ports à indiquer lorsque le port par défaut du serveur selenium est utilisé (port n°4444).
java -Dwebdriver.chrome.driver=./browserdriver/chromedriver.exe -Dwebdriver.gecko.driver=./browserdriver/geckodriver.exe -Dwebdriver.edge.driver=./browserdriver/msedgedriver.exe -jar selenium-server-4.0.0.jar node --publish-events tcp://<adresse_ip_serveur_hub:4442 --subscribe-events tcp://<adresse_ip_serveur_hub>:4443
Client
Coté client, il faudra indiquer le navigateur web qui doit être utilisé.
Recommandation W3C: https://www.w3.org/TR/webdriver1/#capabilities
Client | Lien |
---|---|
Librarie Selenium Webdriver | |
Framework WebdriverIO |
- Chrome → https://chromedriver.chromium.org/capabilities
- MSEdge → https://learn.microsoft.com/fr-fr/microsoft-edge/webdriver-chromium/capabilities-edge-options
Exemples
• Configuration avec le framework WebDriverIO
// ===================== // Server Configurations // ===================== // // hostname: '10.0.0.10', port: 4444, path: '/wd/hub', [ ... ] // ============ // Capabilities // ============ // capabilities: [ { browserName: 'chrome', 'goog:chromeOptions': { args: [ '--window-size='1366,768', '--force-device-scale-factor=1', '--log-level=1' ], prefs: { 'directory_upgrade': true, 'prompt_for_download': false, 'download.default_directory': "C:\\Users\Admin\Downloads\Browser\Chrome" } }, } ],
• Configuration avec la librarie Selenium WebDriver
ChromeOptions chromeOptions = new ChromeOptions(); chromeOptions.setCapability("platformName", "Windows 10"); WebDriver driver = new RemoteWebDriver(new URL("http://10.0.0.10/wd/hub"), chromeOptions); //WebDriver driver = new RemoteWebDriver(new URL("http://10.0.0.10"), chromeOptions); driver.get("http://www.google.com"); driver.quit();
Vous pouvez lancer simultanément plusieurs clients pour paralléliser l'éxecution de vos tests automatisés.
Références: