16 KiB
16 KiB
代理系统测试用例清单
一、邀请下级代理测试
1.1 钻石代理邀请下级
-
钻石邀请普通代理
- 预期:建立上下级关系,普通代理的 team_leader_id 指向钻石代理
- 验证:关系类型为直接关系,团队首领正确
-
钻石邀请黄金代理
- 预期:建立上下级关系,黄金代理的 team_leader_id 指向钻石代理
- 验证:关系类型为直接关系,团队首领正确
-
钻石邀请钻石代理(不允许)
- 预期:拒绝,提示"代理等级不能高于上级代理"
- 验证:邀请失败,无关系建立
1.2 黄金代理邀请下级
-
黄金邀请普通代理
- 预期:建立上下级关系,普通代理的 team_leader_id 指向上级钻石代理
- 验证:关系类型为直接关系,团队首领正确(向上查找钻石)
-
黄金邀请黄金代理(不允许)
- 预期:拒绝,提示"代理等级不能高于上级代理"
- 验证:邀请失败,无关系建立
-
黄金邀请钻石代理(不允许)
- 预期:拒绝,提示"代理等级不能高于上级代理"
- 验证:邀请失败,无关系建立
1.3 普通代理邀请下级
-
普通邀请普通代理
- 预期:建立上下级关系,普通代理的 team_leader_id 向上查找钻石/黄金
- 验证:关系类型为直接关系,团队首领正确
-
普通邀请黄金代理(不允许)
- 预期:拒绝,提示"代理等级不能高于上级代理"
- 验证:邀请失败,无关系建立
-
普通邀请钻石代理(不允许)
- 预期:拒绝,提示"代理等级不能高于上级代理"
- 验证:邀请失败,无关系建立
1.4 多层级邀请测试
-
钻石 → 黄金 → 普通(3层)
- 预期:3层关系链,所有代理的 team_leader_id 指向钻石
- 验证:关系链正确,团队首领一致
-
钻石 → 普通 → 普通 → 普通(4层)
- 预期:4层关系链,所有代理的 team_leader_id 指向钻石
- 验证:关系链正确,团队首领一致
-
钻石 → 普通 → 普通 → 普通 → 普通(5层)
- 预期:5层关系链,所有代理的 team_leader_id 指向钻石
- 验证:关系链正确,团队首领一致
二、推广报告收益测试(等级加成返佣)
2.1 钻石代理推广报告
- 钻石代理自己推广的报告
- 等级加成:0元
- 预期:无等级加成返佣,全部收益归自己
- 验证:agent_rebate 表无记录,代理收益 = 设定价格 - 基础底价 - 提价成本
2.2 黄金代理推广报告
-
黄金代理(上级是钻石)推广报告
- 等级加成:3元
- 预期:3元全部返佣给钻石上级
- 验证:agent_rebate 表记录正确,钻石上级钱包增加3元
-
黄金代理(无上级/上级不是钻石)推广报告
- 等级加成:3元
- 预期:返佣归平台(异常情况)
- 验证:agent_rebate 表无记录
2.3 普通代理推广报告(等级加成6元)
2.3.1 直接上级是钻石
- 普通代理(上级是钻石)推广报告
- 等级加成:6元
- 预期:6元全部返佣给钻石上级
- 验证:agent_rebate 表记录正确,钻石上级钱包增加6元
2.3.2 直接上级是黄金
-
普通代理(上级是黄金,黄金上级是钻石)推广报告
- 等级加成:6元
- 预期:
- 3元给黄金上级(配置:normal_to_gold_rebate)
- 3元给钻石上级(上上级)
- 验证:agent_rebate 表有2条记录,金额分配正确
-
普通代理(上级是黄金,无钻石上级)推广报告
- 等级加成:6元
- 预期:3元给黄金上级,剩余3元归平台
- 验证:agent_rebate 表只有1条记录(3元给黄金),剩余归平台
2.3.3 直接上级是普通(多层普通代理)
-
普通 → 普通 → 钻石(3层)
- 等级加成:6元
- 预期:
- 2元给直接上级普通(配置:normal_to_normal_rebate)
- 4元给钻石上级(跳过中间普通,直接给钻石)
- 验证:agent_rebate 表有2条记录,金额分配正确
-
普通 → 普通 → 普通 → 钻石(4层)
- 等级加成:6元
- 预期:
- 2元给直接上级普通
- 4元给钻石上级(跳过中间所有普通代理)
- 验证:agent_rebate 表有2条记录,金额分配正确
-
普通 → 普通 → 黄金(无钻石,3层)
- 等级加成:6元
- 预期:
- 2元给直接上级普通
- 3元给黄金上级(配置:normal_to_gold_rebate_max)
- 1元归平台(超出部分)
- 验证:agent_rebate 表有2条记录,金额分配正确,剩余归平台
-
普通 → 普通 → 普通(全部是普通,无钻石/黄金)
- 等级加成:6元
- 预期:
- 2元给直接上级普通
- 4元归平台(无钻石/黄金上级)
- 验证:agent_rebate 表只有1条记录(2元),剩余归平台
三、升级代理收益测试
3.1 自主付费升级
3.1.1 普通 → 黄金(199元)
-
普通代理升级为黄金(上级是钻石)
- 升级费用:199元
- 返佣:139元给原直接上级
- 预期:
- 原直接上级(钻石)钱包增加139元
- 升级后不脱离关系(钻石 > 黄金)
- 仍属于原团队
- 验证:升级成功,返佣记录在 agent_upgrade 表,钱包余额正确
-
普通代理升级为黄金(上级是黄金)
- 升级费用:199元
- 返佣:139元给原直接上级(黄金)
- 预期:
- 原直接上级(黄金)钱包增加139元
- 升级后脱离关系(同级不能作为上下级)
- 保留团队关系(向上查找钻石)
- 验证:升级成功,关系脱离,团队首领正确
-
普通代理升级为黄金(上级是普通)
- 升级费用:199元
- 返佣:139元给原直接上级(普通)
- 预期:
- 原直接上级(普通)钱包增加139元
- 升级后脱离关系(下级等级高于上级)
- 保留团队关系(向上查找钻石/黄金)
- 验证:升级成功,关系脱离,团队首领正确
3.1.2 普通 → 钻石(980元)
-
普通代理升级为钻石(上级是钻石)
- 升级费用:980元
- 返佣:680元给原直接上级(钻石)
- 预期:
- 原直接上级(钻石)钱包增加680元
- 升级后脱离关系(同级不能作为上下级)
- 独立成为新团队,team_leader_id = 自己
- 所有下级跟随到新团队
- 验证:升级成功,独立成团队,下级团队首领更新
-
普通代理升级为钻石(上级是黄金)
- 升级费用:980元
- 返佣:680元给原直接上级(黄金)
- 预期:
- 原直接上级(黄金)钱包增加680元
- 升级后脱离关系(下级等级高于上级)
- 独立成为新团队,team_leader_id = 自己
- 所有下级跟随到新团队
- 验证:升级成功,独立成团队,下级团队首领更新
-
普通代理升级为钻石(上级是普通)
- 升级费用:980元
- 返佣:680元给原直接上级(普通)
- 预期:
- 原直接上级(普通)钱包增加680元
- 升级后脱离关系(下级等级高于上级)
- 独立成为新团队,team_leader_id = 自己
- 所有下级跟随到新团队
- 验证:升级成功,独立成团队,下级团队首领更新
3.1.3 黄金 → 钻石(980元)
-
黄金代理升级为钻石(上级是钻石)
- 升级费用:980元
- 返佣:680元给原直接上级(钻石)
- 预期:
- 原直接上级(钻石)钱包增加680元
- 升级后脱离关系(同级不能作为上下级)
- 独立成为新团队,team_leader_id = 自己
- 所有下级跟随到新团队
- 验证:升级成功,独立成团队,下级团队首领更新
-
黄金代理升级为钻石(无上级)
- 升级费用:980元
- 返佣:无
- 预期:
- 独立成为新团队,team_leader_id = 自己
- 所有下级跟随到新团队
- 验证:升级成功,独立成团队,下级团队首领更新
3.2 钻石升级下级(免费)
- 钻石升级下级(普通 → 黄金)
- 升级费用:免费
- 返佣:无
- 预期:
- 被升级代理无需付费
- 升级后根据原上级等级决定是否脱离关系
- 保留团队关系
- 验证:升级成功,费用为0,关系处理正确
四、升级后团队转移测试
4.1 普通 → 黄金升级(保留团队)
4.1.1 上级是钻石(不脱离)
- 普通 → 黄金(上级是钻石),有下级
- 预期:
- 不脱离关系
- 保留原团队(team_leader_id 不变)
- 所有下级(直接+间接)的 team_leader_id 不变
- 验证:关系保留,所有下级团队首领不变
- 预期:
4.1.2 上级是黄金(脱离关系)
- 普通 → 黄金(上级是黄金),有下级
- 预期:
- 脱离直接上下级关系
- 保留团队关系(向上查找钻石)
- 所有下级(直接+间接)的 team_leader_id 不变
- 验证:关系脱离(RelationType=2),所有下级团队首领不变
- 预期:
4.1.3 上级是普通(脱离关系)
- 普通 → 黄金(上级是普通),有下级
- 预期:
- 脱离直接上下级关系
- 保留团队关系(向上查找钻石/黄金)
- 所有下级(直接+间接)的 team_leader_id 不变
- 验证:关系脱离,所有下级团队首领不变
- 预期:
4.2 升级为钻石(独立成新团队)
4.2.1 普通 → 钻石
-
普通 → 钻石(上级是钻石),有下级
- 预期:
- 脱离关系
- 独立成新团队(team_leader_id = 自己)
- 所有直接下级的 team_leader_id 更新为自己
- 所有间接下级的 team_leader_id 更新为自己(递归)
- 验证:
- 升级代理的 team_leader_id = 自己
- 所有下级(直接+间接)的 team_leader_id = 升级代理ID
- 下级数量统计正确
- 预期:
-
普通 → 钻石(上级是黄金),有下级(2层)
- 预期:
- 脱离关系
- 独立成新团队
- 直接下级跟随
- 间接下级跟随
- 验证:所有下级团队首领更新为新钻石
- 预期:
-
普通 → 钻石(上级是普通),有下级(3层以上)
- 预期:
- 脱离关系
- 独立成新团队
- 所有层级的下级都跟随
- 验证:所有下级团队首领更新为新钻石
- 预期:
4.2.2 黄金 → 钻石
- 黄金 → 钻石(上级是钻石),有下级
- 预期:
- 脱离关系
- 独立成新团队
- 所有下级跟随
- 验证:所有下级团队首领更新为新钻石
- 预期:
4.3 复杂团队转移场景
4.3.1 多层级团队
- 钻石A → 黄金B → 普通C → 普通D,B升级为钻石
- 预期:
- B独立成新团队
- C和D的 team_leader_id 更新为B
- A的团队:只剩自己
- B的团队:B、C、D
- 验证:团队划分正确,关系链正确
- 预期:
4.3.2 跨团队转移
- 钻石A → 普通B → 普通C,C升级为钻石
- 预期:
- C独立成新团队
- C无下级,团队只有C自己
- A的团队:A、B
- 验证:团队划分正确
- 预期:
4.3.3 深度层级转移
- 钻石A → 普通B → 普通C → 普通D → 普通E,C升级为钻石
- 预期:
- C独立成新团队
- D和E的 team_leader_id 更新为C
- A的团队:A、B
- C的团队:C、D、E
- 验证:团队划分正确,所有层级更新正确
- 预期:
五、综合测试场景
5.1 完整业务流程
- 创建团队 → 邀请下级 → 推广报告 → 收益分配 → 升级 → 团队转移
- 步骤:
- 创建钻石代理A
- A邀请黄金代理B
- B邀请普通代理C
- C邀请普通代理D
- D推广报告,验证收益分配
- C升级为黄金,验证关系变化
- B升级为钻石,验证团队转移
- 验证:每个步骤的数据正确
- 步骤:
5.2 收益统计测试
-
查询代理收益统计(包含佣金和返佣)
- 验证:agent_wallet 表的 Balance 和 TotalEarnings 正确
-
查询下级列表和统计
- 验证:下级数量、团队规模统计正确
5.3 边界情况测试
-
钻石代理无下级时升级(边界情况)
- 验证:独立成团队,team_leader_id = 自己
-
普通代理无上级时升级
- 验证:独立成团队,无返佣
-
多层普通代理链,无钻石/黄金上级
- 验证:收益分配正确(部分归平台)
六、数据验证检查点
6.1 关系表验证
- agent_relation 表的关系类型正确(1=直接关系,2=已脱离)
- 脱离关系时,DetachReason 和 DetachTime 正确记录
6.2 钱包验证
- agent_wallet 表的 Balance(可用余额)正确
- agent_wallet 表的 FrozenBalance(冻结余额)正确(如有)
- agent_wallet 表的 TotalEarnings(累计收益)正确
6.3 返佣记录验证
- agent_rebate 表的记录完整(推广报告返佣)
- agent_upgrade 表的返佣记录正确(升级返佣)
- 返佣金额计算正确
6.4 团队验证
- agent 表的 team_leader_id 正确指向钻石代理
- 升级后所有下级 team_leader_id 更新正确
6.5 订单和佣金验证
- agent_order 表记录完整
- agent_commission 表记录完整
- 佣金金额计算正确
七、测试数据准备建议
7.1 创建测试代理账号
建议准备以下测试账号(可用不同手机号):
-
钻石代理:
- 钻石A(团队首领,无上级)
- 钻石B(团队首领,无上级)
-
黄金代理:
- 黄金A(上级:钻石A)
- 黄金B(上级:钻石A)
- 黄金C(上级:钻石B)
-
普通代理:
- 普通A(上级:钻石A)
- 普通B(上级:黄金A)
- 普通C(上级:普通B)
- 普通D(上级:普通C)
- 普通E(上级:普通D)
7.2 测试产品配置
- 确保有测试产品配置(agent_product_config 表)
- 配置基础底价、提价阈值、提价手续费比例
7.3 测试返佣配置
- normal_to_normal_rebate(默认2元)
- normal_to_gold_rebate(默认3元)
- normal_to_gold_rebate_max(默认3元)
八、测试执行顺序建议
-
第一阶段:基础功能测试
- 邀请下级(各种组合)
- 验证关系建立
- 验证团队首领
-
第二阶段:收益分配测试
- 推广报告
- 收益计算
- 返佣分配
-
第三阶段:升级功能测试
- 自主付费升级
- 钻石升级下级
- 升级返佣
-
第四阶段:团队转移测试
- 普通→黄金升级(保留团队)
- 升级为钻石(独立成团队)
- 复杂场景测试
-
第五阶段:综合测试
- 完整业务流程
- 边界情况
- 数据一致性验证
注意事项
- 开发环境:测试时确保使用开发环境(ENV=development),可跳过验证码校验
- 数据清理:每次测试后建议清理测试数据,避免相互影响
- 事务验证:注意验证事务的一致性,确保要么全部成功,要么全部回滚
- 并发测试:如有需要,可进行并发场景测试(多代理同时升级等)
- 日志记录:测试过程中查看日志,确保业务流程正确