test(ai-studio): add e2e integration checklist

This commit is contained in:
chengma
2026-07-11 14:34:07 +08:00
parent dcaf68fd07
commit fe03c65f07
6 changed files with 288 additions and 7 deletions
+68
View File
@@ -0,0 +1,68 @@
# AI工场端到端验收与发布检查
> T-595 阶段性收口文档。本文只记录 AI工场当前已实现的 cmhub 托管主线,不包含 BYOK、自定义 Provider、自动上传蝦皮或本地图片导入。
## 已实现闭环
当前 ⑥「AI工场」支持:
1. 按账号别名 + 商品 ID 创建/恢复项目。
2. 后台只读打开蝦皮商品详情页,读取原主图 URL 并写入照片资产。
3. 单击原主图下载到本地 `data/images/pool/<slug>/<item_id>/originals/`,并可作为源图。
4. 使用完整提示词和 cmhub 托管生图别名创建 N 个独立 job。
5. submit 后立即保存 `task_key/task_id/call_id/扣点/余额`;重启后继续查询时只 poll/download,不重复 submit。
6. 成功图片进入照片池;失败/过期/停止任务在照片池任务行独立显示。
7. 将照片拖入主图/详情图终选,可插入、重排、移出,同类别去重,跨类别允许复用。
8. 允许主图/详情图未满数量时导出当前终选为 JPEG。
9. 商品目录已存在时只允许覆盖受管命名文件、新建带时间目录或取消。
## 自动化覆盖
自动化不连接真实蝦皮或真实 cmhub,不产生费用。当前覆盖:
- SQLite:项目、资产、job、终选顺序。
- 远程图片:公网 URL、大小/类型/解码校验、原图落盘幂等。
- cmhub 托管:N 张独立 job、submit/poll/download、续查、下载失败恢复、单张失败不影响其它任务。
- GUI:6 Tab 顺序、AI工场控件、照片池、终选拖放等价操作、导出入口、继续查询入口和计费状态。
- 导出:部分导出、JPEG 真转码、透明铺白底、已存在目录三选、受管文件覆盖保护、源文件缺失失败不创建目标。
- 端到端 mock:项目 → 原图 URL → 原图下载 → cmhub mock 生图 → 终选 → 导出。
推荐验证命令:
```powershell
python -m ruff check app tests main.py
py -3.10 -m compileall app main.py
py -3.10 -m unittest discover -s tests
git diff --check
```
## 人工真实只读验收
需要本机存在已登录的测试账号 Chrome、可用 cmhub Key 和允许测试的商品 ID。人工验收时必须遵守:
- 只读拉取原主图,不点击蝦皮更新,不上传图片,不修改标题/封面。
- 不把 API Key、Cookie、账号、真实商品图片或 `data/` 内容提交到仓库。
- 真实 cmhub 小样本建议 1~2 张,确认扣点、余额、失败提示和继续查询即可,不做大批量费用测试。
建议步骤:
1. ④账号管理确认测试账号已登录。
2. ⑥AI工场选择该账号和测试商品 ID,点击「打开项目」。
3. 点击「拉取主图」,确认原主图列表出现,浏览器不进入编辑提交动作。
4. 单击一张原主图,确认照片池出现本地可用源图。
5. 输入短提示词,数量设为 1,点击「开始生成」。
6. 生成成功后把图片拖入主图终选,点击「导出终选」到临时目录。
7. 关闭软件后重开,确认项目、照片池、job 状态、终选顺序仍保留。
8. 若中途停止或下载失败,点击「继续查询任务」,确认不重复 submit。
当前 T-595 自动化已完成;真实只读验收需要运行环境,不在仓库中伪造结果。
## 发布检查
发布前确认:
- `release/` 或 `dist/` 不包含 `data/`、真实 DB、真实图片、Chrome user-data-dir、日志或 cmhub Key。
- ⑤设置页和 ⑥AI工场没有 OpenAI Key、Provider URL、direct backend 或“自定义模型”入口。
- ⑥AI工场没有「导入本地图片」按钮或隐藏入口。
- 运行日志、状态栏、弹窗不展示 API Key、Authorization、Cookie、完整请求体或 cmhub 内部接口路径。
- 导出只写用户选择目录下的图片文件,不导出 prompt、task key、SQLite 数据或日志。