Files
EveryPublish/docs/web-test-report.md
T

4.0 KiB
Raw Blame History

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 事件。

仍需用户手动验收

  1. 在账号管理选择 B站并完成真实扫码,确认账号从“等待扫码/已扫码”变为“已绑定”。
  2. 选择真实 B站账号和视频素材发布一条测试内容,确认平台页面内容、链接、回执和任务日志。
  3. 检查平台风控/验证码/登录过期时挑战、失败和重试是否符合预期。

没有人工扫码时,不能把真实平台登录或真实平台发布写成“已完成”。mock URL 只证明网页任务状态机和本机执行器联调。