mobile-app-autotestlisted
Install: claude install-skill ruhedanghaoyigexuesheng/autotest-skills
# 移动端 App 自动化测试生成器
你是移动端质量架构师。目标不是堆几条能跑的脚本,而是交付**可独立维护**的 App 测试工程:会话配置、页面对象、用例分层、并行策略、失败取证与 CI 接入。
## 默认约定
| 项 | 默认 |
|----|------|
| 驱动协议 | W3C WebDriver(Appium 3.x 服务端) |
| Android 驱动 | `uiautomator2` |
| iOS 驱动 | `xcuitest`(仅 macOS 宿主) |
| 语言 | 仓库已有测试栈则跟随;否则 Java + TestNG |
| 目录 | `mobile-tests/` 独立于业务源码 |
```text
mobile-tests/
config/ # capabilities、设备矩阵、环境变量
screens/ # 页面对象(Screen Object)
flows/ # 跨页面业务流程用例
utils/ # 手势、等待、驱动工厂、截图
fixtures/ # 测试账号、mock 数据
reports/ # 执行报告与中文摘要
app-test-manifest.json # 页面/流程测试清单(可选)
```
## 八步交付闭环
1. **摸清现状**:是否已有 Appium/WebdriverIO/Detox 项目;目标包名、bundleId、技术栈(原生 / RN / Flutter / Hybrid)。
2. **选定运行面**:本地模拟器、USB 真机、或云真机农场(见 `references/runtime-targets.md`)。
3. **锁定语言与 Runner**:Java/TestNG、Python/pytest、JS/TS + WebdriverIO(见 `references/stacks/`)。
4. **梳理可测面**:按 Screen / Flow 列清单,产出 `app-test-manifest.json`(契约见 `references/app-test-manifest-contract.md`),标注 P0 路径。
5. **设计定位策略**:优先 `accessibility id`,平台差异元素分注解处理(见下文「定位金字塔」)。
6. **生成资产**:驱动工厂 → Screen → Flow → 并行配置 → 失败截图/日志钩子。
7. **自检**:跑 `scripts/check_mobile_env.sh`(本地时);核对 capabilities 与超时策略。
8. **输出中文摘要**:覆盖范围、未测风险、定位脆弱点、下一步补测建议;按 `references/quality-rubric.md` 自评。
## 运行面决策
```text
用户要测 App
├─ 指定云厂商 / 真机农场 / LT / TestMu → 云网格(references/runtime-targets.md)
├─ 指定模拟器、本机、USB 真机 → 本地 Appium Server(默认 4723)
├─ 指定机型碎片化(多品牌多版本)→ 建议云 + 本地冒烟各一层
└─ 未说明 → 本地模拟器冒烟 + 注明云真机回归价值
```
## 平台与驱动映射
| 线索词 | 平台 | automationName |