library-picturebook-activity/docs/project/09-test-results.md
En 98e9ad1d28 feat(前端): 测试环境登录框支持自动填充测试账号
通过 VITE_AUTO_FILL_TEST 环境变量控制,在 .env.test 中启用,
使测试环境构建后登录框也能自动填充测试账号,方便测试人员使用。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 17:03:22 +08:00

4.4 KiB
Raw Blame History

测试执行结果报告

执行时间2026-03-24


一、测试发现的问题及修复

共发现 4 个 Bug全部已修复

编号 严重度 问题描述 根因 修复方式
BUG-01 致命 创建活动时 visibility/targetCities/ageMin/ageMax 字段未写入数据库,创建后全是默认值 designated contests.service.ts 的 create 方法中遗漏了新增字段的赋值 在 create data 中添加 visibility, targetCities, ageMin, ageMax 字段赋值
BUG-02 致命 创建 targeted 类型活动时 DTO 校验报错 "visibility must be one of the following values: public, designated, internal" Visibility 枚举中缺少 TARGETED = 'targeted' create-contest.dto.ts 的 Visibility 枚举中添加 TARGETED
BUG-03 公众端登录用户访问活动列表时targeted 活动不根据用户画像过滤(返回 0 条) @Public() 装饰器让 JwtAuthGuard 完全跳过 JWT 解析,导致 req.user 始终为空 重写 JwtAuthGuard@Public() 接口有 Bearer token 时仍解析 JWT但不强制要求
BUG-04 报名 targeted 活动返回 404 "活动不存在或未公开" registerActivity 方法中活动查询条件硬编码 visibility: 'public',未包含 targeted 改为 visibility: { in: ['public', 'targeted'] }

同步修复update 接口

问题 修复
编辑活动时 visibility/targetCities/ageMin/ageMax 不会更新 在 update 方法中添加这 4 个字段的处理逻辑

二、数据库测试结果

编号范围 测试项数 通过 失败 说明
DB-01 ~ DB-12 12 12 0 表结构、约束、默认值全部正确
DB-13 ~ DB-18 6 6 0 租户、角色、权限数据完整
DB-19 ~ DB-23 5 5 0 菜单分配正确
合计 23 23 0

三、后端 API 测试结果

编号范围 模块 测试项数 通过 修复后通过
API-01 ~ API-10 公众认证 8(已测) 8 -
API-11 ~ API-20 子女管理 6(已测) 6 -
API-21 ~ API-30 活动浏览 5(已测) 3 5修复 BUG-03 后)
API-31 ~ API-35 定向推送 3(已测) 0 3修复 BUG-03 后)
API-36 ~ API-48 活动报名 7(已测) 5 7修复 BUG-04 后)
API-57 ~ API-60 我的数据 2(已测) 2 -
API-61 ~ API-64 公众用户管理 2(已测) 2 -
API-65 ~ API-69 管理端认证 4(已测) 4 -
已测合计 37 30 37

待执行的 API 测试

以下测试项因需要特定数据状态(报名通过后才能测提交),留到全链路测试中覆盖:

  • API-49~56: 作品提交(需要报名通过状态)
  • API-04, API-06, API-07: 注册边界(密码太短、手机号、手机号重复)
  • API-15~20: 子女详情/更新/删除完整测试

四、已修复文件清单

文件 修改内容
backend/src/contests/contests/dto/create-contest.dto.ts Visibility 枚举添加 TARGETED
backend/src/contests/contests/contests.service.ts create 方法添加 visibility/targetCities/ageMin/ageMaxupdate 方法添加同样 4 个字段
backend/src/auth/guards/jwt-auth.guard.ts @Public() 接口有 token 时尝试解析 JWT不强制
backend/src/public/public.service.ts registerActivity 活动查询条件支持 targeted

五、待执行测试

前端测试FE-01 ~ FE-92

需要在浏览器中手动执行,建议按以下顺序:

  1. 公众端登录/注册FE-01~09
  2. 活动大厅FE-10~15
  3. 活动详情按钮状态FE-16~35
  4. 个人中心 + 子女管理FE-36~48
  5. 管理端登录FE-57~61
  6. 超管端FE-62~80
  7. 广东省图端FE-81~86
  8. 评委端FE-87~92
  9. 响应式FE-53~56

全链路测试4.1 ~ 4.4

需要按照测试方案中的步骤跨端执行完整业务流程。


六、测试环境

项目
后端 http://localhost:3234
前端 http://localhost:3000
数据库 mysql://root@localhost:3306/lesingle-creation-test
测试活动 ID=1(公开), ID=2(仅内部), ID=3(定向广州6-12岁)
测试用户 testuser01(广州,有子女), beijing_user(北京), demo(默认)