Selenium Grid - Guide rapide d'utilisation
23 octobre 2022

Licence Creative Commons

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 standalone

Commande 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

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


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: