【问题标题】:Running e2e tests using Protractor multiCapabilities config but limit max Webdriver instances使用 Protractor multiCapabilities 配置运行 e2e 测试,但限制最大 Webdriver 实例
【发布时间】:2014-02-25 09:07:10
【问题描述】:

上下文

我正在尝试带有 multiCapabilities 配置选项的全新 Protractor 0.19.0。它实际上按照文档中的描述工作:

  1. 它使在多个浏览器上运行测试变得更加容易(无需 grunt 或脚本,只需 1 个配置文件)。
  2. 它使测试并行运行

第二点对我来说是个问题。我的一个应用程序不处理与数据的多个连接,这意味着测试失败。

我的问题是:

是否可以限制 Webdriver 的最大实例数以禁用此应用的并行测试?

我的尝试

我在Selenium Webdriverjs Grid2 wiki 中发现有一个maxSession 参数非常适合我的情况!但是我尝试将它添加到我的 Protractor 配置中,但没有成功。

maxSession 也在Desired Capabilities 中。有人知道它是否还在工作吗?

这是multiCapabilities PR topic的链接,我在那里留下了评论。

如果您需要更多信息,请随时询问:)

提前致谢!!

编辑:专用GitHub issue

EDIT2:我最近尝试将seleniumArgs: ['-maxSession=1'] 添加到我的量角器配置中,不幸的是这也不起作用......

【问题讨论】:

    标签: angularjs selenium-webdriver integration-testing protractor


    【解决方案1】:

    this commit 中实现并在 0.24.0 中发布(参见 Protractor changelog)。

    您需要在量角器配置文件中添加一个 maxSessions 选项,其值 >=1(否则为 considered as unlimited)。

    protractor.config.js 示例:

    exports.config = {
      seleniumAddress: 'http://127.0.0.1:4444/wd/hub',
    
      specs: [
        '../e2e/**/*.js'
      ],
    
      multiCapabilities: [
        {'browserName': 'chrome'},
        {'browserName': 'firefox'},
        {'browserName': 'phantomjs'}
      ],
    
      maxSessions: 1,
    
      baseUrl: 'http://localhost:8000'
    };
    

    针对我的案例进行了测试并按预期工作。

    【讨论】:

    • 对于那些使用grunt-protractor-webdriver的人:这种方法默认不起作用,因为keepAlive默认为false。将其显式设置为 true 即可。
    • @lok​​i2302 感谢您提供此信息 ;)
    【解决方案2】:

    我认为您可以通过在命令行中启动 selenium 节点并给出:

    MaxInstances 这表示....同一版本的浏览器可以在远程系统上运行多少个实例。

    MaxSession 这表示....有多少浏览器(任何浏览器和任何版本) 可以在远程系统中一次并行运行。所以这会覆盖 Max Instances 设置,并且可以限制可以并行运行的浏览器实例的数量。

    from this answer

    所以你将这样运行你的节点:

    java -jar selenium-server-standalone-2.14.0.jar -role node  -hub http://******:4444/grid/register -maxSession 5 
    

    【讨论】:

    • 你用这种方式启动 selenium 服务器吗?因为现在我使用 Protractor 提供的webdriver-manager start,它不接受这个 arg
    • 我还使用 webdriver-manager -start 启动它,因为我还没有使用网格,但我已经在其他项目中以这种方式启动它,它只需将 selenium JAR 文件放在你的路径中或启动selenium jar 文件夹中的命令
    猜你喜欢
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 2018-01-23
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多