跳到主要内容

追踪查看器

简介

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 的静态托管版本。您可以通过拖放或点击 选择文件 按钮来上传追踪文件。

Trace Viewer 会将追踪记录完全加载到您的浏览器中,不会向外部传输任何数据。

拖放 Playwright 追踪记录以加载

查看远程追踪记录

您可以直接使用 URL 打开远程追踪记录。这样无需从 CI 运行中手动下载文件,就能方便地查看远程追踪记录。

npx playwright show-trace https://example.com/trace.zip

使用 trace.playwright.dev 时,您还可以将可访问存储(例如 CI 内部)中已上传追踪记录的 URL 作为查询参数传递。可能会应用 CORS(跨域资源共享)规则。

https://trace.playwright.dev/?trace=https://demo.playwright.dev/reports/todomvc/data/fa874b0d59cdedec675521c21124e93161d66533.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快照的变化。您可以前后浏览时间轴,点击某个操作进行检查和调试。使用"操作前"和"操作后"选项卡可以直观地查看操作前后的变化。

跟踪查看器中的操作记录选项卡

选择每个操作会显示:

  • 操作快照
  • 操作日志
  • 源代码位置

屏幕截图

当启用screenshots选项进行跟踪时(默认启用),每次跟踪会记录屏幕录像并渲染成胶片条形式。您可以悬停在胶片条上查看每个操作和状态的放大图像,这有助于轻松找到需要检查的操作。

双击某个操作可以查看该操作的时间范围。您可以使用时间轴上的滑块扩大选择范围,这些操作会显示在"操作记录"选项卡中,所有控制台日志和网络日志都会被过滤,仅显示所选操作期间的日志。

跟踪查看器中的时间轴视图

快照

当启用 snapshots 选项(默认开启)进行追踪时,Playwright 会为每个操作捕获一组完整的 DOM 快照。根据操作类型的不同,它会捕获以下内容:

类型描述
操作前调用操作时的快照
操作中执行输入时的快照。这类快照在探索 Playwright 具体点击位置时特别有用
操作后操作完成后的快照

以下是典型的操作中快照示例:

trace viewer 中的 action 标签页

注意它如何同时高亮显示 DOM 节点和精确的点击位置。

源代码

当你在侧边栏点击某个操作时,该操作对应的代码行会在源代码面板中高亮显示。

trace viewer 中显示源代码标签页

调用

调用标签页显示操作的相关信息,包括耗时、使用的定位器、是否处于严格模式以及使用的按键等。

trace viewer 中显示 call 标签页

日志

查看完整的测试日志,更好地理解 Playwright 在后台执行的操作,例如滚动到视图、等待元素可见/可用/稳定,以及执行点击、填充、按键等操作。

trace viewer 中显示测试日志

错误信息

如果测试失败,您可以在"错误"选项卡中查看每个测试的错误消息。时间轴还会显示一条红线,标记错误发生的位置。您也可以点击"源代码"选项卡,查看错误发生在源代码的哪一行。

在追踪查看器中显示错误

控制台日志

查看来自浏览器和测试文件的控制台日志。不同的图标会显示日志是来自浏览器还是测试文件。

在追踪查看器中显示测试日志

双击操作侧边栏中的某个测试操作。这将过滤控制台,仅显示该操作期间生成的日志。点击"显示全部"按钮可再次查看所有控制台日志。

使用时间轴通过点击起点并拖动到终点来过滤操作。控制台选项卡也将被过滤,仅显示所选操作期间生成的日志。

网络请求

"网络"标签页显示测试过程中发起的所有网络请求。您可以按请求类型、状态码、方法、请求内容、内容类型、持续时间和大小进行排序。点击某个请求可查看详细信息,包括请求头、响应头、请求体和响应体。

追踪查看器中的网络请求标签页

在操作侧边栏中双击测试中的某个操作。这将过滤网络请求,仅显示该操作期间发起的请求。点击显示全部按钮可再次查看所有网络请求。

使用时间轴筛选操作,通过点击起点并拖动到终点来选择时间范围。网络标签页也会相应过滤,仅显示选定操作期间发生的网络请求。

元数据

在"操作"标签页旁边是"元数据"标签页,这里会显示测试的更多信息,如浏览器类型、视口大小、测试持续时间等。

追踪查看器中的元数据

附件

"附件"标签页允许您查看测试附件。如果您正在进行视觉回归测试,可以通过检查图像差异、实际图像和预期图像来比较截图。点击预期图像时,可以使用滑块将两张图像重叠滑动,方便查看截图中的差异。

追踪查看器中的附件标签页