給 Web 開發人員推薦的測試工具

pjqt8019 7年前發布 | 38K 次閱讀 測試工具 程序員

用戶對于現代 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 元素上執行命令和斷言。語法簡單但很強大,使你可以快速編寫測試。內置的命令行測試運行器,能夠運行整體測試,分組測試或者單個測試。

類似的還有 ProtractorCasperJS ,感興趣的可以直接查看。

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

 

 本文由用戶 pjqt8019 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!