首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >量角器-在不同的浏览器上并行运行多个测试

量角器-在不同的浏览器上并行运行多个测试
EN

Stack Overflow用户
提问于 2013-12-19 21:27:03
回答 6查看 41K关注 0票数 36

我找不到任何关于如何设置这个概念的信息,但这似乎是一个非常基本的概念,所以我确信有一个答案。

我知道如何通过在配置中设置browserName对象的capabilities属性在不同的浏览器上运行量角器。效果很好。我可以将它设置为'chrome''firefox'或任何我需要的东西,并且按预期运行。但是,针对多个浏览器运行单个测试套件的唯一方法(据我所知)是创建单独的配置文件,每个配置文件具有不同的browserName,然后使用自己的配置运行每个浏览器。这是可行的,但是它非常慢,因为测试是按顺序运行的,而不是同时运行的。

有任何方法可以在多个浏览器上并行运行吗?

它能在SauceLabs上完成吗?或者甚至使用本地Selenium-Grid?

我们只是试图简化我们的测试过程,这将是一个巨大的帮助。如有任何建议或信息,将不胜感激。提前谢谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-12-23 07:13:28

更新2014年2月-这个答案不再有效。下面使用Paolo Moretti的答案。

也许有更好的方法来实现这一点,但目前我只是作为并发Grunt任务来执行这些任务。

1)添加grunt并发插件

代码语言:javascript
复制
npm install grunt-concurrent --save-dev

2)在grunt.initConfig下为每个浏览器添加一个任务。我们可以添加浏览器作为一个arg来重用我们的配置文件。

代码语言:javascript
复制
protractor: {
        options: {
            keepAlive: true,
            singleRun: false,
            configFile: "test/protractor.conf.js"
        },
        run_chrome: {
            options: {
                args: {
                    browser: "chrome"
                }
            }
        },
        run_firefox: {
            options: {
                args: {
                    browser: "firefox"
                }
            }
        }
    },

3)将其登记为任务;

代码语言:javascript
复制
grunt.registerTask('protractor-chrome', ['protractor:run_chrome']);
grunt.registerTask('protractor-firefox', ['protractor:run_firefox']);

4)在grunt.initConfig下创建并发任务

代码语言:javascript
复制
concurrent: {
        protractor_test: ['protractor-chrome', 'protractor-firefox']
    },

5)添加并发任务。

代码语言:javascript
复制
grunt.registerTask('protractor-e2e', ['concurrent:protractor_test']);

并且执行它应该会给你并发的量角器测试。

票数 22
EN

Stack Overflow用户

发布于 2014-02-20 14:40:21

有一个名为multiCapabilities的新选项:

代码语言:javascript
复制
multiCapabilities: [{
  'browserName': 'chrome'
}, {
  'browserName': 'firefox'
}],

这是一个complete example

票数 65
EN

Stack Overflow用户

发布于 2014-06-16 18:41:05

使用multiCapabilities将在每个浏览器中运行所有测试。因此,下面的配置将运行每个测试两次,一次在Firefox中,一次在Chrome中:

代码语言:javascript
复制
multiCapabilities: [{
  'browserName': 'chrome'
}, {
  'browserName': 'firefox'
}],

如果您希望每个测试文件只运行一次,但在多个浏览器中分开运行,那么使用splitTestsBetweenCapabilities选项:

代码语言:javascript
复制
splitTestsBetweenCapabilities: true

This blog post将进一步详细介绍splitTestsBetweenCapabilities

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20692008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档