14 KiB
14 KiB
R70 人工业务试运行清单
日期:2026-04-28
目标
用 10 人以下科技公司的真实日常路径验证系统是否可试运行。R70 不追求覆盖所有功能,重点发现阻断真实使用的问题。
执行原则
- 每个角色试用 30-60 分钟。
- 发现问题先记录,不现场扩展需求。
- P0/P1 才中断并进入立即修复判断。
- 涉及 workflow、权限、状态机、审批规则、迁移的问题必须单独 review。
- 截图放在本地即可,不提交到仓库;问题记录写入
artifacts/r70/issue-log.csv。
严重级别
- P0:无法登录、系统不可用、核心数据丢失、权限泄露。
- P1:核心业务无法完成,例如请假/报销/审批/关键管理入口阻断。
- P2:业务可绕过但明显影响效率或理解,例如入口难找、文案误导、状态不清。
- P3:轻微体验问题,例如间距、提示、非关键排序。
环境记录
- 环境 URL:
http://192.168.123.7:3000 - 执行日期:
2026-04-28 - 浏览器:
Firefox (Playwright CLI) - 数据库/分支:
hyb_oa_manual_trialrun_20260428172231 / 2bce9c9 - 执行人:
Codex Playwright 辅助复核
R79 公网部署态辅助复核(2026-05-04)
当前已核实部署基线:
- 公网地址:
https://oa.hyinda.com - 服务器:
118.89.77.218 - 反向代理:
caddy - SSH:常规
deploy,系统配置root - 部署目录:
/opt/hyb-oa-trialrun - 远端容器命令:
docker-compose
Codex 可代做:
- SSH 登录服务器做只读巡检。
- 执行
deploy/trialrun/deploy.sh、/ready、smoke-external-deps.js、smoke-trialrun-runtime.js。 - 查看
Caddyfile、容器状态、日志、feature flag 与工作区配置。 - 在你提供账号后执行
smoke-live和 Playwright 公网只读复核。
必须人工配合:
- 企业微信后台配置工作台入口与 OAuth 回调。
- 提供独立 smoke 账号凭据,不使用真实业务账号。
- 若需要真实企微绑定、手机扫码、二次验证,必须由你本人完成。
最小人工操作清单:
- 企微后台配置:
- 工作台入口 URL:
https://oa.hyinda.com/api/auth/wecom/login?returnTo=%2Fmobile - OAuth 回调 URL:
https://oa.hyinda.com/api/auth/wecom/callback
- 工作台入口 URL:
- 确认至少两组公网只读 smoke 账号可用:
smoke-adminsmoke-employee
- 若公网运行时 smoke 继续提示公告或搜索缺失,用管理员账号进入“功能开关”页,核对:
portal_home_v1announcements_v1global_search_v1wecom_entry_v1
- 若你让我继续代跑公网 smoke,只需要把账号标识和密码给我;我会继续完成自动化部分。
R80 企微公网启用回填(2026-05-04)
- 企业微信域名校验文件已可访问:
https://oa.hyinda.com/WW_verify_StBYfdlboMaIoRRE.txt
- 公网企微入口运行时已启用:
- 远端
.env:WECOM_ENABLED=true、WECOM_ENTRY_ENABLED=true、WECOM_OAUTH_ENABLED=true - 数据库
feature_flags:wecom_entry_v1=inherit
- 远端
- 自动化核验已完成:
GET https://oa.hyinda.com/api/auth/wecom/config返回status=readyGET https://oa.hyinda.com/api/auth/wecom/login?returnTo=%2Fmobile返回302,并跳转到open.weixin.qq.com- Playwright 公网登录页快照已确认出现“使用企业微信进入工作台”按钮
- Playwright 点击后,桌面浏览器落到企微提示页“请在企业微信客户端打开链接”,符合预期
- 截图:
output/playwright/2026-05-04-wecom-login-page.png
你现在必须人工完成的动作:
- 用手机企业微信或桌面企业微信打开该应用,不要用普通浏览器代替。
- 若首次进入后回到 OA 登录页并带
wecom=unbound:- 用已有 OA 账号密码登录
- 进入“个人设置”
- 执行企微绑定
- 绑定成功后,再次从企业微信工作台进入 OA
- 首次人工闭环时,建议只用 1 个员工测试账号,不要直接用高权限真实业务账号。
- 若你完成首次绑定后要我继续代跑公网 smoke,再把该 smoke 账号标识告诉我,我继续补 Playwright / curl 只读核验。
R81 企微回调身份取证(2026-05-04)
- 当前线上已追加最小安全诊断:
- 企微回调若缺少
UserId,server 会记录:requestIdmodehasUserIdhasOpenIdhasDeviceId
- 不记录 token、secret、完整敏感回包。
- 企微回调若缺少
- 当前服务器复核结果:
https://oa.hyinda.com/ready:正常https://oa.hyinda.com/api/auth/wecom/config:status=readyhttps://oa.hyinda.com/api/auth/wecom/login?returnTo=%2Fmobile:返回302到企微 OAuth
你现在需要做的人工操作:
- 在手机企业微信里进入工作台,打开 OA 应用一次。
- 如果仍然失败,不要反复点,先停在错误页。
- 记录以下任一信息发给我:
- 页面里的
requestId - 错误截图
- 大致时间点(精确到分钟)
- 页面里的
- 如果页面重新跳回登录页,也把最终 URL 或截图发给我。
我收到后会立刻去服务器抓对应日志,判断腾讯这次回包到底是:
- 有
OpenId但没有UserId - 还是两个字段都没有
- 还是另外一种接口异常
R83-R86 用户开通与首次绑定收口(2026-05-04)
- 本轮新增自动化覆盖:
client/tests/e2e/user-onboarding.spec.ts- 管理员在“系统用户管理”中创建用户时,不再手填工号和初始密码。
- 创建成功后,页面展示系统生成的员工号与一次性口令。
- 新用户首次登录后,被强制跳转到“修改密码”页,改密成功再进入 Portal。
client/tests/e2e/wecom-first-bind.spec.ts- 企业微信未绑定场景回退到密码登录页后,用户仍可继续进入目标页。
- 当前代码口径:
- 单个新建用户:系统自动生成员工号,管理员只维护基础资料与角色。
- 首次登录:使用一次性口令登录,必须先改密。
- 企微首次绑定:服务端已支持“未绑定回退登录后自动补绑定”的闭环,不再要求用户必须手动去“个人设置”补绑定。
- 仍需人工完成的最小动作:
- 把本轮代码部署到目标环境。
- 用真实手机企业微信打开 OA 应用一次,确认真实 OAuth 回调、cookie 与企业身份都正常。
- 若仍失败,记录
requestId、错误截图和时间点给我,我继续抓线上日志定位。
R89 登录与移动端 UX 自动复核(2026-05-05)
- 本轮目标:把登录页从说明型入口收敛为操作型入口,并修复手机端菜单/导航不可用的问题。
- 本地验证地址:
http://127.0.0.1:5173 - 自动化覆盖:
- 企业微信移动 UA 打开
/login时,首屏只突出“进入工作台”,并生成returnTo=/mobile的企微 OAuth URL。 - iPhone 视口密码登录后默认进入
/mobile,并完成:首页今日重点 -> 移动审批 -> 票据上传 -> 我的/更多入口。 - Pixel 视口进入非
/mobile页面时,顶部菜单抽屉可打开、可关闭。
- 企业微信移动 UA 打开
- 回归命令:
cd client && E2E_BASE_URL=http://127.0.0.1:5173 npx playwright test tests/e2e/r89-mobile-login-navigation.spec.ts --workers=1 --reporter=listcd client && npm run typecheckcd client && npm run build
- 当前结论:R89 移动端自动化关键路径已通过;仍需真实手机企业微信在公网应用中复核一次真实 OAuth、cookie 与移动工作台落点。
员工路径
账号:员工测试账号。
- 登录并进入 Portal。
- 查看今日动作、常用入口、公告和通知。
- 新建请假草稿,提交或撤回一次。
- 新建报销草稿,确认空白报销入口可理解。
- 写一份周报并生成待办,完成待办。
- 使用全局搜索查找一个业务对象。
- 打开移动入口,确认移动审批/移动工作台入口可理解。
- 将问题写入
artifacts/r70/issue-log.csv。
验收关注:
- 是否知道下一步该点哪里。
- 表单必填项和错误提示是否清楚。
- 提交后状态是否能理解。
- 移动端是否能完成最小查看/处理。
经理路径
账号:经理测试账号。
- 登录并确认 Portal 是管理视角。
- 进入待我处理,完成一条快捷审批或详情审批。
- 查看请假团队日历,判断团队成员可用性。
- 查看团队状态和通知。
- 进入项目工作台,确认项目协同信息是否可理解。
- 将问题写入
artifacts/r70/issue-log.csv。
验收关注:
- 审批入口是否明显。
- 快捷审批和详情审批是否有足够上下文。
- 团队日历是否能支持实际排班/请假判断。
- 审批后状态是否及时刷新。
管理员路径
账号:管理员测试账号。
- 登录并确认管理入口可见。
- 检查人员管理、组织架构入口。
- 检查系统设置和功能开关文案。
- 查询审计日志,确认关键操作可追踪。
- 用普通员工视角对比,确认不应出现的管理入口不可见。
- 将问题写入
artifacts/r70/issue-log.csv。
验收关注:
- 管理入口是否按小团队常用频率排序。
- 配置项是否会误导非技术管理员。
- 权限边界是否符合预期。
- 审计日志是否足以追踪关键操作。
结束条件
- 员工、经理、管理员三类路径都完成。
- 所有发现的问题已记录严重级别。
- P0/P1 已明确是否暂停试运行。
artifacts/r70/manual-trialrun-report.md已回填结论。
R71 定向复测回填
- 复测时间:
2026-04-28 19:08 - 19:11 CST - manager:
/leave-requests的“团队日历”页签打开成功,显示2026-04-27 ~ 2026-05-03窗口内本部门请假数据,通过。 - employee:无发票时,报销详情页在提交按钮附近即时提示“提交前需先绑定至少 1 张发票,可在‘关联票据’区域添加。”,通过。
- employee:上传
/home/shunli/Projects/hyb-oa/artifacts/北京悦海堂餐饮管理有限公司_发票金额1683.00元.pdf-> 绑定 -> 再次提交后,报销单4931211b-34b4-43b8-9e9f-917569d47c33进入reviewing,编号BX-20260428-0001,通过。 - 结论:R70 初始两条问题已闭环,可恢复下一轮本地人工试运行。
R73 自动化覆盖回填
- 自动化环境:
http://127.0.0.1:3001 - 自动化数据库:
hyb_oa_manual_trialrun_20260428172231 - 执行时间:
2026-04-28 20:49 - 21:08 CST - 已自动化覆盖:
client/tests/e2e/reimbursement-workflow-progress.spec.ts- 报销提交后详情页展示当前审批进度。
client/tests/e2e/invoice-ocr-flow.spec.ts- 报销详情:上传发票 -> OCR 完成 -> 自动进入可绑定候选 -> 绑定 -> 提交报销。
- 票据中心:OCR 缺关键字段 -> 当前页提示原因 -> 补齐字段 -> 标记 available。
- 显式开关的辅助自动化:
client/tests/e2e/manual/live-invoice-ocr.spec.ts- 用途:接入真实腾讯 OCR + 真实 VAT 发票时做本地辅助复核,不进入常规本地回归。
- 启动示例:
PLAYWRIGHT_MANUAL=1 PLAYWRIGHT_OCR_LIVE=1 PLAYWRIGHT_OCR_LIVE_FILE=/home/shunli/Projects/hyb-oa/artifacts/北京悦海堂餐饮管理有限公司_发票金额1683.00元.pdf npm run test:e2e -- tests/e2e/manual/live-invoice-ocr.spec.ts
- 仍需人工体验判断:
- Portal 信息架构是否易懂。
- 审批上下文是否足够。
- 移动入口与管理员入口的认知负担。
- 真实腾讯 OCR 在不同票样下的识别质量与耗时体感。
R73 本地环境基线回填
- 2026-04-28 本地辅助复核中,
client/tests/e2e/manual/r70-trialrun-assist.spec.ts首次出现 5 个失败步骤;复盘确认根因是本地运行时 env 未开启试运行所需模块,不是当前业务链路回归。 - 本地试运行前,server 运行时至少应开启:
PORTAL_HOME_ENABLED=trueGLOBAL_SEARCH_ENABLED=trueANNOUNCEMENTS_ENABLED=truePRESENCE_BOARD_ENABLED=trueATTENDANCE_ENABLED=trueWEEKLY_REPORT_ENABLED=trueEMPLOYEE_LIFECYCLE_ENABLED=trueTODO_BOARD_ENABLED=truePROJECT_DOMAIN_ENABLED=truePROJECT_LINKING_ENABLED=truePROJECT_COMMUNICATION_LOG_ENABLED=truePROJECT_CLOSURE_CHECKLIST_ENABLED=true
- 当前 trialrun 数据库内的
feature_flags与workspace_settings已具备小团队试运行配置;若页面仍显示模块缺失,优先检查 server 进程的运行时 env,而不是先怀疑数据库种子。 - 本地 HTTP 辅助复核不要强制
COOKIE_SECURE=true,否则127.0.0.1/192.168.123.7下登录态会失效;该项只在 HTTPS 试运行部署时开启。 - 真实腾讯 OCR 已用运行时注入方式接入旧项目本地配置完成验证;不要把腾讯密钥写回仓库内
.env。 - 本地先跑门禁:
cd server && TRIALRUN_RUNTIME_MODE=local node src/scripts/smoke-trialrun-runtime.js
- 深层真实业务辅助回归:
cd client && PLAYWRIGHT_MANUAL=1 R70_TRIALRUN_DEEP_ASSIST=1 E2E_BASE_URL=http://127.0.0.1:3001 npm run test:e2e -- tests/e2e/manual/r70-trialrun-deep-assist.spec.ts
- 批量真实腾讯 OCR 辅助回归:
cd client && PLAYWRIGHT_MANUAL=1 PLAYWRIGHT_OCR_LIVE=1 PLAYWRIGHT_OCR_LIVE_BATCH=1 PLAYWRIGHT_OCR_LIVE_DIR=<目录> E2E_BASE_URL=http://127.0.0.1:3001 npm run test:e2e -- tests/e2e/manual/live-invoice-ocr-batch.spec.ts
R77 OCR 收口回填
- 2026-04-29 已在
http://127.0.0.1:3001上用真实 PDF 发票完成单张与 batch Playwright 复测,两个用例均正常通过并退出。 - 推荐本地 live OCR 复测顺序:
- 先跑
cd server && TRIALRUN_RUNTIME_MODE=local node src/scripts/smoke-trialrun-runtime.js - 再跑单张:
cd client && PLAYWRIGHT_MANUAL=1 PLAYWRIGHT_OCR_LIVE=1 PLAYWRIGHT_OCR_LIVE_FILE=/home/shunli/Projects/hyb-oa/artifacts/北京悦海堂餐饮管理有限公司_发票金额1683.00元.pdf E2E_BASE_URL=http://127.0.0.1:3001 npx playwright test tests/e2e/manual/live-invoice-ocr.spec.ts --workers=1 --reporter=list - 最后跑 batch:
cd client && PLAYWRIGHT_MANUAL=1 PLAYWRIGHT_OCR_LIVE=1 PLAYWRIGHT_OCR_LIVE_BATCH=1 PLAYWRIGHT_OCR_LIVE_FILE=/home/shunli/Projects/hyb-oa/artifacts/北京悦海堂餐饮管理有限公司_发票金额1683.00元.pdf E2E_BASE_URL=http://127.0.0.1:3001 npx playwright test tests/e2e/manual/live-invoice-ocr-batch.spec.ts --workers=1 --reporter=list
- 先跑
- 默认策略继续保持
PDF first,仅当后续遇到新的真实票样兼容性问题时,再评估是否补 PDF 转图片 fallback。