給 Web 開發人員推薦的測試工具
用戶對于現代 Web 應用除了美觀要求之外,對產品體驗度也有較高的要求。在推薦過幾期開源圖形庫和通用獨立 UI 組件后,覺著是時候推薦一些測試工具了。
一、單元測試/測試運行器
1、Jest
知名的 JavaScript 單元測試工具,由 非死book 開源,開箱即用。它在最基礎層面被設計用于快速、簡單地編寫地道的 JavaScript 測試,能自動模擬 require() 返回的 CommonJS 模塊,并提供了包括內置的測試環境 Dom API 支持、合理的默認值、預處理代碼和默認執行并行測試在內的特性。通過在并行進程中同時運行測試,讓測試更快地結束。
2、AVA
號稱“未來的測試運行器”,利用 JavaScript 在 Node.js 里使得 IO 可以并行的優點,讓你的測試可以并發執行,這對于 IO 繁重的測試特別有用。另外,測試文件可以在不同的進程里并行運行,讓每一個測試文件可以獲得更好的性能和獨立的環境。測試并發執行強制你寫原子測試,意味著測試不需要依賴全局狀態或者其他測試的狀態。
3、Mocha
一個功能豐富的測試框架,用于 Node.js 和瀏覽器上的 JavaScript 應用測試,使異步測試變得簡單而有趣。它可以持續運行測試,支持靈活又準確的報告,當映射到未捕獲異常時轉到正確的測試示例。
4、Karma
基于 Node.js 的 JavaScript 測試運行器,旨在為開發人員帶來有效的測試環境。可用于測試所有主流 Web 瀏覽器,也可集成到 CI 工具,還可和其他代碼編輯器一起使用。另外一個強大特性就是,它可以監控文件的變化,然后自行執行,通過 console.log 顯示測試結果。
二、Web 測試
1)集成測試 Enzyme
一個用于 React 的 JavaScript 測試工具,方便你判斷、操縱和歷遍 React Components 輸出。其 API 旨在通過模仿 jQuery 的 API ,使得 DOM 操作和歷遍很靈活、直觀。兼容所有的主要測試運行器和判斷庫。
示例:Shallow Rendering
import React from 'react'; import { expect } from 'chai'; import { shallow } from 'enzyme'; import sinon from 'sinon'; import MyComponent from './MyComponent'; import Foo from './Foo'; describe('<MyComponent />', () => { it('renders three <Foo /> components', () => { const wrapper = shallow(<MyComponent />); expect(wrapper.find(Foo)).to.have.length(3); }); it('renders an `.icon-star`', () => { const wrapper = shallow(<MyComponent />); expect(wrapper.find('.icon-star')).to.have.length(1); }); it('renders children when passed in', () => { const wrapper = shallow(( <MyComponent> <div className="unique" /> </MyComponent> )); expect(wrapper.contains(<div className="unique" />)).to.equal(true); }); it('simulates click events', () => { const onButtonClick = sinon.spy(); const wrapper = shallow(( <Foo onButtonClick={onButtonClick} /> )); wrapper.find('button').simulate('click'); expect(onButtonClick).to.have.property('callCount', 1); }); });
2)功能測試
1、WebDriverIO
該庫是 Node.JS 的 Webdriver(瀏覽器自動化)模塊,可在 BDD / TDD 測試框架中編寫超級簡單的 Selenium 測試。
2、Nightwatch
一個易于使用的基于 Node.js 的瀏覽器自動化測試解決方案。它使用強大的 Selenium WebDriver API 來在 DOM 元素上執行命令和斷言。語法簡單但很強大,使你可以快速編寫測試。內置的命令行測試運行器,能夠運行整體測試,分組測試或者單個測試。
類似的還有 Protractor 和 CasperJS ,感興趣的可以直接查看。
3)Visual 測試 Storybook
一個 UI 組件的開發環境,允許你瀏覽組件庫,查看每個組件的不同狀態,以及交互式開發和測試組件。它運行在應用之外,允許隔離開發 UI 組件,這可以提高組件的重用性、可測試性和開發速度。
4)猴子測試(Monkey Testing,也稱“搞怪測試”) Gremlins.js
一個用 JavaScript 編寫的猴子測試庫,用于 Node.js 和瀏覽器。通過釋放大量無規律的 gremlins 來檢測 Web 應用的魯棒性。
5)服務端測試
1、K6
用于測試性能,以開發人員為中心的負載測試工具。提供了一個通過 REST API 進行編排的清新易用的腳本 API 。使用 Go 和 JavaScript構 建,可以很好地集成到開發工作流程中。
2、SuperTest SuperAgent 的一個擴展,一個輕量級 HTTP AJAX 請求庫。提供對 HTTP 測試的高度抽象, 極大地簡化了基于 HTTP 的測試。
來自:http://www.iteye.com/news/32611