Tracing
用于收集和保存 Playwright 追踪的 API。Playwright 追踪可以在 Playwright 脚本运行后在追踪查看器中打开。
您可能希望在您的配置文件中启用追踪,而不是使用context.tracing
。
context.tracing
API 捕获浏览器操作和网络活动,但它不记录测试断言(如expect
调用)。我们建议通过 Playwright Test 配置启用追踪,这包括这些断言,并为调试测试失败提供更完整的追踪。
在执行操作之前开始记录追踪。最后,停止追踪并将其保存到文件中。
const browser = await chromium.launch();
const context = await browser.newContext();
await context.tracing.start({ screenshots: true, snapshots: true });
const page = await context.newPage();
await page.goto('https://playwright.net.cn');
expect(page.url()).toBe('https://playwright.net.cn');
await context.tracing.stop({ path: 'trace.zip' });
方法
group
新增于: v1.49如果可用,请改用test.step
。
在追踪中创建一个新组,将任何后续 API 调用分配给此组,直到调用tracing.groupEnd()。组可以嵌套,并将在追踪查看器中可见。
用法
// use test.step instead
await test.step('Log in', async () => {
// ...
});
参数
-
在追踪查看器中显示的组名。
-
options
Object (可选)
返回
groupEnd
新增于: v1.49关闭由tracing.group()创建的最后一个组。
用法
await tracing.groupEnd();
返回
start
添加于:v1.12开始追踪。
您可能希望在您的配置文件中启用追踪,而不是使用Tracing.start
。
context.tracing
API 捕获浏览器操作和网络活动,但它不记录测试断言(如expect
调用)。我们建议通过 Playwright Test 配置启用追踪,这包括这些断言,并为调试测试失败提供更完整的追踪。
用法
await context.tracing.start({ screenshots: true, snapshots: true });
const page = await context.newPage();
await page.goto('https://playwright.net.cn');
expect(page.url()).toBe('https://playwright.net.cn');
await context.tracing.stop({ path: 'trace.zip' });
参数
options
Object (可选)-
如果指定,中间追踪文件将保存到browserType.launch()中指定的tracesDir目录中,文件名前缀为给定名称。要指定最终追踪 zip 文件名,您需要改为将
path
选项传递给tracing.stop()。 -
是否在追踪期间捕获屏幕截图。屏幕截图用于构建时间线预览。
-
如果此选项为 true,追踪将
- 在每次操作时捕获 DOM 快照
- 记录网络活动
-
是否包含追踪操作的源文件。
-
在追踪查看器中显示的追踪名称。
-
返回
startChunk
新增于: v1.15开始一个新的追踪块。如果您想在同一个浏览器上下文上记录多个追踪,请使用tracing.start()一次,然后使用tracing.startChunk()和tracing.stopChunk()创建多个追踪块。
用法
await context.tracing.start({ screenshots: true, snapshots: true });
const page = await context.newPage();
await page.goto('https://playwright.net.cn');
await context.tracing.startChunk();
await page.getByText('Get Started').click();
// Everything between startChunk and stopChunk will be recorded in the trace.
await context.tracing.stopChunk({ path: 'trace1.zip' });
await context.tracing.startChunk();
await page.goto('http://example.com');
// Save a second trace file with different actions.
await context.tracing.stopChunk({ path: 'trace2.zip' });
参数
options
Object (可选)-
如果指定,中间追踪文件将保存到browserType.launch()中指定的tracesDir目录中,文件名前缀为给定名称。要指定最终追踪 zip 文件名,您需要改为将
path
选项传递给tracing.stopChunk()。 -
在追踪查看器中显示的追踪名称。
-
返回
stop
添加于:v1.12停止追踪。
用法
await tracing.stop();
await tracing.stop(options);
参数
返回
stopChunk
新增于: v1.15停止追踪块。有关多个追踪块的更多详细信息,请参见tracing.startChunk()。
用法
await tracing.stopChunk();
await tracing.stopChunk(options);
参数
options
Object (可选)-
将自上次tracing.startChunk()调用以来收集的追踪导出到给定路径的文件中。
-
返回