分享方式:


判斷最佳測試套件組態

Microsoft Playwright Testing Preview 可讓您藉由在雲端規模增加平行處理原則來加速您的 Playwright 測試執行。 有數個因素會影響測試套件的完成時間。 判斷減少測試套件完成時間的最佳組態是應用程式特定的,而且需要實驗。 本文說明為測試設定平行處理原則的不同層級、影響測試持續時間的因素,以及如何判斷最佳設定,以將測試完成時間降到最低。

在 Playwright 中,您可以使用背景工作進程平行執行測試。 藉由使用 Microsoft Playwright Testing,您可以使用雲端裝載的瀏覽器來進一步增加平行處理原則。 一般而言,新增更多平行處理原則可縮短完成測試套件的時間。 不過,新增更多背景工作進程不一定會導致測試套件完成時間較短。 例如,用戶端電腦運算資源、網路延遲或測試複雜度也可能會影響測試持續時間。

下圖提供執行測試套件的範例。 藉由使用 Microsoft Playwright Testing 執行測試套件,而不是在本機執行,您可以大幅增加平行處理原則並減少測試完成時間。 請注意,當使用服務執行時,完成時間達到最低限制,之後新增更多背景工作角色只會有最小的效果。 此圖表也會示範如何在用戶端電腦上使用更多運算資源,對使用服務執行的測試完成時間產生積極的影響。

Line chart that shows the relation between the number of parallel workers and the test suite completion time for different run environments.

背景工作進程

Playwright 中,所有測試都會在背景工作進程中執行。 這些進程是由 Playwright 測試執行器所協調,由 OS 進程獨立執行,平行執行。 所有背景工作角色都有相同的環境,而且每個進程都會啟動自己的瀏覽器。

一般而言,增加平行背景工作角色數目可以縮短完成完整測試套件所需的時間。 您可以在 Playwright 檔中深入瞭解 Playwright 測試平行處理原則

如先前圖表所示,當您新增更多背景工作進程時,測試套件完成時間不會繼續減少。 還有其他 因素會影響測試套件持續時間

在本機執行測試

根據預設, @playwright/test 將電腦上的 CPU 核心數目限制為 1/2。 您可以覆寫執行測試的背景工作角色數目。

當您在本機執行測試時,背景工作進程的數目僅限於您電腦上的 CPU 核心數目。 除了特定時間點之外,新增更多背景工作角色會導致資源爭用,這會減緩每個背景工作角色並引入測試浮點度。

若要使用 --workers 命令列旗標 覆寫背景工作角色數目:

npx playwright test --workers=10

若要使用 workers 設定來指定 中的 playwright.config.ts 背景工作角色數目:

export default defineConfig({
  ...
  workers: 10,
  ...
});

使用服務執行測試

當您使用 Microsoft Playwright Testing 時,您可以將雲端規模的背景工作角色數目增加到較大的數位。 當您使用服務時,背景工作進程會繼續在本機執行,但資源密集的瀏覽器實例現在會在雲端遠端執行。

由於背景工作進程仍在用戶端電腦上執行(開發人員工作站或 CI 代理程式機器),因此當您新增更多背景工作角色時,用戶端電腦仍可能會成為可調整執行瓶頸。 瞭解如何判斷最佳設定

您可以使用 旗標指定命令列 --workers 上的背景工作角色數目:

npx playwright test --config=playwright.service.config.ts --workers=30

或者,您可以使用 設定來指定 中的 playwright.service.config.tsworkers 背景工作角色數目:

export default defineConfig({
  ...
  workers: 30,
  ...
});

影響完成時間的因素

除了平行背景工作進程的數目之外,還有數個因素會影響測試套件完成時間。

係數 測試持續時間的影響
用戶端電腦計算資源 背景工作進程仍會在用戶端電腦上執行(開發人員工作站或 CI 代理程式機器),且需要與遠端瀏覽器通訊。 增加平行背景工作角色數目可能會導致用戶端電腦上的資源爭用,並降低測試速度。
測試程式碼的複雜度 隨著測試程式碼的複雜度增加,完成測試的時間也可能增加。
用戶端電腦與遠端瀏覽器之間的延遲 背景工作角色會在用戶端電腦上執行,並與遠端瀏覽器通訊。 視裝載瀏覽器的 Azure 區域而定,網路延遲可能會增加。 瞭解如何在 Microsoft Playwright Testing 中優化區域延遲。
劇作家組態設定 劇作家設定,例如服務逾時、重試或追蹤,可能會對測試完成時間造成負面影響。 在雲端中執行測試時,請試驗這些設定的最佳設定。
目標應用程式的負載處理容量 使用 Microsoft Playwright Testing 執行測試可讓您以較高的平行處理原則執行,這會導致目標應用程式的負載較高。 確認應用程式可以處理執行 Playwright 測試所產生的負載。

深入瞭解工作流程, 以判斷將測試套件持續時間降到最低的最佳 設定。

用來判斷最佳設定的工作流程

將測試套件完成時間降到最低的最佳設定,是您的應用程式和環境特有的。 若要判斷最佳設定,請試驗不同層級的平行處理、用戶端電腦硬體設定或測試套件設定。

下列方法可協助您尋找使用 Microsoft Playwright Testing 執行測試的最佳設定:

1.判斷測試完成時間目標

判斷什麼是可接受的測試套件完成時間,以及每個測試回合的相關成本。

視案例而定,測試完成的需求可能不同。 當您以每個程式碼變更來執行端對端測試時,作為持續整合 (CI) 工作流程的一部分,將測試完成時間降至最低至關重要。 當您在 (夜間) 批次執行中排程端對端測試時,可能會有需求較少的需求。

2.確認您的測試已在用戶端電腦上正確執行

使用 Microsoft Playwright Testing 執行 Playwright 測試套件之前,請確定您的測試會在用戶端電腦上正確執行。 如果您在 CI 工作流程中執行測試,請驗證測試是否在 CI 代理程式電腦上正確執行。 請確定您至少執行兩個平行背景工作角色的測試,以確認您的測試已正確設定為平行執行。 深入瞭解 Playwright 中的平行處理原則。

3. 在 Microsoft Playwright Testing 上使用雲端裝載瀏覽器執行

測試正確執行之後,請新增服務組態,以使用服務在雲端裝載的瀏覽器上執行測試。 驗證您的測試是否繼續從用戶端電腦(開發人員工作站或 CI 代理程式電腦)正確執行。

開始使用快速入門:使用 Microsoft Playwright Testing 大規模執行 Playwright 測試

4.確認 Azure 區域遠端瀏覽器

Microsoft Playwright Testing 可以在最接近您用戶端電腦的 Azure 區域中使用遠端瀏覽器,或使用工作區建立所在的固定區域。

瞭解如何優化工作區 的區域延遲。

5.實驗平行背景工作角色的數目

實驗要執行測試的平行背景工作角色數目。 測量測試完成時間,並與您先前設定的目標進行比較。

請注意,當您新增更多背景工作角色時,測試完成時間不再減少。 移至下一個步驟,以進一步優化您的設定。

注意

雖然服務處於預覽狀態,但每個工作區的 平行背景工作角色數目限制為 50。 您可以 要求增加工作區 的限制。

6.調整用戶端

當您增加平行處理原則時,用戶端電腦可能會遇到計算資源爭用。 藉由選取 較大的 GitHub 裝載執行器 ,來增加用戶端電腦上的運算資源。

或者,如果您有硬體限制,您可以 分區 化用戶端測試。

重新執行測試,並實驗平行背景工作角色的數目。

7.更新 Playwright 測試組態設定

設定 Playwright 測試組態設定,例如測試 逾時 追蹤 設定或 重試