跳到主要內容

追蹤檢視器

簡介

Playwright 追蹤檢視器是一個 GUI 工具,可協助您在腳本執行後探索錄製的 Playwright 追蹤。追蹤是在 CI 上測試失敗時偵錯的絕佳方式。您可以在本機或在瀏覽器上透過 trace.playwright.dev 開啟追蹤。

開啟追蹤檢視器

您可以使用 Playwright CLI 或在瀏覽器上透過 trace.playwright.dev 開啟已儲存的追蹤。請務必新增 trace.zip 檔案所在位置的完整路徑。

mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="show-trace trace.zip"

使用 trace.playwright.dev

trace.playwright.dev 是追蹤檢視器的靜態託管變體。您可以使用拖放或透過 Select file(s) 按鈕上傳追蹤檔案。

追蹤檢視器完全在您的瀏覽器中載入追蹤,且不會向外部傳輸任何資料。

Drop Playwright Trace to load

檢視遠端追蹤

您可以直接使用其 URL 開啟遠端追蹤。這讓您可以輕鬆檢視遠端追蹤,而無需手動從 CI 執行下載檔案等。

mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="show-trace https://example.com/trace.zip"

當使用 trace.playwright.dev 時,您也可以將上傳追蹤的 URL 作為查詢參數傳遞到某些可存取的儲存空間 (例如在您的 CI 內部)。CORS (跨來源資源共享) 規則可能適用。

https://trace.playwright.dev/?trace=https://demo.playwright.dev/reports/todomvc/data/cb0fa77ebd9487a5c899f3ae65a7ffdbac681182.zip

錄製追蹤

可以使用 BrowserContext.tracing() API 錄製追蹤,如下所示

Browser browser = browserType.launch();
BrowserContext context = browser.newContext();

// Start tracing before creating / navigating a page.
context.tracing().start(new Tracing.StartOptions()
.setScreenshots(true)
.setSnapshots(true)
.setSources(true));

Page page = context.newPage();
page.navigate("https://playwright.dev.org.tw");

// Stop tracing and export it into a zip archive.
context.tracing().stop(new Tracing.StopOptions()
.setPath(Paths.get("trace.zip")));

這將錄製追蹤並將其放入名為 trace.zip 的檔案中。

追蹤檢視器功能

動作

在「動作」標籤中,您可以看到每個動作使用了哪個定位器,以及每個動作執行所需的時間。將滑鼠懸停在測試的每個動作上,並以視覺方式查看 DOM 快照中的變更。在時間軸中來回移動,並點擊一個動作以檢查和偵錯。使用「之前」和「之後」標籤以視覺方式查看動作之前和之後發生的情況。

actions tab in trace viewer

選取每個動作會顯示

  • 動作快照
  • 動作日誌
  • 原始碼位置

螢幕截圖

當使用開啟的 setScreenshots 選項 (預設) 進行追蹤時,每個追蹤都會錄製螢幕錄影,並將其呈現為膠片。您可以將滑鼠懸停在膠片上,以查看每個動作和狀態的放大影像,這可協助您輕鬆找到要檢查的動作。

雙擊一個動作以查看該動作的時間範圍。您可以使用時間軸中的滑桿來增加選取的動作,這些動作將顯示在「動作」標籤中,並且所有主控台日誌和網路日誌都將被篩選,僅顯示選取動作的日誌。

timeline view in trace viewer

快照

當使用開啟的 setSnapshots 選項 (預設) 進行追蹤時,Playwright 會為每個動作擷取一組完整的 DOM 快照。根據動作的類型,它將擷取

類型描述
之前呼叫動作時的快照。
動作執行輸入時的快照。當探索 Playwright 點擊的確切位置時,此類型的快照特別有用。
之後動作後的快照。

以下是典型的動作快照的外觀

action tab in trace viewer

請注意它如何同時突出顯示 DOM 節點和確切的點擊位置。

原始碼

當您點擊側邊欄中的動作時,該動作的程式碼行會在原始碼面板中突出顯示。

showing source code tab in trace viewer

調用

「調用」標籤顯示有關動作的資訊,例如花費的時間、使用的定位器、是否處於嚴格模式以及使用的按鍵。

showing call tab in trace viewer

日誌

查看測試的完整日誌,以更好地了解 Playwright 在幕後執行的操作,例如滾動到檢視畫面、等待元素可見、啟用和穩定,以及執行點擊、填寫、按下等動作。

showing log of tests in trace viewer

錯誤

如果您的測試失敗,您將在「錯誤」標籤中看到每個測試的錯誤訊息。時間軸也會顯示一條紅線,突出顯示錯誤發生的位置。您也可以點擊「原始碼」標籤,以查看錯誤發生在原始碼的哪一行。

showing errors in trace viewer

主控台

查看來自瀏覽器以及測試的主控台日誌。會顯示不同的圖示,以顯示主控台日誌是來自瀏覽器還是來自測試檔案。

showing log of tests in trace viewer

雙擊動作側邊欄中測試的動作。這將篩選主控台,僅顯示在該動作期間產生的日誌。點擊顯示全部按鈕以再次查看所有主控台日誌。

使用時間軸篩選動作,方法是點擊起點並拖曳到終點。「主控台」標籤也將被篩選,僅顯示在選取動作期間產生的日誌。

網路

「網路」標籤顯示測試期間發出的所有網路請求。您可以按不同類型的請求、狀態碼、方法、請求、內容類型、持續時間和大小進行排序。點擊請求以查看有關它的更多資訊,例如請求標頭、回應標頭、請求內文和回應內文。

network requests tab in trace viewer

雙擊動作側邊欄中測試的動作。這將篩選網路請求,僅顯示在該動作期間發出的請求。點擊顯示全部按鈕以再次查看所有網路請求。

使用時間軸篩選動作,方法是點擊起點並拖曳到終點。「網路」標籤也將被篩選,僅顯示在選取動作期間發出的網路請求。

元數據

在「動作」標籤旁邊,您會找到「元數據」標籤,其中將顯示有關測試的更多資訊,例如瀏覽器、viewport 大小、測試持續時間等。

meta data in trace viewer