Previous
Day 09 · Auto-waiting and Timeouts
Next
Day 11 · Playwright Configuration
定位断言
Day 1060-120 minutesPlaywright QA hands-on drill

Day 10 - Weekly Review 2: Writing Stable Tests

今日目标

  • 整合 Locator、Assertion、Auto-waiting。
  • 建立稳定测试的基本标准。

学习时间安排(60–120 分钟)

时间模块做什么
0-20 分钟本周概念回顾过一遍概念表,标出还不熟练的 locator 和断言。
20-45 分钟实践任务写 3 条稳定测试:正向、异常、边界。
45-75 分钟连续运行验证每条测试连跑 5 次,处理暴露的 flaky 点。
75-105 分钟自查与修复对照自查清单逐项检查并修复。
105-120 分钟复盘与作业完成复盘问题,让 AI 审查 flaky 风险。

本周概念回顾

English中文是否已掌握
getByRole / getByLabel语义化定位
getByTestId测试 ID 定位
filter / has / hasText过滤与链式定位
nth / first / last序号定位
toBeVisible / toContainText常用断言
toHaveCount / toHaveURL数量与 URL 断言
web-first assertion自动重试断言
auto-waiting自动等待
actionability可操作性检查
waitForURL / waitForTimeout显式等待

实践任务

选择一个业务流程,写 3 条稳定测试:

  1. 正向流程。
  2. 异常流程。
  3. 边界流程。

要求:

  • 不使用硬等待。
  • 不使用长 XPath。
  • 每条测试有明确断言。
  • locator 尽量语义化。
  • 失败时能看出业务原因。

自查清单

- [ ] 是否使用 getByRole/getByLabel/getByText 等推荐 locator
- [ ] 是否避免硬等待
- [ ] 是否每个测试都有明确业务断言
- [ ] 是否每个测试相互独立
- [ ] 是否失败后容易定位原因

今日产出

tests/stable-flow.spec.ts

以及一份自查清单。

复盘问题

  1. 你写的测试是否能重复运行 5 次都通过?
  2. 哪些 locator 最稳定?
  3. 哪些断言最能体现业务价值?
  4. 当前测试还有哪些 flaky 风险?
  5. 如果页面文案变化,哪些测试会受影响?

AI 时代扩展:让 AI 审查 flaky 风险

适用场景

stable-flow.spec.ts 交给 AI 做 flaky 风险审查:等待、依赖、数据、环境四类风险逐项排查。AI 的猜测需要你用“连跑 5 次”的结果验证。

可复用表达 / 提示词

请从以下 4 个角度审查我的测试的 flaky 风险:等待策略、测试间依赖、数据准备、环境假设。每个风险给出触发条件和修复建议。

追问加练

  • AI 列出的风险里,哪条你已经通过连跑 5 次排除了?
  • “测试相互独立”具体指什么?你的 3 条测试真的独立吗?
  • 如果页面文案变化,AI 能帮你做什么?

今日作业

  • 每条测试连跑 5 次并记录结果(--repeat-each=5)。
  • 完成自查清单,全部打勾才算完成。
  • 让 AI 审查 flaky 风险,对每条意见给出“采纳/不采纳+理由”。

自检清单

Previous
Day 09 · Auto-waiting and Timeouts
Next
Day 11 · Playwright Configuration