跳到主要內容

追蹤檢視器

簡介

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

開啟追蹤檢視器

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

npx playwright show-trace path/to/trace.zip

使用 trace.playwright.dev

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

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

Drop Playwright Trace to load

檢視遠端追蹤

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

npx playwright 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

錄製追蹤

在本機錄製追蹤

若要在開發模式期間錄製追蹤,請在執行測試時將 --trace 旗標設定為 on。您也可以使用 UI 模式 以獲得更好的開發人員體驗,因為它會自動追蹤每個測試。

npx playwright test --trace on

然後,您可以開啟 HTML 報告,然後點擊追蹤圖示以開啟追蹤。

npx playwright show-report

在 CI 上錄製追蹤

追蹤應在持續整合中,於失敗測試的第一次重試時執行,方法是在測試設定檔中設定 trace: 'on-first-retry' 選項。這將為每個重試的測試產生一個 trace.zip 檔案。

playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
retries: 1,
use: {
trace: 'on-first-retry',
},
});

可用於錄製追蹤的選項

  • 'on-first-retry' - 僅在第一次重試測試時錄製追蹤。
  • 'on-all-retries' - 為所有測試重試錄製追蹤。
  • 'off' - 不錄製追蹤。
  • 'on' - 為每個測試錄製追蹤。(不建議使用,因為效能負擔較重)
  • 'retain-on-failure' - 為每個測試錄製追蹤,但從成功的測試執行中移除。

如果您未啟用重試,但仍然想要失敗測試的追蹤,您也可以使用 trace: 'retain-on-failure'

還有更多細微的選項可用,請參閱 testOptions.trace

如果您未使用 Playwright 作為測試執行器,請改用 browserContext.tracing API。

追蹤檢視器功能

動作

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

actions tab in trace viewer

選取每個動作會顯示

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

螢幕截圖

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

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

timeline view in trace viewer

快照

當追蹤時啟用快照選項(預設),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

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

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

Metadata

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

meta data in trace viewer

附件

「附件」標籤可讓您瀏覽附件。如果您正在進行視覺迴歸測試,您將能夠透過檢查影像差異、實際影像和預期影像來比較螢幕截圖。當您點擊預期影像時,您可以使用滑桿將一個影像滑到另一個影像上方,以便輕鬆查看螢幕截圖中的差異。

attachments tab in trace viewer