我们有量角器-黄瓜框架作为e2e测试。到现在为止,我们使用conf文件并静态提及conf json中的环境详细信息。我想通过protractor_conf文件传递用户定义的参数,如下所示。
destinations
,并希望在conf.js中获取此参数,并在功能部分下替换。我无法从网上获得适当的详细信息,因此将不胜感激。
答案 0 :(得分:1)
您可以在 conf.js 文件中添加参数,然后从命令行传递 arugs 。
这里是一个例子。
// The params object will be passed directly to the Protractor instance,
// and can be accessed from your test as browser.params. It is an arbitrary
// object and can contain anything you may need in your test.
// This can be changed via the command line as:
// --params.environment.Browser "Firefox"
params: {
environment: {
browser: 'Chrome',
execPlatform: 'sauce',
password: 'default'
}
}
现在我们可以从命令行传递arugs
protractor conf.js --parameters.environment.browser= Firefox --parameters.environment.execPlatform=sauce --parameters.environment.password=password123
接下来,您还可以在规范文件中引用这些参数。
describe('describe some test', function() {
it('describe some step', function() {
$('.password').sendKeys(browser.params.login.password);
});
});
设置参数有很多优点。
答案 1 :(得分:0)
您可以使用process
api来解析cmd行中的参数。
// protractor conf.js
var readParamsFromCli = function() {
var paramsPair = process.argv.slice(3).filter(function(it){
return it.startsWith('-D');
});
var params = {};
paramsPair.forEach(function(pair){
var parts = pair.split('=');
var name = parts[0].trim().replace('-D', '');
var value = parts[1] && parts[1].trim() || true;
params[name] = value;
});
return params;
};
var params = readParamsFromCli();
var capbilities = {
browserName: params.browserName || 'chrome',
platform: params.execPlatform
};
exports.config = {
...
capbilities: capbilities
};
然后您可以按以下方式运行case:
protractor protractor_conf.js -DbrowserName=chrome -DexecPlatform=native
答案 2 :(得分:0)
您可以将配置分成多个配置文件。例如 protractor-chrome.conf.js :
const baseConf = require('./protractor.conf').config;
exports.config = Object.assign({
capabilities: {
browserName: 'chrome'
}
}, baseConf);
答案 3 :(得分:0)
这将类似于第二个示例,但直接使用配置文件。
const args = require('minimist')(process.argv.slice(2));
exports.config = {
//your config stuff
baseUrl: args.Url ? args.URL : <your default>,
capabilities: {
'browserName': 'chrome',
chromeOptions: {
args: [args.Options]
},
}
}
然后在您的package.json脚本中像这样:
"e2e": "protractor protractor.conf.js --Url=http://test.com" --Options=--headless