Skip to main content

追蹤檢視器

簡介​

Playwright Trace Viewer 是一個 GUI 工具,可以幫助您在腳本執行後探索記錄的 Playwright 追蹤。追蹤是在 CI 上測試失敗時進行偵錯的好方法。您可以在本地或在瀏覽器上 trace.playwright.dev 打開追蹤。

開啟 Trace Viewer​

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

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

使用 trace.playwright.dev​

trace.playwright.dev 是 Trace Viewer 的靜態託管版本。您可以使用拖放功能或透過 Select file(s) 按鈕上傳追蹤檔案。

Trace Viewer 會將追蹤完全載入您的瀏覽器中,不會對外傳輸任何資料。

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/fa874b0d59cdedec675521c21124e93161d66533.zip

錄製追蹤​

本地追蹤​

要在開發模式下記錄追蹤,請在執行測試時將 --trace 標誌設定為 on。您也可以使用 UI Mode 以獲得更好的開發者體驗,因為它會自動追蹤每個測試。

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。

Trace Viewer 功能​

Actions​

在 Actions 分頁中,您可以看到每個動作使用的定位器以及每個動作執行的時間。懸停在測試的每個動作上,視覺化地查看 DOM 快照的變化。前後移動時間並點擊動作進行檢查和偵錯。使用 Before 和 After 分頁視覺化地查看動作前後發生的情況。

actions tab in trace viewer

選擇每個動作會顯示:

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

螢幕截圖​

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

雙擊動作可查看該動作的時間範圍。您可以使用時間軸中的滑桿增加選擇的動作,這些動作將顯示在 Actions 分頁中,所有主控台日誌和網路日誌都會被篩選為僅顯示所選動作的日誌。

timeline view in trace viewer

快照​

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

TypeDescription
Before動作呼叫時的快照。
Action執行輸入時刻的快照。此類型的快照特別有用於探索 Playwright 確切點擊的位置。
After動作後的快照。

這是典型的 Action 快照外觀:

action tab in trace viewer

注意它如何同時突出顯示 DOM Node 以及確切的點擊位置。

Source​

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

showing source code tab in trace viewer

Call​

call 分頁顯示有關動作的資訊,例如執行時間、使用的定位器、是否在嚴格模式下以及使用的鍵。

showing call tab in trace viewer

Log​

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

showing log of tests in trace viewer

Errors​

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

showing errors in trace viewer

Console​

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

showing log of tests in trace viewer

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

使用時間軸篩選動作,方法是點擊起始點並拖動到結束點。主控台分頁也會被篩選為僅顯示所選動作期間產生的日誌。

Network​

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

network requests tab in trace viewer

在動作側邊欄中雙擊測試中的動作。這將篩選網路請求以僅顯示該動作期間產生的請求。點擊 Show all 按鈕可再次查看所有網路請求。

使用時間軸篩選動作,方法是點擊起始點並拖動到結束點。網路分頁也會被篩選為僅顯示所選動作期間產生的網路請求。

Metadata​

在 Actions 分頁旁邊,您會找到 Metadata 分頁,該分頁會顯示更多有關測試的資訊,例如瀏覽器、檢視區大小、測試持續時間等。

meta data in trace viewer

Attachments​

"Attachments" 分頁允許您探索附件。如果您在進行視覺回歸測試,您將能夠透過檢查影像差異、實際影像和預期影像來比較螢幕截圖。當您點擊預期影像時,您可以使用滑桿將一個影像滑動到另一個影像上,這樣您可以輕鬆查看螢幕截圖中的差異。

attachments tab in trace viewer