2017-07-24 33 views
0

我正在爲我的工作場所做一些研究。該計劃是通過nodejs使用javascript(因爲我們有人知道這一點)。我們也將使用硒和視覺工作室來編寫代碼。使用excel電子表格的nodejs驅動的數據

我有一些基本的測試運行的一切工作。

我想知道的是,如何在java腳本中執行數據驅動測試,將數據表格拉出excel表單。我們每行可以有8-10列,每次測試最多可以有30行數據。任何指針將不勝感激。

我已經做了一些研究,但是我發現任何東西都是c#或普通的java。不確定在這種情況下使用的最佳插件。

回答

0

那麼,有優秀的閱讀npm modules。除此之外,你可以保存爲CSV,並且還有一些CSV-reading and writing modules

我不確定你是否看過它,但也有mochachai,這對測試非常有用。

所以我使用的一般體系結構會寫一些摩卡測試,它從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調用所做的那樣。

+0

謝謝你,我會看看摩卡/柴。我想我明白你在上面做了什麼。你怎麼能指定表中的不同列?例如說,我有三列「用戶名」,「密碼」,「ID」。我希望它讀取該行,然後將該行上的每個項目保存爲一個變量。一旦達到測試結束,它將使用下一行數據重複測試。對不起,如果我的知識不是很好,因爲它對我來說是相當新的。 – Endorium

+0

這取決於您選擇哪個CSV或Excel模塊,但其中大多數假設或允許您指定第一行是「標題」,然後JS數組中的每個項目都是「{ header1:'item1',header2:'item2'}'等等。如果第一行的內容是'ID','username','password',那麼這個數組看起來像'[{'ID':'1233','username':'bob','密碼':'我sooper s3cr3t'}]' – Paul

相關問題