Playwright TestRail 双向同步
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 的指引,将 @user_3c6cb52e/breeze-testrail 安装到当前 AI 助手中。
技能介绍
它解决什么问题
Playwright 测试代码和 TestRail 用例管理往往各自为政:写完的测试没有自动对应回 TestRail 用例,一轮回归跑完后,结果还要手工搬运进测试管理系统,反复维护双向映射既枯燥又容易出错。该技能把两者直接接起来,覆盖用例导入、结果回写、运行创建的完整链路。
核心能力与工作流程
1. 导入用例 → 生成 Playwright 测试
调用 testrail_get_cases 拉取用例,读取标题、前置条件、步骤和预期结果,套用 Playwright 模板生成测试,并写入用例 ID 标注:
test.info().annotations.push({ type: 'testrail', description: 'C12345' })
生成的文件按 section 分组,最后报告导入用例数与生成测试数。
2. 回写测试结果
用 JSON reporter 跑完 Playwright 后解析结果,按标注中的用例 ID 逐条调用 testrail_add_result:Pass 写入 status_id: 1,Fail 写入 status_id: 5 并附带错误信息,Skip 写入 status_id: 2。
3. 创建测试运行
调用 testrail_add_run,传入标注中发现的全部用例 ID,返回 run ID 供后续回写结果。
4. 同步覆盖状态
拉取 TestRail 用例,扫描本地测试中的 TestRail 标注,报告覆盖情况。
5. 反向更新用例
读取指定用例 ID 对应的 Playwright 测试,从代码中提取步骤与预期结果,调用 testrail_update_case 更新 TestRail 里的用例。
底层通过 8 个 MCP 工具完成读写:testrail_get_projects、testrail_get_suites、testrail_get_cases、testrail_add_case、testrail_update_case、testrail_add_run、testrail_add_result、testrail_get_results。
适用边界与注意点
- 必须先配置
TESTRAIL_URL、TESTRAIL_USER、TESTRAIL_API_KEY三个环境变量,未配置时技能只会提示如何配置并停止执行。 - 结果回写完全依赖标注中的用例 ID:没有标注的测试无法映射,未匹配用例会在报告中作为错误列出。
- 导入质量取决于 TestRail 用例的标题、前置条件、步骤、预期结果字段是否填写完整。
- 用例更新是从测试代码反向提取步骤,适合「以代码为准」的维护方式,不适合 TestRail 用例比代码更权威的场景。
使用场景
- 每次 Playwright 回归跑完后,把 JSON 报告解析成 Pass/Fail/Skip 状态,按用例 ID 批量回写到 TestRail 对应的测试结果中。
- 新增一批 TestRail 用例后,直接从用例库拉取标题、前置条件和预期结果,批量生成带 TestRail 标注的 Playwright 测试文件。
- 团队在 TestRail 中调整了用例步骤,需要从本地对应的 Playwright 测试中提取最新步骤和预期结果,反向更新 TestRail 里的用例内容。
- 发起新一轮测试前,扫描本地 Playwright 测试中的 TestRail 标注,把所有涉及的用例 ID 汇总并一键创建新的 TestRail 测试运行。
适合人员
- 编写 Playwright 自动化测试的 QA 工程师,想把测试结果自动回写到 TestRail,免去手工更新测试状态的重复劳动。
- 维护 TestRail 测试用例库的测试架构师,想把用例库中的步骤和预期结果直接生成对应的 Playwright 代码骨架。
- 负责 CI/CD 流水线集成的 DevOps 工程师,需要在自动化测试跑完后自动创建 TestRail 运行并把结果推送过去。
- 既写代码又管用例的全栈测试开发者,希望本地 Playwright 测试和 TestRail 用例的步骤保持双向一致。