在 Nightwatch 中平行測試
Nightwatch 支援以兩種主要方式平行執行測試
- 透過測試工作者
- 透過平行執行多個測試環境
透過測試工作者
當啟用此功能時,測試執行器會啟動可設定數量的子進程,然後將載入的測試分配到這些子進程中平行執行。
若要啟用測試工作者,請設定最上層的 test_workers
屬性,如下所示
nightwatch.json
{
"test_workers": {
"enabled": true,
"workers": "auto"
}
}
或
nightwatch.json
{"test_workers": true}
workers
選項設定可同時執行的子進程數量。
"auto"
- 由 CPU 數量決定,例如 4 個 CPU 表示 4 個工作者{number}
- 指定確切的工作者數量
另一種方法是傳遞
--workers
CLI 參數,它接受所需的平行進程數量,例如nightwatch --workers=4
測試並發性是在檔案層級完成的。每個測試檔案都會填滿一個測試工作者槽。測試檔案中的個別測試/步驟不會同時執行。
為了改進平行執行測試時顯示輸出的支援,我們建議在測試設定中將
detailed_output
設定為 false
(並確保已啟用 live_output
)。多個環境
Nightwatch 支援跨多個瀏覽器平行執行測試。以下命令將平行執行兩個名為 firefox
和 chrome
的環境
nightwatch --env firefox,chrome
終端機輸出
每個環境都將作為單獨的 child_process
執行,輸出將傳送到主進程。
為了使輸出更容易閱讀,Nightwatch 預設會緩衝來自每個子進程的輸出,並在最後顯示所有內容,依環境分組。
如果您想要停用輸出緩衝,並查看來自每個子進程的輸出,因為它是傳送到 stdout 的,只需在
nightwatch.json
的最上層 (例如在 selenium
之後) 設定屬性 "live_output" : true
即可。您可以為每個瀏覽器建立單獨的環境 (透過串連
desiredCapabilities
),然後平行執行它們。此外,使用 filter
和 exclude
選項,可以將測試按環境分割,以便平行執行。透過工作者 + 多個環境
能夠平行針對多個瀏覽器執行測試,並將測試案例分散到多個工作者中非常有用。從 v1.7 開始,您可以做到這一點。
nightwatch -e firefox,chrome --workers=4
上述命令將平行執行兩個名為 firefox
和 chrome
的環境。