量角器:参数化配置

时间:2016-01-26 23:49:35

标签: protractor saucelabs

我需要在运行时修改Protractor配置的几个元素,最重要的是multiCapabilities对象的一些值:

...
multiCapabilities: [
    {
        'build': buildNumber,
        'app': 'app' + buildNumber + '.apk',
        'browserName': '',
        'appiumVersion': '1.4.16',
        'deviceName': 'Android Emulator',
        'deviceOrientation': 'portrait',
        'platformVersion': '5.1',
        'platformName': 'Android',
        'autoWebview': true
    },
    {
       ...
    }
],
...

具体来说,我正在针对已上传到SauceLabs的应用程序的特定版本运行这些测试。我希望能够以某种方式动态设置'build'和'app'值。

不幸的是,Grunt Protractor Runner不支持multiCapabilities功能,否则可以使用该包装器进行处理。

1 个答案:

答案 0 :(得分:1)

一种选择是使用browser.params并从命令行参数中参数化您的测试。在这种情况下,请使用getMultiCapabilities()方法:

getMultiCapabilities: function () {
    var buildNumber = browser.params.build,
        app = browser.params.app;

    return [
        {
            'build': buildNumber,
            'app': app,
            'browserName': '',
            'appiumVersion': '1.4.16',
            'deviceName': 'Android Emulator',
            'deviceOrientation': 'portrait',
            'platformVersion': '5.1',
            'platformName': 'Android',
            'autoWebview': true
        },
        {
           ...
        }
    ],
},

用法:

protractor protractor.conf.js --params.build="build" --params.app="app"