Nightwatch101 #1:使用 Nightwatch 實現 End-to-End Testing
11 Dec 2017為何要做測試?
只要是工程師,寫完程式碼就必定會做測試吧(?)
做測試有什麼好處?
- 防止改 A 壞 B,避免不能跑的程式碼比能跑的還多
- 明確指出問題所在、告知正確的行為是什麼,減少猜測時間
為何要做 End-to-End Testing?如何做?
在做整合測試時,要怎麼確定使用者能順利走完預定的流程呢?例如:從購買商品到進入購物車、結帳完成。或者,要怎麼確定在修改全站共用的 UI 元件後,網站仍能正常運作?這時候我們往往就會找個人來當 QA,假裝他 / 她是一般使用者,把網站主流程都點一點、用一用。由於靠人力完整測試是非常耗時耗力的,因此,若能有系統的靠程式完成,就能快速、全面地檢查,一下子就知道有沒有問題了。
既然能靠寫程式解決人力檢測的問題,就先選個方法-來用 Nightwatch 吧。
大綱
這一系列 2018 鐵人賽「Nightwatch101:使用 Nightwatch 實現 End-to-End Testing」會有以下內容
- Nightwatch 與 Selenium Webdriver
- 定位網頁元素:CSS Selector、Xpath
- API:Commands、Expect、Assert、Verify
- Test Hooks
- Nightwatch Test Runner
- Page Objects
- 客製化指令、斷言
- 客製化測試報告
- 測試程式範例
- Selenium IDE
目錄
Nightwatch101:使用 Nightwatch 實現 End-to-End Testing 系列。
- 前言
- Nightwatch 與 Selenium Webdriver
- 環境建置
- 設定檔
- 使用 CSS Selector 定位網頁元素
- 使用 Xpath 定位網頁元素
- 指令 Part 1
- 指令 Part 2
- 指令 Part 3
- BDD Expect
- BDD Assert
- BDD Verify
- Test Hooks
- Asynchronous Test Hooks
- External Globals
- 簡單測試範例
- Nightwatch Test Runner
- 依照分組做測試(Test Groups)
- 依照標籤做測試(Test Tags)
- 禁跑特定測試(Disable Tests)
- 平行執行測試程式
- Page Objects
- 使用 Sections 優化 Page Objects
- 客製化指令(Custom Commands)
- 客製化斷言(Custom Assertions)
- 客製化測試報告
- 進階測試範例
- 獨立使用 ChromeDriver 跑測試
- Selenium IDE
- 總結
希望大家不吝指教 :)
關於我們
我們是「露天拍賣」的工程師,這次決定一同組隊「露天廢物」參加鐵人賽,扶持彼此完成這艱難的 30 天任務。
成員如下(按字母順序排列)
- Eddie - 使用 PHP 串接金流相關 API 🐻
- Hunter - 用範例理解 Vue.js 🍸
- J0 - Go!從無到打造最佳行動網站 🍻
- Jeff - 糞 GAME30 天優化 🐦
- Summer - Nightwatch101:使用 Nightwatch 實現 End-to-End Testing ♞
歡迎大家閱讀我們的學習歷程!