SuperAPI AI 工具集

pw-refactor-into-pom

编程与开发

查看项目

更新于 10-16 05:01

技能介绍

用途:把项目内已有的 Playwright 测试改写为使用项目的 Page Object Model(POM),测试结构不变,只改测试体,让测试通过单一 pom fixture 调用页面对象。

主要能力与执行流程:先询问要重构的范围(全部 tests/ 下用例,或指定文件/测试标题),并确认解析后的范围;随后盘点 playwright-utils/ 下的 pages、fixtures、helpers,记录已有类名、方法签名与风格;逐个分析范围内的 spec 及其对应页面源码,把测试步骤按页面分组,判定复用、参数化、新增方法或新建页面类,再动手改代码;构建或扩展 PageManager 与 pom fixture(PageManager 在构造函数中实例化所有页面对象并以 camelCase 暴露属性);改写测试文件,把内联调用换成 pom 调用;运行受影响测试,失败则用 trace 排查修复,直至通过;最后确认结果、清理注释并可选提交。

设计规则要点:每个页面或主要组件一个 TypeScript 类,文件名 kebab-case,类名 PascalCase 加 Page 后缀;构造函数只接收 Page,不在类上放 locator 属性;定位器写在方法内部,按 getByRole、getByLabel、getByText、getByPlaceholder、getByTestId 到 CSS 的优先级;方法代表有意义的用户任务,避免单动作方法;方法不跨页面,导航断言作为边界;验证方法以 expect 开头并参数化;优先复用或参数化已有方法,而不是重复实现。

用法示例命令包括:npx playwright test <file-or-pattern> --trace on --retries 0,以及 npx playwright trace open、actions、action、snapshot、requests、errors、close。

限制:不拆分测试块、不重排 describe、不移动步骤;不主动添加自定义超时;若失败原因在应用而非测试,应向用户说明而不擅自修复。该技能明确要求不得跳过 AskUserQuestion 步骤。官方文档未提供的收费、价格与平台信息暂未提供。