Javascript 使用excel电子表格使用nodejs驱动数据

Javascript 使用excel电子表格使用nodejs驱动数据,javascript,node.js,excel,data-driven-tests,Javascript,Node.js,Excel,Data Driven Tests,我正在为我的工作场所做一些调查。计划是通过nodejs使用javascript(因为我们有人知道这一点)。我们还将使用selenium和visualstudio来编写代码 我有一些基本的测试,一切正常 我想知道的是,如何用java脚本进行数据驱动测试,以从excel表格中提取数据。我们可以每行有8-10列,每个测试最多有30行数据。任何指点都将不胜感激 我做了一些研究,但发现的都是c#或普通java。不确定在这种情况下使用的最佳插件。好吧,有excel阅读。除此之外,您还可以将其另存为CSV,并

我正在为我的工作场所做一些调查。计划是通过nodejs使用javascript(因为我们有人知道这一点)。我们还将使用selenium和visualstudio来编写代码

我有一些基本的测试,一切正常

我想知道的是,如何用java脚本进行数据驱动测试,以从excel表格中提取数据。我们可以每行有8-10列,每个测试最多有30行数据。任何指点都将不胜感激


我做了一些研究,但发现的都是c#或普通java。不确定在这种情况下使用的最佳插件。

好吧,有excel阅读。除此之外,您还可以将其另存为CSV,并且还有许多

我不确定您是否看过,但还有和,它们非常适合测试

所以我使用的一般架构是编写一些mocha测试,从excel或CSV文件中读取数据,然后使用这些数据作为输入运行测试。大概是这样的:

var fs = require('fs'); 
var parse = require('csv-parse');
var expect = require('chai').expect;

var csvData=[];

describe('When using some test data', () => {
  before((done) => {
     s.createReadStream(req.file.path)
      .pipe(parse({delimiter: ':'}))
      .on('data', function(csvrow) {
        csvData.push(csvrow);        
      })
      .on('end',function() {
        done();
      });
  });
  it ('should be able to pass a test with all data', () => {
    csvData.forEach((datum) => {
       // not sure what you're testing for, but check for each to pass here.
       expect(datum).to.not.be.a('null');
    });
  });
});
注意,我没有测试上面的内容,但这只是你处理事情的大致方法


如果您正在测试的任何方法都需要回调,那么您可以使用async/await语义,或者使用
it('testdescription',(done)=>{})回调语法,就像我在调用之前对
所做的一样

谢谢你,我会看看摩卡/柴。我想我理解你在上面所做的。如何在工作表中指定不同的列?例如,假设我有三列“用户名”、“密码”、“ID”。我希望它读取该行,然后将该行上的每个项目保存为变量。一旦到达测试结束,它将使用下一行数据重复测试。抱歉,如果我的知识不是很好,因为这对我来说是相当新的。这将取决于您选择哪个CSV或Excel模块,但大多数模块都假设或允许您指定第一行是“headers”,然后JS数组中的每个项都是一个类似于,
{header1:'item1',header2:'item2'}
的对象。或者以您的示例为例,如果第一行包含内容“ID”、“username”、“password”,那么数组将类似于
[{'ID':'1233'、'username':'bob'、'password':'I am sooper s3cr3t'}]