Protractor 无法在量角器中设置baseurl永久
我像这样运行量角器Protractor 无法在量角器中设置baseurl永久,protractor,Protractor,我像这样运行量角器 protractor --params.env=q q表示质量保证。这个量角器 var CommonPageObject = require('./e2e/commonPageObject'); suites: { login: './e2e/account/login/*.js' }, //for console params. example console command: protractor --params.env=q
protractor --params.env=q
q表示质量保证。这个量角器
var CommonPageObject = require('./e2e/commonPageObject');
suites: {
login: './e2e/account/login/*.js'
},
//for console params. example console command: protractor --params.env=q
params: {
env: 'qa',//can be local, prod or qa default is qa for environment
},
onPrepare: function () {
var commonPageObject = new CommonPageObject();
commonPageObject.prepareVariables();
}
这是公用页
this.prepareVariables = function () {console.log("xx",browser.params.env);
var env = browser.params.env;
this.setEnvironment(env);
this.setBaseUrl(env);
};
//can be local, prod or qa. local = 2, qa = 0, prod=1
this.setEnvironment = function (env) {
if(env.includes("l")){
environment = 2;
}
else{
if(env.includes("p")){
environment = 1;
}
else{// qa
environment = 0;
}
}console.log("environment",environment);
};
//to get enviroment qa=0, prod=1, local=2 default=qa
this.getEnvironment = function () {
return environment;
};
this.setBaseUrl = function (env) {
if(env.includes("q")){
baseUrl = "http://xxxx.qa.xxx.com:8080";
}
else{
if(env.includes("p")){
baseUrl = "https://xxxxx.com";
}
else{
baseUrl = "localhost:8080";
}
}console.log("baseUrl",baseUrl);
};
this.getBaseUrl = function () {console.log("getBaseUrl",baseUrl);
return baseUrl;
};
当我运行时,输出是量角器--params.env=q
xx q
environment 0
baseUrl http://xxx.qa.xxxx.com:8080
Started
getBaseUrl undefined
FgetBaseUrl undefined
F
当测试开始时,它变得未定义。那是什么?为什么commonpage对象页面变量不能保留在堆栈中?那么,我应该在每次测试之前为每个测试调用这些方法吗?还是我做错了什么?您的
commonPageObject
范围仅存在于onPrepare
方法的上下文中。这不会传输到其余的等级库文件。您应该做的是将浏览器URL
绑定到一个全局变量。量角器有一个内置的:browser.baseUrl
this.setBaseUrl = function (env) {
if(env.includes("q")){
browser.baseUrl = "http://xxxx.qa.xxx.com:8080";
}
else{
if(env.includes("p")){
baseUrl = "https://xxxxx.com";
}
else{
baseUrl = "localhost:8080";
}
}console.log("baseUrl",baseUrl);
};
this.getBaseUrl = function () {console.log("getBaseUrl",browser.baseUrl);
return browser.baseUrl;
};
设置好后,在spec文件中,现在可以执行browser.get('/some/path')
应该解析为browser.baseUrl+'/some/path'