如何在 Nightwatch 中从数据库或 excel 文件中读取数据?
How to read data from data base or excel file in Nightwatch?
如何在我的脚本中创建参数,例如,不是在脚本中放置 url,而是放置一个变量并读取 excel 文件或数据库。
我有这个
.url("https://www.abcdef.com/#admin")
我想要这样的想法
.url(url 从 excel 或数据库中读取)
你试过fs.readFile()了吗?如果您的 url 在文件中,您可以只从文件中读取 url 或 url 的列表。如果您有 excel 电子表格,您可能需要将其转换为 .csv 文件,或查找某种可以读取 excel 文件的节点包。
如果您的 url 在数据库中,那么您必须在 运行 测试之前使用正确的数据库连接字符串访问数据库。诚然,我是节点的新手,所以我不知道数据库访问的来龙去脉,但它与其他基于服务器的开发环境并没有太大区别。
我也是 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,我希望括号和东西是正确的。我复制了我的代码并删除了所有不相关的东西,希望我也删除了适量的括号。
Sarah 给出的答案非常有用!
如果您计划使用 js-xlsx
,我建议将行解析为 JSON,这会使它们更多 readable/useable。
见
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];
如何在我的脚本中创建参数,例如,不是在脚本中放置 url,而是放置一个变量并读取 excel 文件或数据库。
我有这个 .url("https://www.abcdef.com/#admin")
我想要这样的想法 .url(url 从 excel 或数据库中读取)
你试过fs.readFile()了吗?如果您的 url 在文件中,您可以只从文件中读取 url 或 url 的列表。如果您有 excel 电子表格,您可能需要将其转换为 .csv 文件,或查找某种可以读取 excel 文件的节点包。
如果您的 url 在数据库中,那么您必须在 运行 测试之前使用正确的数据库连接字符串访问数据库。诚然,我是节点的新手,所以我不知道数据库访问的来龙去脉,但它与其他基于服务器的开发环境并没有太大区别。
我也是 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,我希望括号和东西是正确的。我复制了我的代码并删除了所有不相关的东西,希望我也删除了适量的括号。
Sarah 给出的答案非常有用!
如果您计划使用 js-xlsx
,我建议将行解析为 JSON,这会使它们更多 readable/useable。
见
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];