剛剛開始使用量角器進行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