# 核心业务测试:书籍生成完整链路 > 适用于每次修改核心业务代码后、每次发布上线前的回归校验。 > 测试目标:保证「**大纲 → 内容 → 音频**」这条核心业务链路从前端页面到后端 API 都可工作。 ## 测试范围 ``` CORE-1 预估字数与时长 (GET /api/book-generator/langgraph/estimate) CORE-2 创建书籍(停在 draft,不自动生成) (POST /api/book-generator/langgraph/books) CORE-3 生成大纲,等待 outline_completed (POST .../outline + 轮询 /progress) CORE-4 生成全部章节内容,等待 content_completed (POST .../chapters + 轮询 /progress) CORE-5 生成全部章节音频,等待 allCompleted (POST .../audio + 轮询 /audio-status) CORE-6 书籍最终态为 audio_completed / video_completed CORE-7 书籍列表页可访问,能看到刚生成的书 (UI: /#/pages/book-generator/index) CORE-8 创建页可访问、表单可填写 (UI: /#/pages/book-generator/create) CORE-9 详情页正确显示状态 (UI: /#/pages/book-generator/detail) CORE-10 章节详情页可访问 (UI: /#/pages/book-generator/chapter-detail) ``` ## 设计原则 1. **状态变更走 API** — 避开 `uni.showModal` 等 uni-app H5 模态框,测试稳定可重跑。 2. **可见性校验走 UI** — 任何前端展示层(列表 / 详情 / 状态文本)改动能被立即发现。 3. **失败立即抛错** — 不静默跳过,任一阶段失败 = 整个 describe 标红。 ## 运行环境 | 组件 | 地址 | 必须先启动 | | ---------- | --------------------------------- | ---------- | | 后端 | `http://127.0.0.1:3000` | ✅ | | 前端 H5 | `http://127.0.0.1:5173` | ✅ | | 数据库 | MySQL(Prisma) | ✅ | | LLM 服务 | 后端 `.env` 中配置 | ✅ | | TTS 服务 | 后端 `.env` 中配置 | ✅ | ## 运行方式 ```bash # 方式一:通过根目录脚本(推荐) ./scripts/run-core-business-test.sh # 方式二:直接调 playwright npx playwright test \ --project=core-business \ --config=tests/playwright.config.ts # 方式三:只跑核心业务用例 cd tests/e2e/core-business && \ npx playwright test book-core-flow.spec.ts \ --config=../../playwright.config.ts ``` ## 时长参考 | 阶段 | 参考时长 | | ------------ | ---------- | | CORE-1~2 | < 5s | | CORE-3 大纲 | 30 ~ 60s | | CORE-4 内容 | 60 ~ 180s | | CORE-5 音频 | 60 ~ 240s | | CORE-6~10 UI | < 30s | | **合计** | **3 ~ 8 分钟** | > 单测超时设 10 分钟,避免环境抖动。LLM / TTS 真实调用,时长不可压缩。 ## 失败处理 - 看 `tests/test-results/report` HTML 报告 - 看 `tests/test-results/results.json` 结构化结果 - 看后端日志(特别是 `prisma` / `langgraph` / TTS provider 报错) ## 修改触发矩阵 | 改动文件 | 必须跑? | | --------------------------------------------------- | -------- | | `server/src/modules/book-generator/**` | ✅ | | `my-uniapp-vue3/src/pages/book-generator/**` | ✅ | | `my-uniapp-vue3/src/utils/book-generator-api.ts` | ✅ | | `server/prisma/schema.prisma`(Book / Chapter 表) | ✅ | | 部署 / 发布脚本 | ✅ | | 其他无关文件 | 可选 |