測試,尤爲是自動化測試在現代 WEB 工程中有着很是重要的角色,與交付過程集成良好的自動化測試流程能夠在新版發佈時幫你快速回歸產品功能,也能夠充當產品文檔測試因粒度不一樣又能夠分爲單元測試、接口測試、功能測試。html
在 WEB 領域,功能測試亦稱爲端到端測試
(End to End Test,簡稱 E2E 測試
)。git
E2E 測試的經常使用操做以下:github
GitHub中比較受歡迎的Node.js E2E測試解決方法:express
一、CasperJs:npm
使用Python編寫,不算是嚴格意義上的原聲Node.js解決方案,但可以使用npm安裝,且可以很好的與Node.js工具鏈組合使用。只能與無界面瀏覽器(Headless Browser)組合使用,好比PhantomJS 和SlimerJS ,其優點是測試運行速度比真實瀏覽器快很多,且不須要在持續集成系統中安裝各類瀏覽器或者某個瀏覽器的不一樣版本。潛在的坑在於,無界面瀏覽器的表現有時和真實瀏覽器不徹底相同,會帶來某些難以排查解決的瀏覽器兼容性問題。不支持ES6/ES7的新語法,除非在運行測試前本身對代碼進行與編譯。但對CoffeeScript有自然的支持。ubuntu
官網:http://casperjs.org/api
github: https://github.com/casperjs/casperjs瀏覽器
二、Protractor:框架
官網:http://www.protractortest.org/less
github: https://github.com/angular/protractor/
配置文件:https://github.com/angular/protractor/blob/master/lib/config.ts
三、Nightwatch.js:
Nightwatch須要手動在測試代碼中添加合適的等待來保障測試的穩定,而Protractor和TestCafe則提供了內置的支持; 劣勢在於繁瑣的安裝步驟
安裝文檔:http://nightwatchjs.org/gettingstarted/#installation
四、TestCafe
很是年輕但很受開發者歡迎,由於不須要以來WebDriver之類的東西,TestCafe環境只需一鍵便可完成,這意味着,你能夠在任何安裝了瀏覽器應用的物理設備上運行測試。TestCafe支持ES6/ES7語法 。TestCafe 的測試組織方式詳見這裏,選擇符支持也很是強大,支持相似於 jQuery 的靈活異步的選擇符,斷言風格很是相似 Chai,
官網:https://devexpress.github.io/testcafe/
testCafe使用起來真的很是方便,只須要全局安裝一下,無需任何配置
npm install -g testcafe //ubuntu sudo npm install -g testcafe
而後就能夠直接寫一個測試文件了,first.js
// 測試的頁面地址是:https://devexpress.github.io/testcafe/example/ import {Selector} from 'testcafe'; fixture `Getting Started` .page `https://devexpress.github.io/testcafe/example/`; test('My first test', async t => { // Test code })
最後在命令行運行
sudo testcafe firefox first.js
運行結果
五、CodeceptJS