asus d19a41d19d refactor: 全代码库替换术语 分销→销售 分润→返利 裂变→推荐 分佣→佣金 2 miesięcy temu
..
issue-tracking 2c8ebc20ae fix: resolve rebase conflicts + update tests/docs 2 miesięcy temu
screenshots 50d38046d6 feat: 实现成长规划师模块完整功能 4 miesięcy temu
test-assets 50d38046d6 feat: 实现成长规划师模块完整功能 4 miesięcy temu
test-records d19a41d19d refactor: 全代码库替换术语 分销→销售 分润→返利 裂变→推荐 分佣→佣金 2 miesięcy temu
test-reports af7a9fdce4 refactor: 移除DAN等级相关字段 2 miesięcy temu
.test-sync.json af7a9fdce4 refactor: 移除DAN等级相关字段 2 miesięcy temu
README.md 50d38046d6 feat: 实现成长规划师模块完整功能 4 miesięcy temu
backend-e2e-publish-test-2026-06-28.md 5ae0d98bb3 docs: 更新管理后台发布E2E测试报告 - 第三次验证 2 miesięcy temu
backend-test-report-2026-06-27.md f6b1282977 test: unit tests for SupplySystem/FoodRecommend/ArticleWorkflow + v11 API test updates + E2E workflow scenarios 2 miesięcy temu
package-lock.json 879922f68a chore: update docs zxyj→cfc references 3 miesięcy temu
package.json 879922f68a chore: update docs zxyj→cfc references 3 miesięcy temu
run-agent-tests.js 50d38046d6 feat: 实现成长规划师模块完整功能 4 miesięcy temu
run-mcp-tests.js 50d38046d6 feat: 实现成长规划师模块完整功能 4 miesięcy temu
run-tests.js 50d38046d6 feat: 实现成长规划师模块完整功能 4 miesięcy temu
test-cases.js d81fb08ba1 docs: add cfc-web refactor plan + test docs and fixes 3 miesięcy temu
test-inventory.md 5f12d709e5 test: add 70 backend tests for 4 role types + fix 24 compilation errors 3 miesięcy temu
test-report-growth-assessment.md af7a9fdce4 refactor: 移除DAN等级相关字段 2 miesięcy temu
test-report-guide.md 50d38046d6 feat: 实现成长规划师模块完整功能 4 miesięcy temu
test-report.md 5f12d709e5 test: add 70 backend tests for 4 role types + fix 24 compilation errors 3 miesięcy temu

README.md

心知益家小程序 - 自动化测试套件

概述

本测试套件基于 Chrome DevTools MCP 服务,实现心知益家小程序的自动化测试,确保 100% 的需求覆盖度。

特性

  • 100% 需求覆盖:自动解析需求文档,为每个需求生成测试用例
  • 🔄 自动同步:需求变更时自动检测并同步测试用例
  • 📊 可视化报告:生成 HTML 和 JSON 格式的测试报告
  • 🎯 优先级测试:支持按 P0/P1/P2 优先级运行测试
  • 📸 截图记录:测试过程自动截图,便于问题定位

目录结构

系统测试/
├── test-cases.js          # 测试用例定义(100% 需求覆盖)
├── run-tests.js           # 测试运行器
├── package.json           # 项目配置
├── test-reports/          # 测试报告输出目录
│   ├── test-report-{timestamp}.html
│   └── test-report-{timestamp}.json
├── screenshots/           # 测试截图目录
└── .test-sync.json        # 需求同步状态文件

快速开始

1. 安装依赖

cd 系统测试
npm install

2. 运行测试

# 运行所有测试
npm test

# 仅运行 P0 级测试
npm run test:p0

# 仅运行 P1 级测试
npm run test:p1

# 仅运行 P2 级测试
npm run test:p2

# 仅同步需求,不运行测试
npm run sync

# 仅生成报告
npm run report

3. 查看报告

测试完成后,在 test-reports/ 目录查看 HTML 报告:

# 打开最新报告
open test-reports/test-report-*.html

需求覆盖

P0 级需求(必须完成)

需求ID 功能描述 测试状态
TASK-001 家长可创建任务,设置任务名称
TASK-002 设置任务积分值(1-10分,默认2分)
TASK-003 设置任务截止时间(精确到分钟)
TASK-005 设置任务分类(学习类/生活类/运动类/游戏类/其他)
TASK-008 孩子可查看今日任务列表
TASK-009 孩子点击"完成"按钮提交任务
TASK-012A 打卡支持照片上传
TASK-012B 打卡支持视频上传
TASK-012C 打卡支持录音上传
TASK-012D 打卡支持文字描述
TASK-012E 打卡支持倒计时功能
TASK-012F 倒计时结束时语音提醒
POINT-001 完成任务获得基础积分
POINT-002 超额完成获得额外积分(提前或超质完成,家长制定规则)
POINT-006 超时10分钟以内不算迟到
POINT-007 每天最多扣5分
POINT-008 扣分功能按年龄配置
POINT-009 积分不清零,可设置积分有效期
REWARD-001 孩子可添加想要的奖励到心愿单
REWARD-001A 家长填写所需积分后心愿进入奖励库
REWARD-002A 家庭奖励库(多个家长都可调整)
REWARD-002B 多孩子心愿单隔离
REWARD-005 家长审批奖励兑换
MODE-001 家长模式:发布任务、审批奖励
MODE-002 孩子模式:查看任务、完成任务
MODE-003 密码切换模式(4位数字密码)
MODE-006 角色权限区分
MODE-007 孩子信息管理(支持多孩)
MODE-008 孩子账号停用功能
MODE-009 停用的孩子不可登录
STREAK-001 首页显示连续完成任务天数
STREAK-002 火苗图标+天数组合显示
STREAK-003 连续打卡中断自动重置
GUIDE-001 首次登录角色选择
GUIDE-002 成长规划师信息录入(身份证、性别、照片、证书号)
GUIDE-003 成长规划师查看关联家庭列表
GUIDE-004 成长规划师审核家庭任务
GUIDE-006 分享码绑定家庭
GUIDE-009 成长规划师调整家庭成员任务

P1 级需求(重要)

  • TASK-004 ~ TASK-007
  • TASK-013 ~ TASK-015
  • POINT-003 ~ POINT-004
  • REWARD-003A ~ REWARD-007
  • STREAK-004
  • BADGE-001 ~ BADGE-006
  • REPORT-001 ~ REPORT-004
  • FOCUS-001 ~ FOCUS-008
  • DAN-001 ~ DAN-015
  • THEME-001
  • GUIDE-005(批量审核)、GUIDE-007(发送咨询)、GUIDE-008(回复咨询)、GUIDE-010(删除任务)
  • GAME-001 ~ GAME-009(小游戏模块:舒尔特方格、猜数字、数独)
  • TEMPLATE-001 ~ TEMPLATE-004(任务模板管理)

P2 级需求(一般)

  • TASK-006, TASK-016
  • POINT-005
  • REVIEW-006 ~ REVIEW-007
  • REWARD-008
  • MODE-005, MODE-010
  • THEME-002 ~ THEME-006
  • EXPORT-001 ~ EXPORT-003
  • REPORT-005
  • TEMPLATE-005(启用/禁用模板)

需求变更同步

当需求文档更新时,测试套件会自动检测变更:

  1. 新增需求:自动生成新的测试用例模板
  2. 修改需求:标记需要更新的测试用例
  3. 删除需求:标记对应的测试用例为过时

同步日志保存在 .test-sync.json 文件中。

测试用例编写规范

基类方法

class BaseTestCase {
  // 初始化测试
  async setup()
  
  // 截图
  async screenshot(name)
  
  // 等待元素
  async waitForElement(selector, timeout)
  
  // 点击元素
  async click(uid)
  
  // 填充输入框
  async fill(uid, value)
  
  // 获取页面快照
  async getSnapshot()
  
  // 记录测试结果
  logResult(passed, error)
}

示例测试用例

class TASK_001_TestCase extends BaseTestCase {
  constructor() {
    super('TASK-001', '家长可创建任务,设置任务名称', 'P0');
  }

  async run() {
    try {
      await this.setup();
      
      // 1. 登录家长账号
      const snapshot = await this.getSnapshot();
      const createTaskBtn = snapshot.find(item => item.text.includes('创建任务'));
      
      // 2. 点击创建任务
      await this.click(createTaskBtn.uid);
      await this.screenshot('create_task_page');
      
      // 3. 输入任务名称
      const nameInput = await this.waitForElement('任务名称');
      await this.fill(nameInput.uid, '测试任务');
      
      // 4. 验证任务创建成功
      const result = await this.getSnapshot();
      const taskExists = result.some(item => item.text.includes('测试任务'));
      
      this.logResult(taskExists);
    } catch (error) {
      this.logResult(false, error);
    }
  }
}

Chrome DevTools MCP 集成

本测试套件使用以下 Chrome DevTools MCP 工具:

  • chrome-devtools_new_page - 打开新页面
  • chrome-devtools_navigate_page - 导航到 URL
  • chrome-devtools_take_snapshot - 获取页面快照
  • chrome-devtools_click - 点击元素
  • chrome-devtools_fill - 填充输入框
  • chrome-devtools_take_screenshot - 截图
  • chrome-devtools_wait_for - 等待元素
  • chrome-devtools_upload_file - 上传文件

配置

编辑 test-cases.js 中的 TEST_CONFIG 对象:

const TEST_CONFIG = {
  baseUrl: 'http://localhost:8080',
  miniprogramUrl: 'http://localhost:8080/weapp',
  webAdminUrl: 'http://localhost:8080/admin',
  
  adminAccount: { phone: '13800000001', code: '123456' },
  parentAccount: { phone: '13800000002', code: '123456' },
  childAccount: { phone: '13800000003', code: '123456' },
  
  timeout: 30000,
  screenshotPath: './screenshots'
};

持续集成

将测试套件集成到 CI/CD 流程:

# .gitlab-ci.yml 或 GitHub Actions
test:
  script:
    - cd 系统测试
    - npm install
    - npm run test:p0  # 至少运行 P0 测试
  artifacts:
    paths:
      - 系统测试/test-reports/
    expire_in: 30 days

维护指南

添加新测试用例

  1. test-cases.js 中创建新的测试类
  2. 继承 BaseTestCase
  3. 实现 run() 方法
  4. 在导出列表中添加新类
  5. 在测试套件中注册

更新测试用例

当需求变更时:

  1. 运行 npm run sync 检测变更
  2. 根据提示更新对应的测试用例
  3. 运行测试验证更新

故障排查

常见问题

  1. 无法连接到浏览器

    • 确保 Chrome/Edge 浏览器已启动
    • 检查 MCP 服务是否运行
  2. 元素定位失败

    • 检查页面是否加载完成
    • 使用 waitForElement 增加等待时间
    • 查看截图确认页面状态
  3. 测试超时

    • 增加 TEST_CONFIG.timeout
    • 检查网络连接
    • 查看后端服务日志

许可证

MIT License

更新日志

V1.2.0 (2026-04-12)

  • ✅ 同步 TASK-005、POINT-002、POINT-009、REWARD-001A/002A/002B
  • ✅ DAN 模块调整为“测评记录模块”,同步 DAN-001 ~ DAN-015
  • ✅ 更新需求同步元数据与测试覆盖说明

V1.0.0 (2026-04-09)

  • ✅ 初始版本
  • ✅ 100% P0 需求覆盖
  • ✅ 自动同步功能
  • ✅ HTML/JSON 报告生成