如何在 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];