跳到主要内容

追踪查看器

简介

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

追踪查看器会在您的浏览器中完全加载追踪信息,不会向外部传输任何数据。

拖放 Playwright 追踪信息以加载

查看远程追踪信息

您可以直接使用远程追踪信息的 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 时,您还可以将上传的追踪信息在某些可访问存储(例如在您的 CI 内部)中的 URL 作为查询参数传递。可能会应用跨域资源共享(CORS)规则。

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

录制追踪信息

可以使用 BrowserContext.tracing() API 录制追踪信息,如下所示:

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

// 在创建/导航页面之前开始追踪。
context.tracing().start(new Tracing.StartOptions()
.setScreenshots(true)
.setSnapshots(true)
.setSources(true));

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

// 停止追踪并将其导出到一个 ZIP 归档文件中。
context.tracing().stop(new Tracing.StopOptions()
.setPath(Paths.get("trace.zip")));

这将录制追踪信息并将其保存到名为 trace.zip 的文件中。

追踪查看器功能

操作

在 “操作” 选项卡中,你可以看到每个操作使用了什么定位器,以及每个操作运行花费了多长时间。将鼠标悬停在测试的每个操作上,可以直观地看到 DOM 快照中的变化。在时间轴上前后移动,然后单击某个操作进行检查和调试。使用 “之前” 和 “之后” 选项卡,可以直观地查看操作前后发生的情况。

追踪查看器中的操作选项卡

选择每个操作会显示:

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

屏幕截图

使用 setScreenshots 选项(默认开启)进行跟踪时,每次跟踪都会记录屏幕录像,并将其呈现为胶片带。你可以将鼠标悬停在胶片带上,查看每个操作和状态的放大图像,这有助于你轻松找到想要检查的操作。

双击某个操作可查看该操作的时间范围。你可以使用时间轴中的滑块增加所选操作,这些操作将显示在 “操作” 选项卡中,并且所有控制台日志和网络日志将被过滤,仅显示所选操作的日志。

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

快照

使用 setSnapshots 选项(默认开启)进行跟踪时,Playwright 会为每个操作捕获一组完整的 DOM 快照。根据操作类型的不同,它将捕获:

类型描述
Before调用操作时的快照。
Action执行输入时的快照。这种类型的快照在探究 Playwright 确切点击位置时特别有用。
After操作之后的快照。

典型的 Action 快照如下所示:

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

请注意,它如何同时突出显示 DOM 节点以及确切的点击位置。

源代码

当你在侧边栏中单击某个操作时,该操作的代码行将在源代码面板中突出显示。

跟踪查看器中显示的源代码选项卡

调用

“调用” 选项卡会显示有关操作的信息,例如操作耗时、使用的定位器(若处于严格模式)以及使用的按键。

在跟踪查看器中显示调用选项卡

日志

查看测试的完整日志,以便更好地了解 Playwright 在幕后执行的操作,例如滚动到视图中、等待元素可见、启用和稳定,以及执行诸如点击、填充、按下等操作。

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

错误

如果测试失败,你将在 “错误” 选项卡中看到每个测试的错误消息。时间轴也会显示一条红线,突出显示错误发生的位置。你还可以点击 “源” 选项卡,查看错误出现在源代码的哪一行。

在跟踪查看器中显示错误

控制台

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

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

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

使用时间轴过滤操作,方法是点击起始点并拖动到结束点。“控制台” 选项卡也将被过滤,仅显示所选操作期间生成的日志。

网络

“网络”选项卡会显示测试期间发出的所有网络请求。你可以按不同的请求类型、状态码、方法、请求、内容类型、持续时间和大小进行排序。点击某个请求可查看其更多信息,例如请求头、响应头、请求正文和响应正文。

跟踪查看器中的网络请求选项卡

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

使用时间轴过滤操作,点击起始点并拖动到结束点。“网络”选项卡也将被过滤,仅显示在所选操作期间发出的网络请求。

元数据

在“操作”选项卡旁边,你会找到“元数据”选项卡,它会显示有关测试的更多信息,例如浏览器、视口大小、测试持续时间等。

跟踪查看器中的元数据