You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

12 KiB

A7 后台管理验收步骤清单(a7-acceptance · 15 页全分区)

  • 被测对象demo/index.html(15 tab 统一版)× 测试环境 https://ai.itc.vip/crm-api
  • 使用方法:双击打开 demo → 页头「uid 登录」(默认管理员罗伟健)→ 按下表逐 tab 从上到下点每个步骤按钮 → 输出框绿色(/提示)= PASS红色(失败 + code=)= 候选缺陷 → 结果列填 PASS / FAIL,FAIL 的按《验收结果汇总.md》格式记缺陷。
  • 纪律:数字类断言(条数/计数)随库内数据浮动,以相对变化为准;每 tab 最后的「清理」步骤务必执行,不留演示数据。

用户管理(user)· A7-1 用户管理

覆盖:用户列表 / 统计出参 / 移交全链路 / 时间戳

步骤 操作 说明 / 预期 结果(PASS/FAIL) 备注
步骤1 移交预览(admin 名下各域计数)
步骤2 自移交拦截(userId=receiverId → 期望 61019)
步骤3 移交执行 admin→BUDDY(全域计数清零)
步骤4 移交返还 BUDDY→admin(计数还原)
步骤5 用户统计出参(lastTransferTime 非空)

同步任务(sync)· A7-1-2 同步任务(二期票01)

覆盖:任务化契约 / 分页倒序 / 详情五块 / 设置读写与边界 / lastSyncTime 切表

步骤 操作 说明 / 预期 结果(PASS/FAIL) 备注
步骤1 发起同步任务(任务编号格式 + 异步终态轮询)
步骤2 同步记录分页(筛选 + 开始时间倒序断言)
步骤3 任务详情(执行结果/失败对象/接口错误/处理结果/进度五块)
步骤4 读取同步设置(默认值 + 派生出参)
步骤5 保存合法设置(interval=2 次数=3 并发=1,回显断言)
步骤6 边界校验(间隔<1min / 次数<1 → 期望 61022)
步骤7 还原设置(不污染环境)
步骤8 lastSyncTime 数据源切换(任务表最新成功行口径)+ 下次执行时间推导

角色管理(role)· A7-2 角色管理

覆盖:统计四计数 / 批量增量分配 / copy / 启停校验 / 内置保护

步骤 操作 说明 / 预期 结果(PASS/FAIL) 备注
步骤0 准备演示角色(幂等建 e2d-演示角色)
步骤1 角色统计(四计数)
步骤2 批量增量分配给 BUDDY(assign-roles-batch)
步骤3 复制演示角色(期望停用草稿 roleCode 带 copy
步骤4 启用无授权副本(期望 61021 两道校验)
步骤5 停用内置管理员角色(期望内置保护拦截)
步骤6 恢复 BUDDY 角色 + 删除演示角色(在职守卫通路)

权限点管理(res)· A7-2 权限点管理

覆盖:引用清单 / 停启 roundtrip / 禁删两段

步骤 操作 说明 / 预期 结果(PASS/FAIL) 备注
步骤0 准备演示权限点 + 禁删链路(演示角色 RD)
步骤1 商机管理目录引用清单(期望 ≥1 角色)
步骤2 演示点停用→启用 roundtrip
步骤3 删除两段拦截(启用删 61009 / 停用后删 61020)
步骤4 清理(删 RD 级联清引用 → 停用并删演示点)

方案推送规则(push)· A7-3 方案推送规则

覆盖:状态机全链(草稿/发布/64029/64030/copy/64027)

步骤 操作 说明 / 预期 结果(PASS/FAIL) 备注
步骤1 新建 R1 草稿(仅步骤①,无步骤④)
步骤2 发布 R1(D-01 回归:期望成功非 500)
步骤3 新建 R2 完整 4 步骤草稿 + 详情回显
步骤4 发布 R2 + versions 版本列表
步骤5 同名发布中唯一(期望 64029)
步骤6 创建方式非法(期望 64030)
步骤7 复制 R2(新编码 V1.0 草稿)
步骤8 停用 R2 + 删除已停用(期望 64027 仅草稿可删)
步骤9 清理草稿(R3/R4/copy)

项目查重规则(dedup)· A7-3 项目查重规则

覆盖:发布与引用计数 / 64031 两路 / 64030 / 64033

步骤 操作 说明 / 预期 结果(PASS/FAIL) 备注
步骤1 新建 D1(全部商机)→ 发布
步骤2 属地档缺适用对象(期望 64031)
步骤3 属地档设默认(期望 64031 仅全部商机可设默认)
步骤4 推送规则 R5 草稿引用 D1 → referenceCount=1(草稿引用入账)
步骤5 引用草稿 D2 发布 R6(期望 64030 草稿不可被正式引用)
步骤6 复制→删草稿 / 停用 D1 / 删已停用(期望 64033)
步骤7 清理(删 R5/R6/D2 草稿,refCount 回落)

项目规则(projrule)· A7-3 项目规则

覆盖:current 5 区块聚合 / 分区保存 / 64036 比例校验

步骤 操作 说明 / 预期 结果(PASS/FAIL) 备注
步骤1 读当前配置(5 区块)
步骤2 保存阶段别名(2 行)→ 回显断言
步骤3 标底比例越界 150(期望 64036)

线索池(pool)· A7-3 线索规则·线索池

覆盖:三类异人成员 / 导出导入 / 列表 / 清理

步骤 操作 说明 / 预期 结果(PASS/FAIL) 备注
步骤1 建演示池(负责人/协作人/部门成员三类异人)
步骤2 详情回填断言(三类成员名单)
步骤3 导出(xlsx 字节数 + ZIP 魔数)
步骤4 导入上方文件(逐行 BatchResult) 脚本预先准备 12 列模板 xlsx(1 条 e2d-导入池,部门取空闲第二顺位避让 64003)
步骤5 列表断言(演示池/导入池可见)
步骤6 清理(删演示池/导入池)

公海绑定数(poolrule)· A7-3-4 公海规则「绑定商机(数量)」(二期票03)

覆盖:部门专用规则发布 / boundOppCount 增量 / 默认兜底 / 清理

步骤 操作 说明 / 预期 结果(PASS/FAIL) 备注
步骤1 建演示部门专用规则并发布(e2d-绑定数规则;部门被占则回退既有发布中专用规则)
步骤2 建演示商机 A → detail.boundOppCount = base+1 POST /api/opportunity 六必填+省市 code(照 opportunity-e2e 先例)
步骤3 建演示商机 B → detail.boundOppCount = base+2
步骤4 默认规则兜底口径(发布中默认规则计数不因本部门建商机而增) 无发布中默认规则时降级为提示(单测已覆盖口径)
步骤5 清理(关停演示商机 close / 停用演示规则) 商机无删除端点(API 正门终态=关闭);规则发布中→停用留存可辨

全局日志(glog)· A7-4 日志管理(二期票02 · crm-log)

覆盖:AOP 采集 / 操作·登录·批量日志 / 结果文件 / 权限口径

步骤 操作 说明 / 预期 结果(PASS/FAIL) 备注
步骤1 建/删演示角色(AOP 写端点采集素材)
步骤2 操作日志分页(operatorName/opType 筛选命中 + 逐字段)
步骤3 退出登录(内联埋点)→ 登录日志「退出」行断言 debug/token 不走登录采集点(票内已核实),退出钩子按请求登录态采集——验证后自动重铸 token
步骤4 线索池导出 → batch/page「导出」行(result+结果文件 id)
步骤5 导入上方文件 → batch/page「导入」行(BatchResult 计数) 脚本预置 12 列模板 xlsx(1 条 e2d-导入池,部门取空闲顺位避让 64003)
步骤6 结果文件下载 /api/log/batch/file?id=(ZIP 魔数)
步骤7 打包下载 /api/log/batch/download ids[](ZIP 魔数)
步骤8 不存在文件 id 错误形态(40401/404 形态)
步骤9 非管理员(BUDDY)调三 page(期望权限拒绝)

字典种子验证(seed)· A7-5 字典种子验证

覆盖:opp_stage 06/07 + opportunity_status 4 值

步骤 操作 说明 / 预期 结果(PASS/FAIL) 备注
步骤1 校验种子可见性

分组管理(dgroup)· A7-5 数据字典·分组管理(v3 契约)

覆盖:新建/编辑/启停/删除/设默认值(仅二级项)

本页为主界面操作(无联测步骤面板),对照原型逐控件核对:

可操作入口:查询、+ 新建分组、上一页、下一页

操作 预期 结果(PASS/FAIL) 备注
逐控件操作并观察列表/弹窗反馈 与原型 A7 对应页一致(弹窗字段、错误码文案、列表列头)

字典项管理(ditem)· A7-5 数据字典·字典项管理(v3 契约)

覆盖:无键值自动编码 / 组内名称唯一 63007 / 复合子项 / 63013 禁停

本页为主界面操作(无联测步骤面板),对照原型逐控件核对:

可操作入口:查询、+ 新建字典项、上一页、下一页

操作 预期 结果(PASS/FAIL) 备注
逐控件操作并观察列表/弹窗反馈 与原型 A7 对应页一致(弹窗字段、错误码文案、列表列头)

两级树(dtree)· A7-5 数据字典·两级树

覆盖:一级列表 + 行内二级展开

本页为主界面操作(无联测步骤面板),对照原型逐控件核对:

可操作入口:刷新

操作 预期 结果(PASS/FAIL) 备注
逐控件操作并观察列表/弹窗反馈 与原型 A7 对应页一致(弹窗字段、错误码文案、列表列头)

引用计数联测(dref)· A7-5 数据字典·引用计数联测

覆盖:客户引用 +1 / 换引用迁移 / 引用项禁删 63009 / 归档保留计数

步骤 操作 说明 / 预期 结果(PASS/FAIL) 备注
步骤0 准备演示字典项(幂等建 e2d_type_a / e2d_type_b) 走 POST /api/dict/item/saveOrUpdate:名称组内唯一(63006/63007 幂等可重跑)
步骤1 新建客户引用此字典 POST /api/customer/create(confirmSimilar=true)→ 字典项 referenced=true(ref_count +1,同事务入账)
步骤2 编辑客户换引用到 e2d_type_b POST /api/customer/edit?id=(CAS version)→ 旧项 decrement、新项 increment(applyFieldChange 随迁)
步骤3 尝试删除当前被引用项 POST /api/dict/item/delete → 期望 63009「该字典已被引用,无法删除」
步骤4 归档演示客户(清理) POST /api/customer/archive?id=;归档保留字典编码引用计数(数据一致性优先)

争议留白(待产品/负责人确认,本轮不作为缺陷)

  • 数据共享 3 页(A7-2-3 backup 草稿箱):等原型正式化,未纳入盘点与验收。
  • 职务下拉值域来源(OA title 去重 vs 字典分组):挂账待拍板。
  • 角色管理「处理使用人员」弹窗「当前参与商机数」列:计数口径未拍板。
  • OpportunityPoolRule 列表「所属战队」等冗余列:随 UI 确认后补。
  • 幻影挂账 3 端点(POST /depts/save、/depts/delete、/users/admin-role):原型无入口,保留运维用途。
  • 项目规则「阶段提醒」区块:原型自注「待补充」。
  • 全局日志采集覆盖面 = 写侧(POST)先行,不采「查询」GET;登录日志仅采「退出」钩子(debug/token 不走登录采集点)。

已知形态说明(不算缺陷)

  • 同步任务两态容忍:测试环境钉钉凭据不可达时,任务以 all_failed 终态落行(或长时间 running)均为正常形态。
  • lastSyncTime 口径 = 同步任务表最新成功行 endTime;无成功行时为空。
  • 操作/登录/批量日志行与同步任务行 = 审计数据,留存不删;其余演示数据一律 e2d- 前缀 + 步骤面板末步清理。