量角器持久变量
Protractor persistent variables
我正在尝试设置类似于 Postman 中的环境/全局变量的内容。 Postman 将这些变量存储在 JSON 中,当您在测试中修改它们时,它们将永久更改为新值。例如:
postman.setEnvironmentVariable("variable1", parseInt(postman.getEnvironmentVariable) +1);
此函数会在请求开始时将环境变量递增 1。在我真正的 Postman 测试中,我使用自定义函数根据以前使用的条码计算有效的 EAN13 条码,因为它们必须是唯一的。
在量角器中有没有类似的东西可以实现?
使用'params'
对象存储数据。你可以在配置文件中设置它。 config
params: {
login: {
user: 'Jane',
password: '1234'
}
}
从浏览器对象访问 browser.params.login
。您可以更改可在另一个测试中检索的对象的值。
我找到了一个优雅的解决方案。我将 params
导入到 JSON 对象中,如下所示:
global.DATA_PATH = './data/environment.json';
global.fs = require(fs);
exports.config = {
...
params: {
data = require(global.DATA_PATH)
}
...
};
然后在我的 JSON 对象中,我将像这样定义数据:
{
"variable1": "blah"
}
现在我可以通过我的代码中的普通对象点表示法访问我的数据:
this.modifyVariable1 = function(value) {
params.data.variable1 = value;
}
因为这只是修改参数中的变量params.data.variable1
,所以我使用afterAll
中的nodejs模块fs
将其与文件同步:
afterAll(function() {
global.fs.writeFile(global.DATA_PATH, (JSON.stringify(params.data), null, 4), 'utf8);
});
这只需要在规范完成后 运行 因为对 params 对象的更改会在每个 it
语句中持续存在。
希望这对其他想尝试类似事情的人有所帮助!
我正在尝试设置类似于 Postman 中的环境/全局变量的内容。 Postman 将这些变量存储在 JSON 中,当您在测试中修改它们时,它们将永久更改为新值。例如:
postman.setEnvironmentVariable("variable1", parseInt(postman.getEnvironmentVariable) +1);
此函数会在请求开始时将环境变量递增 1。在我真正的 Postman 测试中,我使用自定义函数根据以前使用的条码计算有效的 EAN13 条码,因为它们必须是唯一的。
在量角器中有没有类似的东西可以实现?
使用'params'
对象存储数据。你可以在配置文件中设置它。 config
params: {
login: {
user: 'Jane',
password: '1234'
}
}
从浏览器对象访问 browser.params.login
。您可以更改可在另一个测试中检索的对象的值。
我找到了一个优雅的解决方案。我将 params
导入到 JSON 对象中,如下所示:
global.DATA_PATH = './data/environment.json';
global.fs = require(fs);
exports.config = {
...
params: {
data = require(global.DATA_PATH)
}
...
};
然后在我的 JSON 对象中,我将像这样定义数据:
{
"variable1": "blah"
}
现在我可以通过我的代码中的普通对象点表示法访问我的数据:
this.modifyVariable1 = function(value) {
params.data.variable1 = value;
}
因为这只是修改参数中的变量params.data.variable1
,所以我使用afterAll
中的nodejs模块fs
将其与文件同步:
afterAll(function() {
global.fs.writeFile(global.DATA_PATH, (JSON.stringify(params.data), null, 4), 'utf8);
});
这只需要在规范完成后 运行 因为对 params 对象的更改会在每个 it
语句中持续存在。
希望这对其他想尝试类似事情的人有所帮助!