测试框架迁移助手
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/test-framework-migration-skill。
技能介绍
背景:框架换栈时的真实成本
团队从 Selenium 迁到 Playwright、或从 Cypress 统一到 Puppeteer,往往不是「改几个 import」就能完成。定位器写法(By.id vs page.getByRole vs cy.get)、等待模型(显式 WebDriverWait、Playwright 自动等待、Cypress 链式 cy.should)、以及 driver/page/browser 的生命周期差异,都会在批量改写时反复踩坑。本技能把迁移当成有对照表的工程任务,而不是让模型凭印象「翻译」测试代码。
技能如何推进一次迁移
扮演资深 QA 自动化架构师,按固定流程工作:
- 识别源与目标框架 — 从用户消息或已打开文件里的关键字(如
driver.findElement、@playwright/test、cy.visit)判断 Selenium / Playwright / Puppeteer / Cypress;信息不足时会先问清源与目标。 - 语言与路径 — 结合源语言与目标框架习惯(例如 Java Selenium → Playwright 通常意味着重写为 TS/JS),并在生成代码前必读对应
reference/*-to-*.md。 - 按映射改写 — 参考文档中的 API 对照,逐项处理定位器、等待、操作、断言、setup/teardown;若涉及 TestMu 等云执行,会指向目标框架的云集成说明。
- 迁移后校验 — 检查是否残留源 API;Playwright 侧避免滥用
waitForTimeout;Cypress 保持链式、不对cy乱用async/await;Selenium 侧用显式等待而非Thread.sleep。
更完整的 Playbook、CI 清单与框架对比见技能内的 reference/overview.md、reference/playbook.md;深度 POM/云集成可交叉参考同系列的 playwright-skill、selenium-skill 等。
适用边界
- 支持的迁移组合以技能内参考表为准(Selenium ↔ Playwright/Puppeteer/Cypress 等);表中没有的组合会说明并建议最接近的受支持路径。
- 技能侧重脚本级 API 与模式迁移,不会替代你在目标栈上的项目结构决策(目录、Runner、并行策略等仍需按团队规范落地。
使用场景
- 存量 Selenium 用例(`By.id`、`WebDriverWait`)要迁到 Playwright,需按 reference 映射改定位器与断言,避免残留 driver API。
- 团队 CI 从 Cypress 切到 `@playwright/test`,要把 `cy.visit`/`cy.should` 链式用例改写成 Playwright 自动等待风格。
- Puppeteer 的 `page.goto`/`page.$` 脚本要并入 Java Selenium 项目,需对照参考文档调整 launch 与显式等待。
- 打开测试文件后无法判断是 Selenium 还是 Cypress,需要先识别源框架、确认目标栈,再读取对应 `*-to-*.md` 再生成代码。
适合人员
- 维护 Java/Python Selenium 回归套件、计划迁 Playwright 且担心漏改等待与定位 API 的 QA 自动化工程师
- 负责多仓库测试栈统一,要在 Selenium、Playwright、Puppeteer、Cypress 间批量改脚本并核对 CI 清单的测试架构师
- 接手遗留 E2E 仓库、需把 Puppeteer 或 Selenium JS 迁到 Cypress 并避免对 `cy` 误用 async/await 的前端/测试开发
- 在 TestMu 等云网格上跑测、框架切换后要对齐目标框架云集成与 setup/teardown 的 QA 或 DevOps 负责人