zoukankan      html  css  js  c++  java
  • 幂等测试

    1.什么是幂等

    • 数学

           f(n) = 1^n  就是一个幂等函数

    • 编程

           任意多次执行所产生的影响与一次执行相同,不用担心重复执行会对系统造成改变

    2.为什么要做幂等

    • 故障:

         保底系统因为线上swallow消息重复发送,产生了三个线上问题:
        a、ts-treasure-pool大面积告警,全部为db主键冲突的错误。
        b、同一笔保底抵扣数据,在归还保底时当做两笔进行归还,影响总数据量1500笔左右。
        c、同一笔保底申请审核通过后,被当做两笔审核通过进行了保底占用和预付款生成,共9笔。

    3.什么时候要做幂等

    • 场景:

        同样的请求可能需要重试(或可能被重复调用)的情况
        按业务场景做针对性判断,利益相关型业务(支付、结算等)

    • 接口类型:

         PegionService 接口
         Swallow消费机
         Http接口

    4.如何做到幂等

    • 一般情况下:利用唯一交易号(或流水号)实现

             eg1:创建统一订单  case337

    • eg2:更新订单可用数量  case2178

            eg3: 支付成功后消耗抵用券 PCT_CouponConsume

                   幂等要做到:
                        1、同一个OutBizID,多次消耗该抵用券的结果都是成功。
                        2、但对于一个CouponID,只能被消耗一次,如果换一个OutBizID来调用时应该始终返回失败。

    5.如何测试幂等

    • 方法

         可在iTest上新增待测Pegions接口、Http接口、发送指定topic的swallow消息的幂等测试用例,重复执行来模拟多次调用

    • 检查点

          检查接口返回的Response是否幂等
          检查对数据库数据的变更影响是否幂等

  • 相关阅读:
    linux系统原子操作
    linux驱动编写之进程独占驱动
    批处理文件配置网络
    linux驱动编写之中断处理
    BusyBox下tftp命令的使用
    linux应用编程之进程间同步
    linux创建线程之pthread_create
    PHP 实现自动加载
    Swoole PHP windows composer
    win7&win10 右键添加 cmd
  • 原文地址:https://www.cnblogs.com/summer-sun/p/5532633.html
Copyright © 2011-2022 走看看