我找不到任何有关如何设置此信息,但它似乎是一个非常基本的概念,所以我确定有一个答案。
我知道如何通过在配置中设置capabilities对象的browserName属性,在不同的浏览器上运行量角器。这是工作伟大。我可以设置为“chrome”或“firefox”或任何我需要,它运行正如预期。但是,对于多个浏览器运行单个测试套件的唯一方法(就我所知)是创建单独的配置文件,每个配置文件使用不同的browserName,然后运行每个浏览器以及自己的配置。这工作,但它真的很慢,因为测试然后按顺序,而不是并发运行。
有没有办法在多个浏览器上并行运行它?
可以在SauceLabs上完成吗?或者甚至使用本地Selenium网格?
我们只是想简化我们的测试过程,这将是一个巨大的帮助。任何建议或信息将非常感激。提前致谢。
2014年2月更新 – 此答案不再有效。使用Paolo Moretti的答案如下。
可能有更好的方法来做到这一点,但目前我只是执行这些作为并发Grunt任务。
npm install grunt-concurrent --save-dev
2)在grunt.initConfig下为每个浏览器添加一个任务。我们可以添加浏览器作为参数重新使用我们的配置文件。
protractor: { options: { keepAlive: true,singleRun: false,configFile: "test/protractor.conf.js" },run_chrome: { options: { args: { browser: "chrome" } } },run_firefox: { options: { args: { browser: "firefox" } } } },
3)注册这些任务;
grunt.registerTask('protractor-chrome',['protractor:run_chrome']); grunt.registerTask('protractor-firefox',['protractor:run_firefox']);
4)在grunt.initConfig下创建并发任务
concurrent: { protractor_test: ['protractor-chrome','protractor-firefox'] },
5)为并发添加grunt任务
grunt.registerTask('protractor-e2e',['concurrent:protractor_test']);
和执行,应该给你同时量角器测试。