跳到主要内容
Clinford Jordano Valencia
全部项目
平台

Saga:测试状态注入工具

由服务端支持的状态注入,让 QA 和自动化脚本直接跳到冗长验证流程的任意一步,把回归测试的准备时间从最长 20 分钟缩短到不到 1 分钟。

角色
Senior Frontend Engineer
时间
2025–至今
技术栈
TypeScript · Playwright · BFF · Test database

问题

要检查 KYC 流程第 5 步的一个缺陷,你得先填写有效的个人信息、上传证件,并通过第 1 到第 4 步的活体检测。每次如此,每个 pull request、每次自动化运行都要来一遍。

方案

Saga 让测试人员或脚本打开应用时就已处于所需的状态。

  1. Playwright 脚本或 QA 工程师用一个安全的测试令牌加载页面,例如 ?state=step_4_ready。
  2. 前端在 hydration 时识别该令牌,并通过请求头转发给 BFF。
  3. BFF 确认当前环境严格属于非生产环境,然后在测试数据库中为用户的会话写入状态:第 1 到第 3 步已完成,当前指针停在第 4 步。
  4. BFF 返回真实的会话令牌,界面立刻渲染第 4 步。

我选择由服务端注入状态,而不是在客户端模拟 localStorage。现代应用在后端校验会话,客户端模拟会逐渐偏离真实情况,产生在这里通过、在生产环境失败的测试。

结果

回归测试的准备时间从每轮 10–20 分钟降到一分钟以内。每周有几十次 pull request 运行和自动化测试集,这相当于每季度节省数百个工程小时。