我可以在protractor.config.js中使用`seleniumAddress`字段获取参数吗?

时间:2017-05-08 18:39:36

标签: javascript protractor

我有一个Windows框和一个Ubuntu框,我在其上运行自动化测试。目前,在我的protractor.config.js文件中,我的seleniumAddress部分下有两个multiCapabilities: [{}]字段,只是根据我想要投放的环境注释掉其中一个。

有没有办法参数化seleniumAddress:所以我可以从我的命令行告诉运行哪个环境?

这样的事情:gulp e2e --suite <suiteName> --baseUrl <URL> --environment Windows

以下是我的量角器配置文件中的当前multiCapabilities部分:

&#13;
&#13;
    multiCapabilities: [{
        browserName: 'chrome',
        // seleniumAddress: "URL to webdriver-manager Windows Box",
        seleniumAddress: "URL to webdriver-manager Ubuntu Box",
        platform: 'ANY',
        version: 'ANY',
        chromeOptions: {
            args: ['--no-sandbox', '--test-type=browser', '--lang=en', '--window-size=1680,1050'],
            prefs: {
                'credentials_enable_service': false,
                'profile': {
                    'password_manager_enabled': false
                },
                download: {
                    prompt_for_download: false,
                    directory_upgrade: true,
                    default_directory: 'C:\\downloads\\'
                },
            },
        }
        // shardTestFiles: true,
        // maxInstances: 2
    }],
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

Protractor在Node.js上运行,所以你应该能够传递一个参数(稍微复杂一点),或者更容易设置一个环境变量:

添加了环境变量逻辑Protractor website的量角器conf片段:

// Use the Windows selenium if the environmental variable IS_WINDOWS is set. 
const seleniumServer = process.env.IS_WINDOWS ?
    'https://path/to/windows-silenium' : 'https://path-to-default-selenium';

exports.config = {
  // The address of a running selenium server.
  seleniumAddress: seleniumServer,

  // Capabilities to be passed to the webdriver instance.
  capabilities: {
    'browserName': 'chrome'
  },

  // Spec patterns are relative to the configuration file location passed
  // to protractor (in this example conf.js).
  // They may include glob patterns.
  specs: ['example-spec.js'],

  // Options to be passed to Jasmine-node.
  jasmineNodeOpts: {
    showColors: true, // Use colors in the command line report.
  }
};

我不太确定您想要选择什么(我不会使用gulp),但对于上面的代码段,您可能会使用:

IS_WINDOWS=true gulp e2e --suite <suiteName> --baseUrl <URL>