【问题标题】:How to read data from data base or excel file in Nightwatch?如何在 Nightwatch 中从数据库或 excel 文件中读取数据?
【发布时间】:2015-12-19 17:22:41
【问题描述】:

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

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

我想要这样的想法 .url(从excel或数据库中读取的url)

【问题讨论】:

    标签: nightwatch.js


    【解决方案1】:

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

    如果您的网址在数据库中,那么您必须在运行测试之前使用正确的数据库连接字符串来访问数据库。诚然,我是 node 新手,所以我不知道数据库访问的来龙去脉,但它与其他基于服务器的开发环境并没有太大区别。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        this SO answer

        【讨论】:

          【解决方案4】:
          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];
          

          【讨论】:

          • 感谢您提供此代码 sn-p,它可能会提供一些有限的短期帮助。一个正确的解释would greatly improve 其长期价值,通过展示为什么这是解决问题的好方法,并将使其对未来有其他类似问题的读者更有用。请edit您的回答添加一些解释,包括您所做的假设。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-03-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多