如何从Nightwatch中的数据库或excel文件中读取数据?

时间:2015-09-22 16:15:25

标签: nightwatch.js

如何在我的脚本中创建参数,例如,不要将url放在脚本中,放置变量并读取excel文件或数据库。

我有这个 .URL(" https://www.abcdef.com/#admin&#34)

我想要这样的想法 .url(url来自excel或数据库)

4 个答案:

答案 0 :(得分:1)

我也是节点/夜间表的新手,所以可能有更好的方法,但这是一个有效的解决方案。

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,我希望包围和东西是正确的。我复制了我的代码并删除了所有不相关的内容,希望我也删除了适当数量的括号。

答案 1 :(得分:0)

你试过fs.readFile()吗?如果您的网址在文件中,您只需从文件中读取网址或网址列表即可。如果你有一个excel电子表格,你可能想将它转换为.csv文件,或找到某种可以读取excel文件的节点包。

如果您的网址位于数据库中,那么在运行测试之前,您必须使用正确的数据库连接字符串来访问数据库。我当然不熟悉节点,因此我不知道数据库访问的细节,但它与其他基于服务器的开发环境没有太大区别。

答案 2 :(得分:0)

莎拉给出的答案很有效! 如果您打算使用js-xlsx,我建议将行解析为JSON,这使得它们更具可读性/可用性。

请参阅this SO answer

答案 3 :(得分:0)

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];