2 votes

Comment faire fonctionner plusieurs navigateurs sur un hub en utilisant Selenium Grid2

Je fais un test :

DesiredCapabilities capability = DesiredCapabilities.Firefox();
                IWebDriver driver = new RemoteWebDriver(new Uri("http://localhost:4444/wd/hub"), capability);

                ISelenium selenium = new WebDriverBackedSelenium(driver, "http://localhost/");
                selenium.Start();

Cela lance le navigateur Firefox, et dans le http://localhost:4444/grid/console Dans la vue de la console web, je peux voir qu'un navigateur Firefox est en cours d'exécution. Comment puis-je utiliser plus d'un navigateur sur le nœud en parallèle ?

J'utilise la page wiki de Grid2 trouvé ici

8voto

A.J Points 3363

Vous devez déclencher 5 tests simultanément - tous pointant vers le même hub, pour utiliser tous les navigateurs. En recevant les commandes des différents tests, le hub transmettra ces commandes aux RCs correspondant à la capacité. Vous pouvez voir plus de détails dans cette page : http://selenium-grid.seleniumhq.org/how_it_works.html .

Par ce site:-

Bien sûr, pour tirer réellement parti de la grille Selenium, vous devez exécuter vos tests en parallèle. Si vous écrivez vos tests Selenium en Java, vous pouvez tirer parti des exécutions parallèles de TestNG ou de JUnit parallèle. Si vous préférez écrire vos tests Selenium en Ruby, vous pouvez vous intéresser à DeepTest ou spawn plusieurs processus. Il y a de fortes chances que votre langage de programmation et votre plate-forme de développement préférés ont déjà une solution.

EDIT : Le site donné ci-dessus était pour la version Selenium 1.x et non pour Grid 2.0. Cependant, le concept sous-jacent pour exécuter des tests parallèles reste le même.

EDIT2 : Les étapes et les programmes d'exemple sont ci-dessous. Veuillez noter qu'il s'agit d'un test très basique UNIQUEMENT pour vous montrer comment Grid exécute des tests en parallèle.

Étape 1 - Démarrer Grid Hub java -jar selenium-server-standalone.jar -role hub

Étape 2 - Démarrer les nœuds RC. Les tests que nous utilisons par exemple sont des tests webdriver. Nous devons donc démarrer les nœuds webdriver. Cette commande va démarrer un nœud webdriver qui supporte 5 navigateurs firefox, 5 googlechrome et 1 navigateur IE. Ceci est la configuration par défaut de webdriver.

java -jar selenium-server-standalone.jar -role wd -hub http://localhost:4444/grid/register

Étape 3 - Créez 5 programmes distincts semblables à celui donné ci-dessous. Ce programme est en JAVA. Vous devez le changer pour le langage dont vous avez besoin. Changez le nom de la classe en Programme2, Programme3, etc. Comme mentionné précédemment, ce n'est pas la meilleure façon d'exécuter des tests en parallèle. Vous devez utiliser testNG ou jUnit pour déclencher plusieurs tests en même temps. Comme il s'agit d'un sujet différent en soi, je ne vais pas l'expliquer ici.

public class Program1{
        public static void main(String args[]){

            WebDriver wd;
            //Assign a remotewebdriver object to webdriver with firefox capability
            wd=new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"),DesiredCapabilities.firefox());
            wd.get("http://www.google.com");
            //Sleep for 2 seconds so that RC will not be released. This is to demonstrate Hub using multiple RCs
            Thread.sleep(120000);
            //Close webdriver
            wd.quit();

        }
    }

Étape 4 - Exécutez les 5 programmes simultanément.

Étape 5 - Regardez la grille faire la magie d'exécuter 5 tests en parallèle :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X