首页/开发/软件测试速查/Playwright 测试夹具
自动化测试66 条

Playwright 测试夹具

Playwright 自带夹具体系(page、context、browser、request),也支持自定义 fixture 与项目配置;测试之间默认隔离 context,相当于每个用例独立会话。

软件测试速查开发更新于 2026-10-13

Playwright 测试夹具是什么

Playwright 自带夹具体系(page、context、browser、request),也支持自定义 fixture 与项目配置;测试之间默认隔离 context,相当于每个用例独立会话。夹具是组织登录态、测试数据与接口客户端的标准位置;作用域声明清楚,资源生命周期才不会互相干扰。

基本信息

内置夹具page、context、browser、request 按需注入
隔离默认每个用例独立 context,cookie 与存储互不污染
自定义夹具以 test.extend 扩展,可依赖内置夹具
作用域用例级、worker 级、项目级按需声明
复用场景登录态、测试数据、接口客户端

用例示例

用例示例
import { test, expect } from '@playwright/test';

test('login', async ({ page }) => {
  // page 夹具即独立会话
  await page.goto('/login');
  await expect(page).toHaveTitle(/登录/);
});
// 自定义夹具可从已验证的 storageState 起步

典型使用场景

  • 登录复用:把登录态存为 storageState 供全部用例复用。
  • 数据准备:夹具内建测试数据并登记清理。
  • 接口客户端:封装 API 客户端夹具,界面与接口混测。
  • 并行执行:worker 级夹具配合分片,资源按 worker 隔离。
  • 项目分档:桌面与移动项目复用同一夹具体系。
  • 可读性:用例参数签名即依赖清单,评审一眼看懂。

夹具作用域

作用域生命周期适用资源
用例级每个用例独立页面、轻量数据
worker 级按 worker 共享登录态、重资源
项目级跨整个项目公共客户端与配置
自定义 fixture 可复用登录态、测试数据与接口客户端,也支持按 worker 与项目维度定义作用域。
夹具返回值要可追踪:创建的数据带上标识,失败时便于清理与对账。
重资源放 worker 级、轻资源放用例级:粒度选错要么慢,要么互相污染。
storageState 里也是一份凭证:文件加 .gitignore,并按环境区分,避免误用生产登录态。

易错点

  • 用例间共享同一个 context,cookie 与存储状态互相污染
  • 自定义夹具未声明依赖关系,资源尚未就绪就开始执行
  • 夹具里做太多副作用(建数据、发通知),失败原因难分辨
  • 清理只在成功路径执行,失败后残留数据影响后续
  • worker 级夹具被用例私自修改,并行下行为不一致
  • storageState 文件误提交进仓库,测试凭证泄露
  • 用例里直接新建浏览器或 context,绕开夹具的清理与隔离
  • 夹具命名与用例语义脱节,参数签名看不出提供了什么

数据来源与参考

  • Playwright 官方文档:Fixtures(playwright.dev)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌