【发布时间】:2014-10-20 13:24:57
【问题描述】:
我想要实现的是量角器测试从单独的数据文件(例如 CSV、JSON 等)中提取数据,这样我就可以更改数据而无需接触测试脚本代码。
Protractor 可以做到这一点吗?
【问题讨论】:
标签: angularjs automation protractor
我想要实现的是量角器测试从单独的数据文件(例如 CSV、JSON 等)中提取数据,这样我就可以更改数据而无需接触测试脚本代码。
Protractor 可以做到这一点吗?
【问题讨论】:
标签: angularjs automation protractor
您可以使用browser.params 读取自定义测试数据。
要从 JSON 文件中读取,只需将 params 添加到您的 config file
exports.config = {
params: require('./your-params-file.json'),
};
NodeJS 会自动将 JSON 文件转换为 Javascript 对象,您可以通过 browser.params.whateverYourJSONHas 从任何测试轻松访问该对象。
如果您确实需要使用 CSV,请尝试使用 csvtojson 或 google 之类的解析器/打开另一个关于“NodeJS 将 CSV 文件转换为 POJO 数组”的问题
【讨论】:
browser.params = require('../data.json');,因为我觉得这将使我能够灵活地将不同的文件关联到不同的规范文件,而不是将所有内容存储在一个文件中并读取整个特定文件。有没有更好的方法来解决这个问题?
我不确定您是否能够解决这个问题。但是,我能够做到这一点。
您的 json 可能如下所示:
[
{
"someId": "signInInput",
"sendSomeKeys": "j@j.com"
},
{
"someId": "passwordInput",
"sendSomeKeys": "password"
}
]
下面是如何在你的测试中实现它:
'use strict';
var testData = require('./path/to/json.json');
describe('your test', function() {
testData.forEach( function (data) {
it('should read from an external json', function(){
element(by.id(data.someId)).sendKeys(data.sendSomeKeys);
});
});
});
【讨论】:
您可以简单地使用 javascript "map" 函数进行迭代,而无需任何循环:
var testParams = testConfig.testArray;
testParams.map(function(testSpec) {
it('write your test here', function() {
//test code here
});
});
【讨论】: