4.0 KiB
EveryPublish Web-only V1 测试报告
更新:2026-08-21。当前报告只覆盖 Web-only 本机模式;真实平台扫码和发布仍需用户手动验收。
当前实测结论
本轮已用 EXECUTOR_MODE=mock 和 EXECUTOR_MODE=web 启动实际 Go server,并通过 HTTP 调用跑通:
注册/登录/刷新/me 200,refresh token 轮换,工作区/owner 角色可见
未登录创建任务 401,业务写操作不绕过鉴权
添加 douyin 账号 200
创建网页 QR 挑战 200,kind=qr,qrUrl=mock://...
提交 mock 登录挑战 200,账号 status=active
空挑战确认值 400,挑战保持 active
上传 demo.mp4 200,kind=video
签名素材直链 首次下载 200,重复使用 404/410
创建任务/提交/审核 200
本机 Web executor queued → dispatched → running → success
结果 mock://everypublish/task/<id> + receipt
Browser WebSocket open(新鲜 JWT)
客户端/设备路由 404,不进入网页菜单/流程
任务时间线 6 个事件:draft>pending_review>queued>dispatched>running>success
扩展 smoke 还覆盖:运行时状态、工作区名称更新、成员邀请/加入/查看/权限拒绝/移除、工作区切换后 refresh 保持选中工作区、账号资料更新和重复绑定幂等、mock 凭据导入和登录检查的明确 409、挑战挂起→重发→解决、素材类型筛选/下载/inline 预览和删除、任务驳回→重提→取消、草稿删除、排期设置后清除、通知读全、审计列表、密码修改后重新登录、权限检查。当前输出会带 coverage 数组,避免把单条成功任务误认为全量网页验证。
B站 adapter 另有 httptest 自动验证:二维码生成与 86101/86090/0 轮询、上下文取消、凭据加密落盘、UPOS 分片真实 ETag、merge、CSRF URL 编码、非 2xx 和空素材错误分类。
服务端集成测试还用 fake adapter 验证了 /accounts/:id/bind 的真实 handler 链路:生成 QR、后台轮询 pending→confirmed、保存凭据、更新 challenge=solved 和 account=active。
工程检查
| 检查项 | 结果 | 备注 |
|---|---|---|
| Go server test | 通过 | 含 API、WS、handler、local mock dispatcher 和任务时间线测试 |
| Go server vet | 通过 | go vet ./... |
| Dispatcher adapter 单测 | 通过 | 注册 adapter 的真实执行路径、逐账号结果和 context cancel |
| Web TypeScript | 通过 | npx tsc --noEmit |
| Web production build | 通过 | npm run build;仅有 chunk 体积提示 |
| Web smoke | 通过 | cd apps/web && npm test;分别在 EXECUTOR_MODE=mock 和 EXECUTOR_MODE=web server 上覆盖认证、权限、挑战、素材、审核、通知、审计、Browser WS 和任务状态机 |
| Web lint | 未通过 | 仓库原有 53 个规则错误,主要是字符串拼接/格式;不是本轮 TypeScript/build 阻断项,需后续单独清理 |
| 浏览器完整 UI 自动化 | 未完成 | 当前运行环境没有可用浏览器控制服务;API、生产构建和 Browser WS 已实测 |
重复回归
最新源码重新编译后:EXECUTOR_MODE=mock 连续 3 次、EXECUTOR_MODE=web 连续 2 次均通过;加入成员/工作区/排期/密码回归后,8090 最新二进制再次通过。每次时间线均严格为 draft>pending_review>queued>dispatched>running>success,未再出现并发轮询造成的重复 dispatched/running 事件。
仍需用户手动验收
- 在账号管理选择 B站并完成真实扫码,确认账号从“等待扫码/已扫码”变为“已绑定”。
- 选择真实 B站账号和视频素材发布一条测试内容,确认平台页面内容、链接、回执和任务日志。
- 检查平台风控/验证码/登录过期时挑战、失败和重试是否符合预期。
没有人工扫码时,不能把真实平台登录或真实平台发布写成“已完成”。mock URL 只证明网页任务状态机和本机执行器联调。