我正在爲我的工作場所做一些研究。該計劃是通過nodejs使用javascript(因爲我們有人知道這一點)。我們也將使用硒和視覺工作室來編寫代碼。使用excel電子表格的nodejs驅動的數據
我有一些基本的測試運行的一切工作。
我想知道的是,如何在java腳本中執行數據驅動測試,將數據表格拉出excel表單。我們每行可以有8-10列,每次測試最多可以有30行數據。任何指針將不勝感激。
我已經做了一些研究,但是我發現任何東西都是c#或普通的java。不確定在這種情況下使用的最佳插件。
我正在爲我的工作場所做一些研究。該計劃是通過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