iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 21
1

Nightwatch.js 平行執行測試程式

本篇來看看 Nightwatch Test Runner 如何同時指定不同環境來跑測試、調整 Terminal Output 的顯示結果和經由 Test Workers 實現平行執行。

大家就和狗狗們一起往前衝吧!新年快樂!

♡(´∀`)人(´∀`)♡

本系列文章皆使用這個專案,可以拉下來玩玩;有什麼問題都可以提出 issue


同時執行多個環境

Nightwatch 從 0.5 版之後,可同時測試不同的環境。

指定環境如下,這樣就會執行兩個環境 default 和 local(點此複習 Nightwatch Test Runner 的常用 Command-line Options)。

nightwatch -e default,local

測試結果。

Nightwatch Parallel Running

這在指定測試特定瀏覽器(與 desiredCapabilities 合用)時很有用。

nightwatch -e default,chrome

Terminal Output

每個環境會在不同的 child_process 執行,再將結果送回主 process。並且,為了閱讀方便,Nightwatch 會先 buffer 測試結果,而在測試結束後,依環境個別顯示結果。

如果不希望使用 buffer 依環境整理測試結果,可在 nightwatch.conf.json 的 selenium 後設定 "live_output": true

"output_folder": "./node_modules/nightwatch/reports",
"selenium": {
  // 省略...
},
"live_output": true, // 不希望 buffer 依環境整理測試結果

這樣就會看到即時的測試結果,不同環境(defulat 和 local)交雜著。

Nightwatch Terminal Live Output

經由 Test Workers 實現平行執行

Nightwatch 從 0.7 版之後,可使用 Test Workers 來實現平行執行。

如下設定。

"test_workers": {
  "enabled": true,
  "workers": "auto"
}

"test_workers": true

workers 這個選項的值有兩種選擇

  • auto:根據 CPU 數決定 worker 的數目。4 CPU 即 4 worker。
  • { number }:明確指定 worker 數。

每個檔案會進入到一個 test worker 的 slot,因此能平行執行的單位是 test suite,而非 test case。


下一篇來看 Page Objects,將網頁片段封裝起來成為物件,增加重用性與可讀性,減少維護的複雜度。


網誌版


上一篇
Nightwatch101 #20:禁跑特定測試(Disable Tests)
下一篇
Nightwatch101 #22:Page Objects
系列文
Nightwatch101:使用 Nightwatch 實現 End-to-End Testing30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言