Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 使用量角器传递每个浏览器的参数_Selenium_Protractor - Fatal编程技术网

Selenium 使用量角器传递每个浏览器的参数

Selenium 使用量角器传递每个浏览器的参数,selenium,protractor,Selenium,Protractor,刚刚开始E2E测试的量角器 我想为chrome selenium服务器的每个实例传递参数(登录名和密码)。 我想用不同的用户帐户并行测试相同的规范文件 这是我的conf.js: capabilities: { 'browserName': 'chrome', 'chromeOptions': { 'args': ['--disable-web-security'] }, count: 10 },

刚刚开始E2E测试的量角器

我想为chrome selenium服务器的每个实例传递参数(登录名和密码)。 我想用不同的用户帐户并行测试相同的规范文件

这是我的conf.js:

 capabilities: {
        'browserName': 'chrome',
        'chromeOptions': {
            'args': ['--disable-web-security']
        },
        count: 10
    },
您可以在命令行上使用来处理此问题。例如,您可以使用不同的用户名/密码启动每个测试,如下所示:

protractor conf.js --params.username user1 --params.password password1
logIntoMyApp(browser.params.username, browser.params.password);
然后,在您的测试中,您将使用如下内容:

protractor conf.js --params.username user1 --params.password password1
logIntoMyApp(browser.params.username, browser.params.password);
您还可以在配置文件中设置默认值(有关详细信息,请参阅文档)

你可以使用量角器来做这件事。如果正在运行多个功能,则每个功能将运行一次。可以将数据添加到浏览器对象中,以便在执行过程中使用

你能做的就是这样

//一个JSON文件或什么的
var登录={
“铬”:{
“用户”:“usernameChrome”,
“pass”:“passwordChrome”
},
“firefox”:{
“用户”:“usernameFirefox”,
“pass”:“passwordFirefox”
}
};
//在您的配置中
//示例配置文件。
exports.config={
directConnect:没错,
//要传递给webdriver实例的功能。
多容量:[{
'browserName':'chrome'
},
{
'browserName':'firefox'
}
],
//要使用的框架。建议使用Jasmine。
框架:“茉莉花”,
//规范模式是相对于当前工作目录的
//量角器被称为量角器。
规格:['example_spec.js'],
//要传递给Jasmine的选项。
茉莉花:{
defaultTimeoutInterval:30000
},
onPrepare:function(){
返回browser.getCapabilities()
.然后((能力)=>{
//获取当前正在使用的浏览器
browser.browserName=capabilities.get('browserName').toLowerCase();
//添加用户并传递到浏览器对象
browser.user=login[browser.browserName].user;
browser.pass=登录[browser.browserName]pass;
});
}
};
//按你的要求
描述('logon',function()){
它('应该登录',函数(){
browser.get('http://www.example.com');
元素(by.model('user')).sendKeys(browser.user);
元素(by.model('pass')).sendKeys(browser.pass);
元素(按.tagName('button'))。单击();
});

});为您的重播准备了一段时间。但在我的例子中,我希望为每个创建的实例传递参数。我在conf.js
count:10
中使用了count属性。所以对于所有的chrome实例,都将使用user1作为登录名,password1作为密码。例如,我希望第一个实例使用Login1和Password1,第二个实例使用Login2和Password2……在这种情况下,您的问题没有足够的信息。我建议更多地充实它,包括你真正想要完成的事情。你想做负载测试吗?祝你好运