|
|
5 zile în urmă | |
|---|---|---|
| .. | ||
| .api-artifacts-run | 1 săptămână în urmă | |
| .dom-artifacts-run | 1 săptămână în urmă | |
| data | 3 luni în urmă | |
| defects | 1 săptămână în urmă | |
| e2e | 5 zile în urmă | |
| integration | 2 luni în urmă | |
| scripts | 1 săptămână în urmă | |
| test-cases | 1 săptămână în urmă | |
| unit | 3 luni în urmă | |
| user-scenarios | 6 zile în urmă | |
| AGENTS.md | 7 luni în urmă | |
| BLACKBOX-TEST-PLAN.md | 2 luni în urmă | |
| DAN-ASSESSMENT-VENDOR-REQUIREMENTS-VALIDATION.md | 3 luni în urmă | |
| E2E-RESULTS.md | 3 luni în urmă | |
| E2E-TEST-GUIDE.md | 3 luni în urmă | |
| E2E-TEST-REPORT.md | 3 luni în urmă | |
| E2E-TEST-SCENARIOS.md | 3 luni în urmă | |
| E2E-TEST-STATUS.md | 3 luni în urmă | |
| FLOW-L1-TEST-REPORT.md | 3 luni în urmă | |
| ISSUE-TRACKING.md | 3 luni în urmă | |
| README.md | 1 săptămână în urmă | |
| SELFCHECK-RESULT-20260827.md | 2 luni în urmă | |
| TEST-RESULTS-v10.md | 3 luni în urmă | |
| TEST-RESULTS-v12.md | 3 luni în urmă | |
| TEST-RESULTS-v13.md | 3 luni în urmă | |
| TEST-RESULTS-v3.md | 3 luni în urmă | |
| e2e_log.txt | 3 luni în urmă | |
| final_test.js | 3 luni în urmă | |
| jest.config.js | 3 luni în urmă | |
| package-lock.json | 2 săptămâni în urmă | |
| package.json | 3 luni în urmă | |
| playwright.config.api.js | 1 săptămână în urmă | |
| playwright.config.api.local.js | 1 săptămână în urmă | |
| playwright.config.func.js | 2 săptămâni în urmă | |
| playwright.config.js | 3 luni în urmă | |
| playwright.config.noreset.js | 1 săptămână în urmă | |
| playwright.config.smoke.js | 1 săptămână în urmă | |
| playwright.remote.config.js | 3 luni în urmă | |
| run-api-tests-v2.js | 3 luni în urmă | |
| run-api-tests-v3-file.js | 3 luni în urmă | |
| run-api-tests-v3.js | 3 luni în urmă | |
| run-api-tests.js | 3 luni în urmă | |
| run_all_tests.ps1 | 3 luni în urmă | |
| run_v12_tests.ps1 | 3 luni în urmă | |
| run_v3_http.js | 3 luni în urmă | |
| run_v3_minimal.js | 3 luni în urmă | |
| selfcheck-plan-chain.ps1 | 2 luni în urmă | |
| simple_write.js | 3 luni în urmă | |
| test_cfc_api.js | 3 luni în urmă | |
| v11_result.txt | 3 luni în urmă | |
| v11_test.js | 3 luni în urmă | |
| v8_final.txt | 3 luni în urmă | |
| v9_result.txt | 3 luni în urmă | |
| v9_test.js | 3 luni în urmă | |
| 家庭天盘测试计划.md | 4 luni în urmă | |
本目录存放与「软件测试」相关的全部资产。本批新增的 用户使用场景 + 结构化测试用例 基于 项目需求(
AGENTS.md)、设计(docs/superpowers/api/API_REFERENCE.md)与当前实现(后端 Controller、 小程序前端页面、LangGraph AI 服务)编写,按用户角色组织。
| 路径 | 内容 | 用途 |
|---|---|---|
BLACKBOX-TEST-PLAN.md |
黑盒测试方案(6 角色功能矩阵 + 用例明细) | 既有:黑盒测试总纲 |
e2e/ |
Playwright 可执行规格(*.spec.js,按 roles/{admin,child,parent,teacher} 组织) |
既有:自动化端到端用例 |
data/ |
种子数据与初始化 SQL | 测试数据 |
user-scenarios/ |
按角色的用户使用场景(叙事式) | 本批新增:从真实用户视角描述「怎么用」 |
test-cases/ |
按角色的结构化测试用例 + 跨角色端到端用例 | 本批新增:可手动/自动执行的测试用例 |
test-cases/deep-dive-*.md |
模块级代码深挖(测评预约 / 方案激活拆任务幂等) | 本批新增:基于源码的边界/缺陷分析 |
defects/ |
缺陷单(代码级 + live 验证,CFC-AP-001~008 / CFC-EN-001 等) | 本批新增:含五要素 + 修复建议;DEFECT-TEST-RECORD.md 为统一缺陷测试记录(汇总 12 项 + 测试执行记录) |
e2e/assessment-appointment-functional.spec.js + playwright.config.func.js |
自包含功能/权限规格(去 globalSetup) | 本批新增:测试自写种子数据,规避外部种子库依赖 |
需求/设计 (AGENTS.md, API_REFERENCE.md)
│
▼
user-scenarios/ ── 用户故事 & 使用场景("作为 X,我想 Y,以便 Z")
│ (一个场景可派生多个用例)
▼
test-cases/ ── 结构化用例(前置/步骤/预期/优先级/类型/关联场景)
│ (与可执行规格对应)
▼
e2e/*.spec.js ── 机器可执行的 Playwright 实现
user-scenarios/ 回答「产品为谁、解决什么、典型的一天怎么用」;test-cases/ 回答「怎么验证它真的能工作、边界在哪、失败长什么样」;e2e/ 代码一一对应,手工 QA 与自动化共用同一套口径。依据 AGENTS.md 与黑盒方案,覆盖 6 类角色:
| 角色 | 关键标识 | 能力边界要点 |
|---|---|---|
| 游客 Guest | 未登录 | 仅能浏览引流页/商城/文章;访问业务页被拦截 |
| 家长 Parent | family_members.userId 非空 + openid;家庭管理员 |
可管理家庭/成员、下发任务、申请测评、上传报告、生成方案;可切换孩子视角 |
| 孩子 Child | memberType=login(能登录)/ local(不能登录,由家长代管) |
执行任务/小游戏/打卡/创建心愿;直接登录的孩子端不能切回家长端 |
| 成长规划师 Teacher | role=teacher |
绑定家庭、代传报告、审核/激活方案、录入测评、可切回家长视角 |
| 平台运营 Admin | 管理端账号 | 全量数据/审核/配置/迁移;不碰业务闭环 |
| 商品服务商 Vendor | 入驻并通过审核 | 发布商品、处理订单(发货/核销) |
双角色铁律(来自
AGENTS.md):家长可切换查看孩子视角;直接登录的孩子端不能切换到家长端; 规划师可切回家长视角。所有涉及切换的用例必须覆盖该边界。
@PostMapping;响应 Result<T>{code,message,data};JWT Authorization: Bearer {token}。@RequestAttribute("role") 手动判断。cfc-langgraph:9000,生产 ai.etotem.com.cn),Java 侧经 AiGateway(熔断+超时+Fallback);禁止绕过。wechat.test-mode: true 跳过微信 API,使用模拟数据。410 Gone,用例不得依赖废弃路径(如 /api/family/user/switch-mode 应改用 /api/family/member/switch)。user-scenarios/<role>.md 追加「用户故事 + 场景」,并同步在 test-cases/<role>.md 增加用例。test-cases/README.md 字段规范,标注关联场景与关联需求。TC-xxx 与 e2e/roles/<role>/*.spec.js 同名场景对应。既有 playwright.config.js 的 globalSetup(db.js)会连接 192.168.16.251 重置/种子化测试库;若当前环境对该库不可达(Access denied),整套 e2e 无法启动。为此新增自包含规格,测试自己通过 API 写入种子数据(如 direct-register 自注册),不依赖外部种子库:
cd d:/cfc/tests
# 依赖:已 npm install 且已 npx playwright install chromium
npx playwright test tests/e2e/assessment-appointment-functional.spec.js \
-c playwright.config.func.js --project=api
# 可选:指向本地后端
PW_BASE_URL=http://127.0.0.1:9082 npx playwright test \
tests/e2e/assessment-appointment-functional.spec.js -c playwright.config.func.js
QUOTA_ID / APPOINTMENT_ID 环境变量,否则按设计跳过。code=200,业务错误 code=500(见 common/Result.java)。defects/DEFECTS-assessment-appointment.md(F1–F8)与 test-cases/deep-dive-*.md。远程环境 http://cfc.iwintrue.com 只部署后端 API(Spring Boot),未托管前端 SPA——访问任意路径(含 /)均返回白标 404 页。因此原 DOM 型 e2e(page.goto('/#/pages/...') + 选择器等待)在远程必然全部超时失败,与业务实现无关。为此建立 API 级 e2e:断言 /api/* 的响应码与数据结构,不依赖前端。
cd d:/cfc/tests
npx playwright test -c playwright.config.api.js --project=desktop
| 资产 | 说明 |
|---|---|
playwright.config.api.js |
独立配置:无 globalSetup、独立 outputDir(.api-artifacts)、testMatch 仅匹配 e2e/api/**、用例级超时 180s |
e2e/helpers/api.js |
共享助手:registerRole(/api/auth/direct-register 自注册,不依赖种子库/前端登录)、apiPost(统一 POST 封装,60s 超时 + 非 JSON 响应回退 HTTP 码) |
e2e/api/api-smoke.spec.js |
链路自检:自注册 → 核心接口 → 越权 403 |
e2e/api/family-member-api.spec.js |
家庭成员管理(13 例,镜像 DOM 版 10 场景 + 边界/特征化) |
e2e/api/energy-api.spec.js |
能量系统收支(10 例,含五维维度断言) |
e2e/api/contact-api.spec.js |
联系人管理(6 例) |
e2e/api/article-api.spec.js |
文章管理(7 例) |
实测基线:37 passed / 3 skipped(fixme,阻塞于真实缺陷)/ 47s,同批场景在 DOM 型 e2e 上为 10 通过 / 32 失败。
约定与注意事项:
apiPost 返回结构化结果,断言只取 code / message / data)。^1[3-9]\d{9}$,否则返回「手机号格式不正确」。POST /api/family/member/add 冷启动首调约 16s(后续 1.5s),故 API 超时放宽至 60s、用例超时 180s(见 CFC-ENV-002)。test.fixme() 标记(保留「期望正确行为」的断言),并配套一条特征化用例锁定当前缺陷行为——缺陷修复后特征化用例会失败,提示移除 fixme。本次实测发现的缺陷:见 defects/DEFECTS-api-remote-findings.md;全部 12 项缺陷的统一汇总与测试执行记录见 defects/DEFECT-TEST-RECORD.md。
| 编号 | 缺陷 | 严重度 | 优先级 |
|---|---|---|---|
| CFC-EN-001 | /api/energy/grant 返回 500「服务器内部错误」(后端未捕获异常) | 高 | P0 |
| CFC-FM-001 | /api/family/member/update 更新 nickname 返回成功但未生效(gender/birthday 正常) | 中 | P1 |
| CFC-ENV-001 | 远程未托管前端 SPA,DOM 型 e2e 全面不可用 | 中 | P1 |
| CFC-ENV-002 | member/add 冷启动首调约 16s | 低 | P2 |