Codex 使用 Playwright Test Agents
一、核心测试代理内置Playwright 内置三款开箱即用的智能测试代理planner、generator、healer三种使用模式独立调用、串行执行、代理循环链式调用串行运行可完整产出产品测试覆盖用例。planner测试规划器- 生成 Markdown 测试方案generator代码生成器- 转换测试方案为 Playwright 测试代码healer自动修复器- 修复执行失败的测试用例传送门Agents | Playwright二、初始化 Codex 对应的代理配置这里我拿codex 举例测试1. 执行初始化命令npx playwright init-agents --loopcodex执行完上面的命令在输入框输入可以看到智能体这里可以调用Planner,Generator,Healer2. 项目结构pj/ ├── .codex/ # Codex 专属 Agent 指令、MCP工具配置 ├── specs/ # Planner 产出的Markdown测试计划 ├── tests/ │ ├── seed.spec.ts # 环境初始化种子用例3. 添加被测试项目的地址这里我添加了一个测试项目的地址三调用 Planner产出测试计划md 文件提示词playwright_test_planner 基于 seed.spec.ts 生成用户注册登录的全流程测试计划输出到 specs/user_login.md这里打多了个路径ai也是识别到了(⊙o⊙)…可以看到这里ai已经输出了测试计划。需要人工审查一遍场景有缺失场景可以让ai继续补充。四调用 Generator生成可执行测试代码提示词playwright_test_generator 根据 specs/user_login.md 生成 Playwright 自动化测试代码输出到 tests 目录可以让ai指定一个目录存放生成的testcase让codex帮忙执行下测试用例1.验证测试用例1. 单条用例执行# 单条用例执行 npx playwright test tests/admin-login.spec.tsPS G:\Traepj\pyrgt npx playwright test tests/admin-login.spec.ts Running 2 tests using 1 worker ✓ 1 tests\admin-login.spec.ts:4:7 › 管理员登录 › 管理员登录入口可访问 (5.6s) ✓ 2 tests\admin-login.spec.ts:16:7 › 管理员登录 › 普通用户无法访问管理功能 (7.2s) 2 passed (15.2s)输出绿色Passed真实执行成功浏览器完整跑完所有步骤、全部断言通过输出红色Failed 确实失败2. UI 可视化模式肉眼直观确认页面操作npx playwright test tests/xxx.spec.ts --ui这里可以看到第二个步骤有点不稳定执行失败了后面我们在使用Healer的时候拿这个步骤利用Healer自动修复这个错误3. 录制 Trace 追踪完整回放全流程留证溯源npx playwright test tests/admin-login.spec.ts --trace onnpx playwright test tests/admin-login.spec.ts --trace on Running 2 tests using 1 worker ✓ 1 tests\admin-login.spec.ts:4:7 › 管理员登录 › 管理员登录入口可访问 (6.3s) ✓ 2 tests\admin-login.spec.ts:16:7 › 管理员登录 › 普通用户无法访问管理功能 (9.6s) 2 passed (19.3s)回放方式方式一本地命令直接打开查看器 npx playwright show-trace xxx.zip方式二网页在线打开 https://trace.playwright.dev 拖拽 zip五调用 Healer 自动修复接着上面UI可视化模式testcase执行失败的步骤接下来我们调用 Healer修复一下这个步骤提示词playwright_test_healer 自动修复 tests/admin-login.spec.ts 执行失败问题# Instructions - Following Playwright test failed. - Explain why, be concise, respect Playwright best practices. - Provide a snippet of code with the fix, if possible. # Test info - Name: admin-login.spec.ts 管理员登录 普通用户无法访问管理功能 - Location: tests\admin-login.spec.ts:16:7 # Error details Test timeout of 30000ms exceeded. Error: page.goto: Test timeout of 30000ms exceeded. Call log: - navigating to http://127.0.0.1:8000/admin_login/, waiting until load调用完healer修复case后ai也全跑了一遍testcase。再次执行case也是通过了多试了几次也是执行成功了经过Healer的修复可以提高case执行的稳定性六需要注意点1. 需要对比 specs 测试计划与生成代码排查 AI 偷减步骤Planner 产出的specs/xxx.md是标准完整业务流程拿它和 Generator 生成的.spec.ts对比虚假成功高频原因AI 简化、删减核心逻辑删掉关键业务步骤比如只登录跳过下单、支付核心流程弱化断言把校验文案 / 数量 / 接口数据的强断言简化成仅判断元素可见跳过异常分支、二次校验逻辑。只要代码缺失 md 里定义的步骤哪怕跑通也属于无效假成功。2. 需要区分使用 Codex 原生修复 / Healer 代理修复 判断标准先理清核心本质Codex通用代码 AI仅靠「代码 终端报错文本」推理修改不会启动浏览器、不会访问真实页面、不会自动重跑测试HealerPlaywright 专用测试自愈代理内置浏览器执行能力能实时读取当前页面 DOM、自动重放步骤、循环验证修复结果还能区分是测试脚本问题还是前端页面本身 BUG。是否需要读取真实运行中的页面 DOM不需要页面只用 Codex需要现场扫描页面元素、动态组件必须 Healer是否需要自动重复运行测试验证修复效果手动执行一次即可Codex多次自动重试、动态调整定位 / 等待Healer是否需要自动区分「脚本错误」和「产品功能 BUG」只改代码不用管页面是否正常Codex页面本身失效时自动跳过用例Healer维度直接用 Codex 修改调用内置 Healer 代理是否访问真实页面否仅文本推理是实时读取 DOM自动重试验证无改完需手动跑用例自动循环运行测试验证动态元素修复能力差容易瞎改定位器强现场匹配有效元素区分页面 BUG 能力不能只会无脑改代码能异常页面自动 skip 用例适用规模少量简单临时用例大批量、长期维护自动化套件七api成本我使用的codexdeepseek在高峰期内整体使用的模型是deepseek-v4-flash对比维度人工AI¥2.71时间1.5–3 天30–40 分钟人力成本¥400–600¥2.62覆盖率取决于经验34 个用例22 条路由全扫¥2.62 ≈ 差不多一个茶叶蛋的价格换来了 34 个测试用例还顺手发现了一个应用 bug。成本还算可以控制