Files
QaAutomationHub/docs/superpowers/specs/2026-07-15-test-framework-scaffold-design.md
xst aade9e39d0 feat: 基于 UI 自动化最佳实践的测试框架骨架搭建
- tests/config: 环境配置 (.yaml) + 配置加载器
- tests/utils: 日志工具 + 测试数据生成器
- tests/web: Playwright conftest + Page Object 基类 + 登录页 + 导航栏组件 + 登录用例(6条)
- tests/app: Appium conftest + Page Object 基类 + 司机端首页 + 登录用例(3条)
- pytest.ini: markers(p0/p1/p2/smoke/web/app) + 运行配置
- 所有用例按最佳实践采用 Page Object 模式 + data-testid 优先定位 + 失败自动截图
2026-07-15 10:24:22 +08:00

2.6 KiB

测试框架搭建 — 设计说明

2026-07-15 | 状态: 已批准

目标

基于 ui_automation_best_practices.md v1.0 的最佳实践,搭建可落地的 Web + App UI 自动化测试框架骨架。后续所有测试用例都留存在 tests/ 目录下。

交付物

文件清单

tests/
├── conftest.py                     # 根级 fixture
├── pytest.ini                      # pytest 配置
├── config/
│   ├── test_config.yaml            # 环境配置
│   └── test_config.py              # 配置加载器
├── web/                            # Web UI (Playwright)
│   ├── conftest.py                 # browser/page fixture
│   ├── pages/
│   │   ├── base_page.py            # Page Object 基类
│   │   ├── login_page.py           # 登录页
│   │   └── components/
│   │       └── navbar.py           # 导航栏组件
│   └── test_login/
│       └── test_login.py           # 登录用例(含参数化)
├── app/                            # App UI (Appium)
│   ├── conftest.py                 # driver fixture
│   ├── pages/
│   │   ├── base_page.py            # Page Object 基类
│   │   └── driver_home_page.py     # 司机端首页
│   └── test_login/
│       └── test_login.py           # 登录用例
└── utils/
    ├── __init__.py
    ├── logger.py                   # 日志工具
    └── data_helper.py              # 测试数据生成/清理

与最佳实践的对应

最佳实践章节 框架落地位置
§3.3 Page Object 模式 web/pages/base_page.py + login_page.py
§3.1 定位策略 base_page.py 中的封装方法优先使用 getByTestId
§3.4 / §4.5 截图策略 conftest.py 中 fixture 的失败自动截图
§5.1 用例独立性 conftest.py 中 setup/teardown fixture
§5.2 数据驱动 test_login.py 中的 @pytest.mark.parametrize
§5.3 环境配置管理 config/test_config.yaml + test_config.py
§5.4 报告与日志 utils/logger.py
§3.6 多浏览器 web/conftest.pybrowser_name fixture 参数化

配置数据来源

project_profile.md 提取:

  • BASE_URL: https://ybxcx.ynyun8.com:8000/admin
  • 测试账号: super_admin / 13113113113 / 15188888888
  • 注意:密码已在 profile 中声明,config 中以占位符标注

范围边界

  • 包含: 框架骨架、基类、conftest、配置、示例用例
  • 不包含: 运八完整业务用例(后续按需求逐步添加)