Files
ycc-proxy-server/代理系统测试用例清单.md
2025-12-02 19:57:10 +08:00

16 KiB
Raw Blame History

代理系统测试用例清单

一、邀请下级代理测试

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 → 普通DB升级为钻石
    • 预期:
      • B独立成新团队
      • C和D的 team_leader_id 更新为B
      • A的团队只剩自己
      • B的团队B、C、D
    • 验证:团队划分正确,关系链正确

4.3.2 跨团队转移

  • 钻石A → 普通B → 普通CC升级为钻石
    • 预期:
      • C独立成新团队
      • C无下级团队只有C自己
      • A的团队A、B
    • 验证:团队划分正确

4.3.3 深度层级转移

  • 钻石A → 普通B → 普通C → 普通D → 普通EC升级为钻石
    • 预期:
      • C独立成新团队
      • D和E的 team_leader_id 更新为C
      • A的团队A、B
      • C的团队C、D、E
    • 验证:团队划分正确,所有层级更新正确

五、综合测试场景

5.1 完整业务流程

  • 创建团队 → 邀请下级 → 推广报告 → 收益分配 → 升级 → 团队转移
    • 步骤:
      1. 创建钻石代理A
      2. A邀请黄金代理B
      3. B邀请普通代理C
      4. C邀请普通代理D
      5. D推广报告验证收益分配
      6. C升级为黄金验证关系变化
      7. 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 创建测试代理账号

建议准备以下测试账号(可用不同手机号):

  1. 钻石代理

    • 钻石A团队首领无上级
    • 钻石B团队首领无上级
  2. 黄金代理

    • 黄金A上级钻石A
    • 黄金B上级钻石A
    • 黄金C上级钻石B
  3. 普通代理

    • 普通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元

八、测试执行顺序建议

  1. 第一阶段:基础功能测试

    • 邀请下级(各种组合)
    • 验证关系建立
    • 验证团队首领
  2. 第二阶段:收益分配测试

    • 推广报告
    • 收益计算
    • 返佣分配
  3. 第三阶段:升级功能测试

    • 自主付费升级
    • 钻石升级下级
    • 升级返佣
  4. 第四阶段:团队转移测试

    • 普通→黄金升级(保留团队)
    • 升级为钻石(独立成团队)
    • 复杂场景测试
  5. 第五阶段:综合测试

    • 完整业务流程
    • 边界情况
    • 数据一致性验证

注意事项

  1. 开发环境测试时确保使用开发环境ENV=development可跳过验证码校验
  2. 数据清理:每次测试后建议清理测试数据,避免相互影响
  3. 事务验证:注意验证事务的一致性,确保要么全部成功,要么全部回滚
  4. 并发测试:如有需要,可进行并发场景测试(多代理同时升级等)
  5. 日志记录:测试过程中查看日志,确保业务流程正确