使用excel电子表格的nodejs驱动的数据
问题描述:
我正在为我的工作场所做一些研究。该计划是通过nodejs使用javascript(因为我们有人知道这一点)。我们也将使用硒和视觉工作室来编写代码。使用excel电子表格的nodejs驱动的数据
我有一些基本的测试运行的一切工作。
我想知道的是,如何在java脚本中执行数据驱动测试,将数据表格拉出excel表单。我们每行可以有8-10列,每次测试最多可以有30行数据。任何指针将不胜感激。
我已经做了一些研究,但是我发现任何东西都是c#或普通的java。不确定在这种情况下使用的最佳插件。
答
那么,有优秀的阅读npm modules。除此之外,你可以保存为CSV,并且还有一些CSV-reading and writing modules。
我不确定你是否看过它,但也有mocha和chai,这对测试非常有用。
所以我使用的一般体系结构会写一些摩卡测试,它从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('test description', (done) => {});
回调语法,如我对before
调用所做的那样。
谢谢你,我会看看摩卡/柴。我想我明白你在上面做了什么。你怎么能指定表中的不同列?例如说,我有三列“用户名”,“密码”,“ID”。我希望它读取该行,然后将该行上的每个项目保存为一个变量。一旦达到测试结束,它将使用下一行数据重复测试。对不起,如果我的知识不是很好,因为它对我来说是相当新的。 – Endorium
这取决于您选择哪个CSV或Excel模块,但其中大多数假设或允许您指定第一行是“标题”,然后JS数组中的每个项目都是“{ header1:'item1',header2:'item2'}'等等。如果第一行的内容是'ID','username','password',那么这个数组看起来像'[{'ID':'1233','username':'bob','密码':'我sooper s3cr3t'}]' – Paul