用途:在 Playwright + TypeScript 端到端测试中,通过 API 准备测试数据、断言真实接口响应(不做 mock),并构建可复用的 HTTP 封装。
主要能力:
- 资源类模式:为每个后端资源建一个类,目录结构镜像后端 REST 命名空间,例如 api/CRM/Users/... 对应 api/crm/users/users-resource.ts。类继承 BasePage,以复用同一 page.request 上下文、环境变量凭据(如 this.BASE_URL)与 expect。参数用 TypeScript 接口加可选字段,构建查询串前过滤 undefined/空值;在调用处内联 expect(response.status()).toBe(200),让接口失败在造数步骤立即暴露。方法可接受可选 baseUrl 参数,默认 this.BASE_URL。
- 文件布局约定:-resource.ts 用于读多的集合(GET 为主),-operations.ts 用于写多的实体(POST/PUT/DELETE 为主),custom/ 放测试基础设施(存储过程桥、SQL 透传),integrations/ 放第三方端点。
- ApiListener 模式:在导航前注册路由捕获,触发 UI 操作后读取捕获的响应,避免 mock。支持预拦截与 promise race 两种用法,通过 stateKey 解耦设置与断言,原始响应会被重新 fulfill,对被测 UI 透明。仅对外部/第三方服务(支付网关、第三方身份提供方、分析端点)使用 mock,不要 mock 主应用 API。
- SQL/存储过程桥(可选、项目相关):若应用暴露通用过程执行端点,可封装用于测试期数据库操作,避免测试直连数据库。仅限测试环境,生产环境使用原始 SQL 透传有安全风险;后端不支持时改用 Node.js 数据库客户端 fixture。
- MFA/TOTP:为启用 MFA 的用户内联生成 TOTP 码,Authenticator 为自包含 RFC 6238 生成器,同一 30 秒窗口内可复用。
- Faker 造随机用户:每次调用生成新属性,返回响应 JSON 与原始请求体。
使用方式:API 辅助类负责 setup 与 cleanup,测试主体聚焦被测 UI 行为;常见反模式包括 mock 主应用 API、硬编码 BASE_URL、省略状态断言、每次新建 request.newContext()、绕过被测 UI、硬编码环境相关 ID、在测试内设置 page.route() 监听。
限制:资料未提供安装命令、版本要求、收费与平台信息;SQL 桥与部分模式为项目特定,需按后端能力取舍。