適用於使用 Playwright 之 Node.js Canary 指令碼的程式庫函式 - Amazon CloudWatch

適用於使用 Playwright 之 Node.js Canary 指令碼的程式庫函式

本節說明可供使用 Node.js Playwright 執行時期的 Canary 指令碼使用的程式庫函式。

啟動

此函式使用 Playwright 啟動函式啟動 Chromium 瀏覽器,並傳回瀏覽器物件。它會解壓縮瀏覽器二進位檔,並使用適用於無周邊瀏覽器的預設選項來啟動 chromium 瀏覽器。如需有關 launch 函式的詳細資訊,請參閱 Playwright 文件中的 launch

用途

const browser = await synthetics.launch();

Arguments (引數)

options options (選用) 是一組可設定的瀏覽器選項。

傳回值

承諾 <Browser>,其中 Browser 是 Playwright 瀏覽器執行個體。

如果再次呼叫此函式,系統會先關閉先前開啟的瀏覽器,再啟動新的瀏覽器。您可以覆寫 CloudWatch Synthetics 使用的啟動參數,並在啟動瀏覽器時傳遞其他參數。例如,下面的程式碼片段啟動瀏覽器,具有預設引數和預設的可執行文件路徑,但具有 800 x 600 像素的檢視口。如需詳細資訊,請參閱 Playwright 文件中的 Playwright 啟動選項

const browser = await synthetics.launch({ defaultViewport: { "deviceScaleFactor": 1, "width": 800, "height": 600 }});

您也可以新增或覆寫預設傳遞至瀏覽器的 Chromium 旗標。舉例來說,您可以透過將 --disable-web-security 旗標新增至 CloudWatch Synthetics 啟動參數中的引數來停用網路安全功能:

// This function adds the --disable-web-security flag to the launch parameters const defaultOptions = await synthetics.getDefaultLaunchOptions(); const launchArgs = [...defaultOptions.args, '--disable-web-security']; const browser = await synthetics.launch({ args: launchArgs });

newPage

newPage() 函式會建立並傳回新的 Playwright 頁面。Synthetics 會自動設定 Chrome DevTools 通訊協定 (CDP) 連線,以啟用產生 HTTP 封存 (HAR) 的網路擷取。

用途

透過下列方式之一使用 newPage()

1。在新的瀏覽器內容中建立新頁面:

const page = await synthetics.newPage(browser);

2. 在指定的瀏覽器內容中建立新頁面:

// Create a new browser context const browserContext = await browser.newContext(); // Create a new page in the specified browser context const page = await synthetics.newPage(browserContext)

Arguments (引數)

接受 Playwright Browser 執行個體或 Playwright BrowserContext 執行個體。

傳回值

承諾 <Page>,其中 Page 是 Playwright Page 執行個體。

關閉

關閉目前開啟的瀏覽器。

用途

await synthetics.close();

建議您在指令碼的 finally 區塊中關閉瀏覽器。

Arguments (引數)

傳回值

傳回 Synthetics 啟動函式用於啟動瀏覽器的 Promise<void>。

getDefaultLaunchOptions

getDefaultLaunchOptions() 函數會傳回 CloudWatch Synthetics 使用的瀏覽器啟動選項。

用途

const defaultOptions = await synthetics.getDefaultLaunchOptions();

Arguments (引數)

傳回值

傳回 Synthetics launch 函式用於啟動瀏覽器的 Playwright launch options

executeStep

executeStep 函式用於在 Synthetics 指令碼中執行步驟。在 CloudWatch Synthetics 中,Synthetics 步驟是將 Canary 指令碼分解為一系列明確定義動作的方式,讓您能夠分別監控應用程式旅程的不同環節。對於每個步驟,CloudWatch Synthetics 會執行下列動作:

  • 在步驟開始之前和步驟完成之後自動擷取螢幕畫面。也可以在步驟內擷取螢幕畫面。預設擷取螢幕畫面,但可以使用 Synthetics 組態 (Todo: Link) 關閉。

  • 針對每個 Canary 執行過程,系統會產生一份報告,包括步驟執行詳細資訊的摘要,例如步驟持續時間、passfail 狀態、來源和目的地頁面 URL、關聯的螢幕擷取畫面等。當您在 CloudWatch Synthetics 主控台中選擇執行時,可以在步驟索引標籤上檢視每個步驟的執行詳細資訊。

  • 每個步驟都會發出 SuccessPercentDuration CloudWatch 指標,讓使用者能夠監控每個步驟的可用性和延遲。

用途

await synthetics.executeStep("mystepname", async function () { await page.goto(url, { waitUntil: 'load', timeout: 30000 }); }
注意

步驟應循序執行。請務必對 promise 使用 await

Arguments (引數)

  • stepName 字串 (必要) (布林值) – Synthetics 步驟的名稱。

  • functionToExecute 非同步函式 (必要) – 您希望 Synthetics 執行的函式。此函式應包含步驟的邏輯。

  • stepConfig 物件 (選用) – 步驟組態覆寫此函式的全域 Synthetics 組態。

    • continueOnStepFailure 布林值 (選用) – 此步驟失敗後是否繼續執行 Canary 指令碼。

    • screenshotOnStepStart 布林值 (選用) – 是否要在此步驟開始時擷取螢幕畫面。

    • screenshotOnStepSuccess 布林值 (選用) – 如果此步驟成功,是否擷取螢幕畫面。

    • screenshotOnStepFailure 布林值 (選用) – 如果此步驟失敗,是否擷取螢幕畫面。

  • page – Playwright 頁面物件 (選用)

    Playwright 頁面物件。Synthetics 使用此頁面物件來擷取螢幕畫面和 URL。根據預設,Synthetics 使用呼叫 synthetics.newPage() 函式時建立的 Playwright 頁面來擷取頁面詳細資訊,例如螢幕擷取畫面和 URL。

傳回值

傳回 Promise,使用 functionToExecute 函式傳回的值解析。如需範例指令碼,請參閱本指南中的 Canary 指令碼的範本程式碼