11 KiB
11 KiB
CDP Testing Handoff
更新日期:2026-07-27
权威文件:
- 测试计划:
/home/rogee/Projects/gochat/docs/qa/2026-07-15-cdp-user-function-test-plan.md - 测试报告:
/home/rogee/Projects/gochat/docs/qa/reports/2026-07-15-cdp-user-function-report.md
当前环境基线:
- backend:
http://127.0.0.1:3000 - frontend:
http://127.0.0.1:3036 - fake:
http://127.0.0.1:9100 - 当前可用管理员账号:
admin@gochat.local / changeme - 当前常用 Playwright 会话名:
gochat_qa
1. 已经做完的测试任务和测试进度
当前这轮 click-only CDP 验收,最新报告已追加到:
11.840
本轮已完成的主要测试批次如下。
1.1 Captain 子链路:本批次已完成
报告范围:
11.785-11.799
已覆盖内容:
- Captain 收件箱连接
- 工具页进入、创建弹窗、空校验、
Test connection - 自定义工具创建成功
- Captain 设置页进入
- 基础设置更新
- 系统设置更新
- 删除确认弹窗取消链路
- Guardrails 页面进入与保存
- Response guidelines 页面进入与保存
本批次 Captain 结论:
- 页面主链路可达;
- 已发现若干真实问题,主要是:
- 首次列表请求
301 - 中英混杂
- 删除确认文案对象错误
- 首次列表请求
1.2 Reports:本批次已完成
报告范围:
11.800-11.827
已覆盖内容:
- Overview
- Conversations
- Agents overview / detail
- Labels overview / detail
- Inboxes overview / detail
- Teams overview / detail
- CSAT
- SLA
- Bot report
本批次 Reports 结论:
- 9 个可见报表页都已通过真实点击进入并留证据;
- 已确认的主要缺陷:
标签明细多项接口500:见11.812团队明细多项接口500:见11.823- 多个报告页仍有英文残留:
11.800、11.804、11.813、11.816、11.821、11.824 机器人报告可正常加载并切换日期范围:11.826、11.827
1.3 Activities / Campaigns:进行中
报告范围:
11.828-11.840
已覆盖内容:
活动 -> 在线聊天活动 -> 短信活动 -> WhatsApp- 三个页面的
创建活动入口 - WhatsApp 创建表单的收件箱/模板空结果
- 在线聊天创建表单的:
- 收件箱选择
- 发送者下拉
仅在工作时间触发开关取消返回列表
本批次 Activities 当前结论:
- 三个活动页都能通过真实点击进入;
- 共有问题:
- 页面同时渲染“示例活动卡片 + 空态”
- WhatsApp 特有问题:
- 页头和空态仍有英文
- 收件箱、模板下拉都只返回
未找到结果。
- 在线聊天创建表单目前已经证明:
Test Website Inbox1可真实选中- 选中后会触发
GET /api/v1/accounts/1/inbox_members/1 -> 200 - 发送者下拉可展开,候选项有
Bot / Super Admin / User01
1.4 进度总览
| 模块 | 当前状态 | 说明 |
|---|---|---|
| Captain | 本批次完成 | 见 11.785 - 11.799 |
| Reports | 本批次完成 | 见 11.800 - 11.827 |
| Activities / Campaigns | 进行中 | 见 11.828 - 11.840 |
| Help Center | 未在本批次续测 | 旧报告有覆盖,当前可继续回到计划顺序 |
| Widget / public 入口 | 未在本批次续测 | 仍按高风险项处理 |
| 权限用户回归 | 未在本批次续测 | 仍属于后续待完成项 |
fake:ai 相关链路 |
未完成 | 仍缺本地假服务支撑 |
2. 未完成的测试任务
2.1 Activities / Campaigns 剩余任务
优先继续下面这些。
-
在线聊天 -> 创建活动- 验证最小必填是否能解锁
创建 - 验证真实提交成功/失败链路
- 验证创建后列表是否新增、状态是否正确
- 验证最小必填是否能解锁
-
短信 -> 创建活动- 继续测:
- 空校验
- 最小必填解锁
- 提交成功/失败
取消
- 继续测:
-
WhatsApp -> 创建活动- 目前被表单数据缺口卡住:
- inbox 下拉无结果
- template 下拉无结果
- 若后续补齐数据或修复页面,需要继续测:
- 选择收件箱
- 选择模板
- 提交成功/失败
- 目前被表单数据缺口卡住:
2.2 全量计划剩余任务
按计划文件第 9 节执行顺序,当前还没收尾的主要块:
- Help Center / Widget / public 入口
- Captain / Copilot 的真实 AI 效果链路
- 需要
fake:ai
- 需要
- 权限用户回归
- agent
- custom role
2.3 当前已知高风险 / 预期阻断
这些不是“数据空态”,而是已经应按产品缺陷记录的问题:
- Help Center 后台三页空白主区
- super admin 入口失效
- widget / public 稳定点击入口缺失
标签明细报表多接口500团队明细报表多接口500- Activities 页“示例卡片 + 空态并存”
fake:ai尚未落地,Captain / Copilot 成功链路不能算完成
2.4 还需要补充的数据 / 测试支撑
下面这些没补齐时,很多页面只能做 render-only 或“入口可达”级别验证,不能算完整功能验收。
| 优先级 | 数据或支撑 | 当前作用 |
|---|---|---|
| P0 | 2 个可登录 agent | 分配、协作、在线状态、权限回归 |
| P0 | fake_01 inbox 持续可收发 |
会话主链路、实时消息、fake 回流 |
| P0 | 1 个 website inbox(已带 website_token) |
widget、campaign、public 入口 |
| P0 | 至少 6 个 conversations,且每个 3 条 messages | 列表、详情、筛选、报表 |
| P1 | labels 5 个、teams 2 个 | 标签/团队筛选、报表、自动化 |
| P1 | contacts 8+、companies 3+ | CRM 列表、搜索、关联、详情 |
| P1 | canned responses 3 条、macros 3 条、automation rules 3 条 | 设置页 CRUD、回复提效、规则链路 |
| P1 | custom attributes(contact / conversation / company 各 2 个) | 详情表单、筛选器、自动化条件 |
| P1 | Copilot fake provider | Copilot / Captain 页面联调 |
| P2 | Help Center portal/category/article 多条样本 | help center 后台/portal/public 完整验收 |
| P2 | campaigns 样本:live chat / sms / whatsapp 各至少 1 条 | 活动列表、编辑、启停、触发条件 |
| P2 | CSAT 5 条、SLA 2 条、notifications 5 条、audit logs 5 条 | 报表、通知、审计页 |
| P0 | fake:ai |
Captain / Copilot 的成功 / 失败 / 超时 / 429 全链路断言 |
3. 如何进行功能测试
3.1 环境初始化
当前默认启动方式:
pnpm dev:backend
pnpm dev:frontend
GOCHAT_WEBHOOK_URL=http://127.0.0.1:3000/webhooks/fake/fake_01 FAKE_AUTO_REPLY=true pnpm fake:start
启动后至少确认:
lsof -iTCP:3000 -sTCP:LISTEN -n -P
lsof -iTCP:3036 -sTCP:LISTEN -n -P
lsof -iTCP:9100 -sTCP:LISTEN -n -P
通过标准:
3000backend 在监听3036frontend 在监听9100fake 在监听
3.2 每回合测试前固定动作
每次继续浏览器测试前都做下面几件事:
- 检查
npx
command -v npx
- 重读技能文件
/home/rogee/.codex/skills/playwright/SKILL.md/home/rogee/.agents/skills/dogfood/SKILL.md/home/rogee/.agents/skills/dogfood/references/issue-taxonomy.md
- 确认 Playwright 浏览器会话是否还活着
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export PWCLI="$CODEX_HOME/skills/playwright/scripts/playwright_cli.sh"
"$PWCLI" list
- 确认基础健康状态
curl -fsS http://127.0.0.1:3000/health
curl -fsS http://127.0.0.1:9100/health
3.3 测试约束限制
必须遵守的约束:
- 所有 dashboard 内部页面一律通过真实 UI 点击进入。
- 不允许直接打开:
/app/accounts/:id/...深层内部 URL
- 允许直接打开的例外只有:
/app/login- widget/public 根入口
- 必要的 fake / fake:ai 观察接口
- 页面能否“通过”必须以:
- 前端真实请求成功
- UI 真实可用 为准,不是只看路由存在。
- 证据必须持续追加到同一份报告,不新开分散文档:
/home/rogee/Projects/gochat/docs/qa/reports/2026-07-15-cdp-user-function-report.md
3.4 浏览器上下文丢失时的恢复方式
如果页面脏了、会话句柄失效、或者 tab 已不可信,恢复方法是:
- 先确认
3000 / 3036 / 9100都还活着。 - 不直接跳内部深链。
- 只允许重新打开:
/app/login
- 用已知管理员账号重新登录:
admin@gochat.local / changeme
- 登录后再通过真实点击链路回到目标页面。
当前这条恢复路径已经被多次证明可用。
3.4.1 环境脏了时允许直接重置
这轮测试不要求“硬扛脏环境”。如果出现下面任一情况,应该先重置再继续:
- dashboard 持续出现
正在重连... /cable持续断开或 401/403- 同一页面连续刷出大量
429 - fake 平台残留旧消息,导致新链路证据混淆
- 浏览器 tab 已明显失真,无法判断是真 bug 还是脏状态
推荐重置顺序:
- 先重置 fake,不动前后端:
curl -fsS -X POST http://127.0.0.1:9100/api/reset
curl -fsS http://127.0.0.1:9100/health
- 如果 dashboard 仍持续抖动,再重启 backend:
pnpm dev:backend
- 只有在 Vite 白屏、热更新异常、或静态资源 5xx 时,才重启 frontend:
pnpm dev:frontend
重置后恢复标准:
http://127.0.0.1:3000/health返回 200http://127.0.0.1:9100/health返回{"status":"ok"}- 登录后不再持续出现
/cable重连抖动 - 当前目标页面可以重新通过点击链路进入
3.5 页面级留证要求
每个页面至少记录:
page.urldocument.title- 关键文案 / 按钮存在性
- console
error/warning - 关键 API 请求和状态码
- 操作前后快照路径
- 如果失败,要有:
- 复现路径
- 请求
- 响应
- console
- 影响等级
3.6 推荐续测起点
如果下一位接手人要马上继续,不要重新选模块,直接从这里继续最省:
- 登录进入 dashboard
- 点击:
活动 -> 在线聊天
- 点击:
创建活动
- 继续验证:
- 标题 / 消息 / 网址 的最小必填是否会解锁
创建 - 真实提交是否成功
- 新建后是否回到列表并新增活动
- 标题 / 消息 / 网址 的最小必填是否会解锁
- 若接手时当前页已脏,先走:
- fake reset
/app/login- 重新登录
- 再点击回
活动 -> 在线聊天 -> 创建活动
3.7 fake:ai 说明
当前 Captain / Copilot 的页面可渲染、列表/表单/设置链路已能测到一部分;
但真正的 AI 成功/失败/超时/429 链路,仍依赖本地 fake:ai。
在 fake:ai 没落地前:
- Captain / Copilot 不要宣称“全量完成”
- 只能算页面级、表单级、请求级部分验收
4. 交接结论
当前最有价值的交接点不是“重新从头跑”,而是:
- 继续沿现有报告
11.840往后追加; - 先把
在线聊天 / 短信 / WhatsApp的创建链路彻底打完; - 再回到计划顺序,处理 Help Center / Widget / 权限用户回归;
- 单独补
fake:ai,否则 Captain / Copilot 只能停在半验收状态。