如何通过selenium网格在特定浏览器上运行测试

时间:2017-12-04 11:01:40

标签: selenium selenium-webdriver protractor selenium-grid selenium-grid2

我已经在Windows 7和Windows 10上使用chrome浏览器注册了两个平台到selenium网格服务器。

我想在Windows 10上的Chrome浏览器上运行测试,但是当我运行测试时,测试会在Windows 7上随机运行,并在Chrome上随机运行在Windows 10上。

当我们注册多个平台时,您是否知道如何在特定浏览器和平台上运行测试?

毂:

java -jar selenium-server-standalone-3.7.1.jar -role hub

在Windows 7上注册节点:

java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444

在Windows 10上注册节点:

java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444

protractor.conf.js

exports.config = {

    specs: [
        '**/*.mytest.e2e-spec.ts'
    ],
    multiCapabilities: [
        {
            browserName: 'chrome',
            platform: 'WIN10',
        }
    ],
    seleniumAddress: 'http://localhost:4444/wd/hub',
    baseUrl: 'http://localhost:4200/',
    framework: 'jasmine',
    jasmineNodeOpts: {
        print: function () {
        }
    },
    onPrepare: function () {
        require('ts-node').register({
            project: 'e2e/tsconfig.e2e.json'
        });
    }
};

4 个答案:

答案 0 :(得分:1)

硒网格安装过程:-

  1. 要在其中下载Selenium服务器独立jar文件 创建中心
  2. 创建一个新的Java项目并将其添加到构建路径

在计算机中使用以下命令启动集线器:-

  1. java -jar selenium-server-standalone-3.9.1.jar –角色集线器-端口4446

  2. 在主机浏览器“或” localhost中打开IP地址/网格/控制台

在另一台计算机上使用以下命令启动节点:

  1. 在另一台笔记本电脑中下载Selenium服务器独立jar文件

  2. 节点不必包含eclipse。但是应该安装Java。

  3. 转到保留硒独立的文件路径

  4. 在命令下方键入

  5. java -jar selenium-server-standalone-3.9.1.jar –role Webdriver –hub ipaddress / grid / 注册–端口5566

(但此处的测试将失败,因为集线器中未提供chrome驱动程序或gecko驱动程序的文件路径。)

  1. java –Dwebdriver.chrome.driver =“为Chrome驱动程序提供路径” -jar selenium-server-standalone-3.9.1.jar –role webdriver –hub ipaddress / grid / register –port 5566

答案 1 :(得分:0)

您需要调整用于注册节点的命令,如下所示:

  • Windows 7注册节点:

    java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444/grid/register
    
  • Windows 10注册节点:

    java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444/grid/register
    

答案 2 :(得分:0)

根据您的问题和DebanjanB的回答,您有两个节点和两个集线器。您需要使用相同的集线器注册节点。请尝试以下配置,它可能会有效。

  1. 使用以下命令

    在Windows 7计算机上启动集线器

    java -jar selenium-server-standalone-3.7.1.jar -role hub

  2. 使用以下命令

    在Windows 7上启动/注册您的第一个节点

    java -Dwebdriver.chrome.driver = chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node

  3. 使用以下命令

    在Windows 10上启动/注册您的第二个节点

    java -Dwebdriver.chrome.driver = chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://“Windows 7 machine的IP地址”:4444 / grid /注册

  4. 要验证节点是否已在集线器上列出,只需在Windows 7计算机上打开网址http://localhost:4444/grid/console即可。然后,验证页面上是否列出了您的节点。

  5. 您必须从Windows 7计算机运行脚本,因为您的selenium地址使用的是localhost地址(seleniumAddress:'http://localhost:4444/wd/hub')。如果你想从Windows 10机器或任何其他机器运行。将selenium地址更改为配置文件中的“http://”windows7ipaddress“:4444 / wd / hub'。

  6. 我在我的机器上测试过它工作正常。它将在Windows 10计算机上启动chrome,因为您的multiCapabilities平台值为WIN10。

    注意:在需要的地方替换ip地址值。

答案 3 :(得分:0)

我建议您执行以下操作

  • 创建一个节点配置文件,如here所示,其中对于WINDOWS7节点,您指定适当的平台(确保从here中选择一个值)
  • 现在,您可以通过使用命令行参数-nodeConfig node.json指定新创建的nodeConfig json来启动节点(有关详细信息,请参阅我的博客文章here

现在基于测试指定的PLATFORM功能,它将被路由到适当的节点。