From 56fc5e08fc19022eeb8b3b076052673ded827ee4 Mon Sep 17 00:00:00 2001 From: maogeigei Date: Tue, 1 Sep 2026 12:44:13 +0800 Subject: [PATCH] =?UTF-8?q?test(=E5=B7=A5=E4=BD=9C=E5=8F=B0):=20=E4=BF=8A?= =?UTF-8?q?=E5=B8=8C=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B=E9=87=8D=E8=B7=91?= =?UTF-8?q?=E2=80=94=E2=80=94TC-09/10+=E4=B8=89=E5=85=A5=E5=8F=A3=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E8=BE=93=E5=87=BA+=E5=85=A5=E5=BA=93=E5=85=A8?= =?UTF-8?q?=E9=93=BE=E8=B7=AF=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - cdp-test-junxi.mjs: 弹窗标题断言 AI写脚本→AI创作(09-01 改名同步);文案分支打印修正(首次/有设定正则区分) - 实测验证:TC-09 界面链路 PASS(AI选题3方向);AI创作三入口 prompt 注入 PASS(账号设定前置/选题后置/无泄漏);TC-10 自动任务链路 PASS(automations→调度器→会话→脚本02落盘);入库 PASS(video_source 6条+persona幂等+videos去重) - 库表澄清:source/analysis 无 account_id 列靠 video_id 关联,俊希行 video_id=null 属设计 --- .workbuddy/memory/2026-09-01.md | 8 ++++++++ .../V1.0/mcn-work-shop/cdp-test-junxi.mjs | 15 +++++++++------ .../V1.0/mcn-work-shop/mcn-plugin.db | Bin 4247552 -> 4247552 bytes 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/.workbuddy/memory/2026-09-01.md b/.workbuddy/memory/2026-09-01.md index 7f4c77d..84c59d3 100644 --- a/.workbuddy/memory/2026-09-01.md +++ b/.workbuddy/memory/2026-09-01.md @@ -182,3 +182,11 @@ - **规则定稿(一句话)**:库中已有 ≠ 可直接使用——实时数据(账号信息/视频列表)必须重新获取(红线禁回填);分析产物(人设卡/视频解析/分析报告)复用优先 + 询问是否更新,只对增量补获取;「已有」须校验内容质量(存在≠有效,假数据视为无,实测 1629「连通性测试」8字符假 persona) - **落盘 3 处**:①新建 `subskill/mcn-dou-analysis/references/铁律避坑规则/已有数据处理规则.md`(统一决策表:分场景决策表+三判断依据+收敛散落规则出处+接口速查);②SKILL.md 红线行后加「已有数据处理(统一决策)」引用行;③工作台 `docs/AI会话任务输入输出对照.md` 关键细节加「已有数据处理」条目 - 已 commit(2 小时节奏内不 push) + +## 09-01 12:4x 俊希测试用例重跑(用户:重新跑俊希的测试用例,看所有功能是否正常,特别是自动任务 AI会话任务/输入输出/入库) +- **TC-09 界面链路 PASS**:cdp-test-junxi.mjs 断言同步(弹窗标题 AI写脚本→AI创作,09-01 改名后脚本脱节已修);定位俊希[data-create]→弹窗(title=AI创作,desc=基于当前账号设定=有设定场景)→AI选题 3 方向 PASS;文案分支打印修正(firstTime 正则区分首次/有设定,原打印误报「首次场景」) +- **AI创作三入口输入输出 PASS**(cdp-verify-aicreate.mjs):#/rewrites 已解析无选题段(旧梦留声机分镜头表)→【视频解析内容】+提炼指令;未解析(白昼小熊)→账号信息前置 idx26<解析要求 idx75;账号详情已解析有选题段→【视频选题】+# 选题;均无 noPersonaNote/undefined 泄漏 +- **TC-10 自动任务链路 PASS**:--confirm 真实触发 → automations 写入 automation-1788237441433(once+ACTIVE,scheduled_at=12:37:26,next_run_at=+5s 显式写,cwds=D:\AgentSkill\mcn-workshop)→ 调度器拾取(automation_runs IN_PROGRESS→ACCEPTED,runtime_state running 1→0 无 error)→ 会话 1d1e19fe 创建(working→completed)→ 脚本02/09_脚本正文.md 落盘(月底百元生存挑战!450s/6场,开场钩子 10s 内、5字段画面标注、人物(表情/动作):台词 格式) +- **入库链路 PASS**:POST /api/import/account {account:俊希,root:桌面MCNSkill项目} → {ok:true, video_source:6, persona:0, videos_upserted:0, skipped:[persona(重复)]};6 条 source 全部 content+analysis_json 双字段(analysis 860~33916字符);persona 幂等仍 1 行 7010 字符;video_analysis=0 属正常(视频分析/ 目录无「拆解分析.md」,该字段只收拆解产物) +- **库表结构澄清**:account_video_source/analysis 无 account_id 列,靠 video_id→account_videos.id 关联;俊希 6 条 source video_id=null(代码设计 insSource.run(null,...)),JOIN 查不到属正常;id=47(02:02)与 id=80(12:38)同 detailId 33021 但 aweme_id 不同=历史遗留映射差异,非本次问题 +- 已 commit(2 小时节奏内不 push) diff --git a/project/短视频脚本创作/V1.0/mcn-work-shop/cdp-test-junxi.mjs b/project/短视频脚本创作/V1.0/mcn-work-shop/cdp-test-junxi.mjs index 53d824a..97f97a3 100644 --- a/project/短视频脚本创作/V1.0/mcn-work-shop/cdp-test-junxi.mjs +++ b/project/短视频脚本创作/V1.0/mcn-work-shop/cdp-test-junxi.mjs @@ -1,5 +1,6 @@ -// 模拟点击测试:俊希「AI写脚本」界面链路(#/accounts → AI写脚本弹窗 → AI 选题生成) +// 模拟点击测试:俊希「AI创作」界面链路(#/accounts → AI创作弹窗 → AI 选题生成) // 覆盖测试用例 TC-09 的界面交互环节(真实模拟用户点击,非仅文字步骤) +// 2026-09-01 更新:按钮/弹窗标题已由「AI写脚本」统一改名为「AI创作」(cdp-test 断言同步) // // 前置: // 1. 工作台服务运行中(node server.js,默认端口 8900;可传参指定) @@ -57,11 +58,11 @@ const findBtn = await ev2(`(() => { })()`); console.log('【Step1 账号列表定位俊希】', JSON.stringify(findBtn)); if (!findBtn.found) { - console.log('FAIL: 账号列表未找到俊希「AI写脚本」按钮(若账号未关注,请先到周榜/账号列表关注俊希)'); + console.log('FAIL: 账号列表未找到俊希「AI创作」按钮(若账号未关注,请先到周榜/账号列表关注俊希)'); await send('Target.closeTarget', { targetId }); ws.close(); ws2.close(); process.exit(1); } -// 4) 模拟点击「AI写脚本」→ 轮询等待弹窗出现(confirmAiScript 先 await persona 接口再建弹窗,需等待) +// 4) 模拟点击「AI创作」→ 轮询等待弹窗出现(confirmAiScript 先 await persona 接口再建弹窗,需等待) await ev2(`(() => { const b = [...document.querySelectorAll('[data-create]')].find((x) => x.dataset.create === '俊希'); b.click(); return true; })()`); const modal = await ev2(`(async () => { for (let i = 0; i < 24; i++) { @@ -74,10 +75,12 @@ const modal = await ev2(`(async () => { } return { open: false }; })()`); -console.log('【Step2 AI写脚本弹窗】', JSON.stringify(modal, null, 1)); -const descOk = modal.open && modal.title.includes('AI写脚本') && modal.hasTopicInput && modal.hasGenBtn; +console.log('【Step2 AI创作弹窗】', JSON.stringify(modal, null, 1)); +const descOk = modal.open && modal.title.includes('AI创作') && modal.hasTopicInput && modal.hasGenBtn; const branch = modal.open && (modal.desc || '').includes('账号设定'); -console.log(branch ? ' → 文案分支:先进行账号设定分析(首次场景,符合预期)' : ' → 文案分支:基于当前账号设定(有设定场景)'); +// 09-01 修正:有 persona 时 desc=「基于当前账号设定…」;无 persona 时才提示先分析账号设定 +const firstTime = modal.open && /先.*账号设定|暂无账号设定|尚未.*设定/.test(modal.desc || ''); +console.log(firstTime ? ' → 文案分支:先进行账号设定分析(首次场景)' : branch ? ' → 文案分支:基于当前账号设定(有设定场景)' : ' → 文案分支:未识别(需人工确认)'); // 5) 模拟点击「AI」选题按钮 → 轮询选题输入框(Dify 约 50s) await ev2(`(() => { const g = document.querySelector('#aiTopicGen'); g.click(); return true; })()`); diff --git a/project/短视频脚本创作/V1.0/mcn-work-shop/mcn-plugin.db b/project/短视频脚本创作/V1.0/mcn-work-shop/mcn-plugin.db index db1fa46b06f3a3b241f781f25211e109d933db6f..522f7807dfd790e68c22a9f7bb7d868259da6372 100644 GIT binary patch delta 2555 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