启动测试时如何将浏览器作为命令行参数传递

DarthOpto

我正在尝试针对Chrome和Firefox运行多浏览器测试。我想一次只运行一个浏览器。因此,我想例如对命令行参数--browser chrome进行测试,并使其仅运行chrome浏览器。

我读过某个地方可以做params: {}我的protractor.config.js的一部分。

因此,我添加了以下内容:

params: {
    browser: multiCapabilities.browserName,
},

我得到的错误如下:

ReferenceError: multiCapabilities is not defined
at Object.<anonymous> (/Users/csalisbury/src/helios/protractor.config.js:91:18)
at Module._compile (internal/modules/cjs/loader.js:678:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:689:10)
at Module.load (internal/modules/cjs/loader.js:589:32)
at tryModuleLoad (internal/modules/cjs/loader.js:528:12)
at Function.Module._load (internal/modules/cjs/loader.js:520:3)
at Module.require (internal/modules/cjs/loader.js:626:17)
at require (internal/modules/cjs/helpers.js:20:18)
at ConfigParser.addFileConfig (/Users/csalisbury/src/helios/node_modules/protractor/built/configParser.js:135:26)
at Object.initFn [as init] (/Users/csalisbury/src/helios/node_modules/protractor/built/launcher.js:93:22)

multiCapabilities定义了一个部分。我也尝试过这样做,capabilities并得到了相同的消息。

我在这里做错了什么?

这是我的 protractor.config.js

exports.config = {
suites: {
    <test suites go here>
},
baseUrl: baseUrl,
directConnect: false,
allScriptsTimeout: 25 * 1000,
jasmineNodeOpts: {
    defaultTimeoutInterval: 90 * 1000
},
getPageTimeout: 120 * 1000,
capabilities: {
    browserName: 'chrome',
    seleniumAddress: seleniumServer,
    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\\'
            },
        },
    },
    loggingPrefs: { browser: 'SEVERE' }
},
capabilities: {
    browserName: 'firefox',
    'moz:firefoxOptions': {
        args: ['--safe-mode'],
        binary: '/Applications/Firefox.app/Contents/MacOS/firefox'
    },
    seleniumAddress: seleniumServer,
},

framework: 'jasmine2',
onPrepare: function() {
    //Set Up a JUnit XML Reporter - Makes a nice test results area and trend graph in Jenkins
    var jasmineReporters = require('jasmine-reporters');
    jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
        consolidateAll: true,
        savePath: 'report',
        filePrefix: 'xmloutput'
    }));

    //Setup screenshots
    jasmine.getEnv().addReporter(reporter);

    browser.get(browser.baseUrl);
},
// Setup the report before any tests start
beforeLaunch: function() {
    return new Promise(function(resolve) {
        reporter.beforeLaunch(resolve);
    });
},
// Close the report after all tests finish
afterLaunch: function(exitCode) {
    return new Promise(function(resolve) {
        reporter.afterLaunch(resolve.bind(this, exitCode));
    });
},

};

贡德森

browserName是使用capabilities-命令行和配置中设置的。因此,使用命令行进行设置仅是:

protractor conf.js --capabilities.browserName='firefox'

从命令行传递的值将覆盖配置中设置的值,因此例如您可以将chrome保留为默认浏览器:

exports.config = {
    capabilities: {
        browserName: 'chrome'
    }
}

然后要覆盖chrome并运行firefox,您只需browserName按照上图所示进行操作即可。

或者,如果您想避免使用命令行选项,而只是按顺序运行每个浏览器,则可以使用multiCapabilities并限制maxSessions允许的数量

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

来源:量角器配置

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将函数中使用的 IP 地址作为命令行参数传递给参数解析器?

如何将XML文件内容作为命令行参数传递给Java命令?

使用R CMD BATCH时如何将字符串作为命令行参数传递

python argh / argparse:如何将列表作为命令行参数传递?

如何将None关键字作为命令行参数传递

如何将临时文件作为命令行参数传递

如何将Packer.io ISO_URL作为命令行参数传递

如何将Shell变量作为命令行参数传递给Shell脚本

如何将模块/方法名称作为命令行参数传递 python 2.7.10

如何将谷歌命令行标志作为参数传递给 GDB

如何将数组作为参数传递给 TCL 脚本命令行运行?

如何将命令行参数传递给从可执行脚本启动的NodeJS

如何将命令行参数传递给Deno?

如何将命令行参数传递给GHCi

如何将命令行参数传递给gnuplot?

如何将命令行参数传递给sed?

从 Java 启动 Chrome 无头作为命令行应用程序进程时,如何正确传递参数?

如何将浏览器参数传递给Watir

如何在Google Chrome浏览器中添加启动选项/命令行选项

如何从命令行在特定网页上启动Tor浏览器?

如何将包含空格的文件名作为参数传递给命令行程序?

如何从命令行设置默认浏览器?

如何从命令行安装浏览器?

将数组作为命令行参数传递给脚本

使用 xargs 将数组作为命令行参数传递

无法将'#'字符作为命令行参数传递

将'*'作为命令行参数传递给Shell脚本

如何将超过 10 个命令行参数传递给 jmeter 命令行运行?

通过解析器将json文件作为命令行参数传递,这可能吗?