在Protractor中对多个/并行浏览器进行E2E测试?

时间:2014-12-02 00:16:19

标签: javascript angularjs selenium testing protractor

使用Protractor如何设置/添加并行浏览器以进行测试。

示例:不仅chrome,还有firefox的测试套件?还有一种简单的移动测试方法吗?说ios8 safari还是移动铬?

问题:

如何在并行套件测试中编写exports.config对象以支持chrome and firefox

   exports.config = {
      multiCapabilities: [
        {
          'browserName': 'chrome',
          'chromeOptions': {
            args: ['--test-type']
          }
        }
      ]}
    suites: {
        homePageFooter: 'protractor/homePage/footer.spec.js'
      },

1 个答案:

答案 0 :(得分:9)

  

使用Protractor如何设置/添加并行浏览器以进行测试。

您需要在multiCapabilities中列出您的浏览器:

multiCapabilities: [{
  'browserName': 'firefox'
}, {
  'browserName': 'chrome'
}]
  

还有一种简单的移动测试方法吗?说ios8野生动物园或   移动铬?

一种选择是使用Appium框架,以下是相关的文档部分:

另一个选择是使用Browserstack(或Sauce Labs作为您的selenium服务器。有huge variety of browsers/platforms可供选择,包括不同的移动设备。

以下是我们其中一个内部项目的示例配置:

'use strict';

var browserstackUser = 'user';
var browserstackKey = 'key';

exports.config = {
    multiCapabilities: [
        {
            'browserstack.user': browserstackUser,
            'browserstack.key': browserstackKey,
            'browserstack.local': 'true',
            'browserstack.debug': 'true',

            'browserName': 'Chrome',
            'os': 'Windows',
            'os_version': '8',

            specs: [
                '*.spec.js'
            ],
            exclude: [
                'footer.disabledCookies.spec.js',
                'footer.disabledFlash.spec.js'
            ]
        },

        {
            'browserstack.user': browserstackUser,
            'browserstack.key': browserstackKey,
            'browserstack.local': 'true',
            'browserstack.debug': 'true',

            'browserName': 'Internet Explorer',
            'browser_version': '9.0',
            'os': 'Windows',
            'os_version': '7',
            'resolution': '1024x768',

            specs: [
                '*.spec.js'
            ],
            exclude: [
                'footer.disabledCookies.spec.js',
                'footer.disabledFlash.spec.js'
            ]
        }
    ],

    maxSessions: 2,

    // Browserstack's selenium server address
    seleniumAddress: 'http://hub.browserstack.com/wd/hub',

    framework: 'jasmine',

    allScriptsTimeout: 300000,

    baseUrl: 'http://localhost:9001',

    onPrepare: function () {
        require('jasmine-reporters');
        var capsPromise = browser.getCapabilities();
        capsPromise.then(function (caps) {
            var browserName = caps.caps_.browserName.toUpperCase();
            var browserVersion = caps.caps_.version;
            var prePendStr = browserName + "-" + browserVersion + "-";
            jasmine.getEnv().addReporter(new
                jasmine.JUnitXmlReporter("test-results", true, true, prePendStr));
        });
    },

    jasmineNodeOpts: {
        showColors: true,
        isVerbose: true,
        includeStackTrace: true,
        defaultTimeoutInterval: 3600000
    }
};