刚刚开始使用量角器进行E2E测试。使用量角器为每个浏览器传递参数
我想为每个铬硒服务器实例传递参数(登录名和密码)。 我想用不同的用户帐户并行测试相同的spec文件。
这是我conf.js:
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
'args': ['--disable-web-security']
},
count: 10
},
刚刚开始使用量角器进行E2E测试。使用量角器为每个浏览器传递参数
我想为每个铬硒服务器实例传递参数(登录名和密码)。 我想用不同的用户帐户并行测试相同的spec文件。
这是我conf.js:
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
'args': ['--disable-web-security']
},
count: 10
},
你可以用Protractor's params
在命令行上处理这个问题。例如,你可以用这样一个不同的用户名/密码启动每个测试:
protractor conf.js --params.username user1 --params.password password1
然后,在您的测试,你会使用它们像这样:
logIntoMyApp(browser.params.username, browser.params.password);
您还可以设置默认值在你的配置文件中(详见文档)。
您可以使用量角器的onPrepare
-method。如果正在运行多个功能,则每个功能都会运行一次。您可以将数据添加到可在执行期间使用的浏览器对象。
你可以做的就是这样的事情
// A JSON file or something
var login = {
"chrome": {
"user": "usernameChrome",
"pass": "passwordChrome"
},
"firefox": {
"user": "usernameFirefox",
"pass": "passwordFirefox"
}
};
// in your config
// An example configuration file.
exports.config = {
directConnect: true,
// Capabilities to be passed to the webdriver instance.
multiCapabilities: [{
'browserName': 'chrome'
},
{
'browserName': 'firefox'
}
],
// Framework to use. Jasmine is recommended.
framework: 'jasmine',
// Spec patterns are relative to the current working directory when
// protractor is called.
specs: ['example_spec.js'],
// Options to be passed to Jasmine.
jasmineNodeOpts: {
defaultTimeoutInterval: 30000
},
onPrepare: function() {
return browser.getCapabilities()
.then((capabilities) => {
// Get the current browser you are using
browser.browserName = capabilities.get('browserName').toLowerCase();
// Add the user and pass to the browser-object
browser.user = login[browser.browserName].user;
browser.pass = login[browser.browserName] pass;
});
}
};
// In your spec
describe('logon', function() {
it('should logon', function() {
browser.get('http://www.example.com');
element(by.model('user')).sendKeys(browser.user);
element(by.model('pass')).sendKeys(browser.pass);
element(by.tagName('button')).click();
});
});
思卤水为您重播。但在我的情况下,我想要为每个创建的实例传递参数。我在conf.js'count:10'中使用了attribut属性。因此,所有chrome实例都将使用user1作为登录名,password1作为密码。我想例如第一个实例使用Login1和Password1,第二个使用Login2和Password2 .... –
在这种情况下,您的问题没有足够的信息。我建议更充实,并包括你真正想要完成的事情。例如。你想要做负载测试吗?祝你好运。 – Brine