【发布时间】:2015-12-19 17:22:41
【问题描述】:
如何在我的脚本中创建参数,例如,不是将 url 放入脚本中,而是放入一个变量并读取一个 excel 文件或数据库。
我有这个 .url("https://www.abcdef.com/#admin")
我想要这样的想法 .url(从excel或数据库中读取的url)
【问题讨论】:
标签: nightwatch.js
如何在我的脚本中创建参数,例如,不是将 url 放入脚本中,而是放入一个变量并读取一个 excel 文件或数据库。
我有这个 .url("https://www.abcdef.com/#admin")
我想要这样的想法 .url(从excel或数据库中读取的url)
【问题讨论】:
标签: nightwatch.js
你试过 fs.readFile() 吗?如果您的 url 在文件中,您可以从文件中读取 url 或 url 列表。如果您有一个 excel 电子表格,您可能希望将其转换为 .csv 文件,或者找到某种可以读取 excel 文件的节点包。
如果您的网址在数据库中,那么您必须在运行测试之前使用正确的数据库连接字符串来访问数据库。诚然,我是 node 新手,所以我不知道数据库访问的来龙去脉,但它与其他基于服务器的开发环境并没有太大区别。
【讨论】:
我也是 node/nightwatch 的新手,所以可能有更好的方法,但这是一个可行的解决方案。
var xlsx = require('xlsx');
var fs = require('fs');
if(typeof require !== 'undefined') XLSX = require('xlsx');
var workbook = XLSX.readFile('MyExcelDoc.xlsx');
var sheetnamelist = workbook.SheetNames;
module.exports = {
'MyTest' : function (browser) {
//iterates through excel sheet testing each URL
sheetnamelist.forEach(function(y) {
var worksheet = workbook.Sheets[y];
var z;
for (z in worksheet) {
if(z[0] === '!') continue;
var url = worksheet[z].v;
browser
.url(url);
//do something at your url//
}
});
browser.end()
}
};
ps,我希望括号和内容是正确的。我复制了我的代码并删除了所有不相关的内容,希望我也删除了适量的括号。
【讨论】:
莎拉给出的答案效果很好!
如果您打算使用 js-xlsx,我建议将行解析为 JSON,这会使它们更具可读性/可用性。
【讨论】:
var xlsx = require('node-xlsx');
var path = require('path');
const workSheetsFromFile = xlsx.parse(path.join(__dirname,`../orgData.xlsx`));
console.log(workSheetsFromFile);
module.exports= workSheetsFromFile[0].data[0];
【讨论】: