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

How to run test on specific browser by selenium grid

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

我想 运行 在 Windows 10 上的 Chrome 浏览器上进行测试,但是当我 运行 测试时,随机测试 运行 Windows 7 随机 运行 Windows 10 chrome.

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

中心:

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'
        });
    }
};

您需要调整注册节点的命令如下:

  • 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
    

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

  1. 使用以下命令在 windows 7 机器上启动集线器,

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

  2. Start/register 您在 windows 7 上的第一个节点使用以下命令,

    java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -角色节点

  3. start/register 您在 windows 10 上的第二个节点使用以下命令,

    java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http: //"IP Address OF Windows 7 machine":4444/grid/register

  4. 要验证集线器上列出的节点,只需在 windows 7 机器上打开 url http://localhost:4444/grid/console。然后,验证您的节点列在页面上。

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

我已经在我的机器上测试过它工作正常。它将在 windows 10 机器上启动 chrome,因为您的 multiCapabilities 平台值为 WIN10。

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

我建议您执行以下操作

  • 创建节点配置文件 here, wherein for the WINDOWS7 node, you specify the appropriate platform (make sure you pick a value from here)
  • 现在您通过使用命令行参数 -nodeConfig node.json 指定这个新创建的 nodeConfig json 来启动节点(有关详细信息,请参阅我的博客 post here )

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

Selenium Grid安装过程:-

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

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

  1. java -jar selenium-server-standalone-3.9.1.jar –role hub -port 4446

  2. 在主机浏览器中打开 ip address/grid/console "or" localhost: portnumber/grid/console

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

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

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

  3. 转到selenium standalone所在的文件路径

  4. 键入以下命令

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

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

  1. java –Dwebdriver.chrome.driver="provide path for chrome driver" -jar selenium-server-standalone-3.9.1.jar –role webdriver –hub ipaddress/grid/register –port 5566