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,并按环境区分,避免误用生产登录态。