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是否幂等
          检查对数据库数据的变更影响是否幂等

  • 相关阅读:
    Netflix Ribbon(负载均衡)介绍
    Annotation 注解
    框架设计的灵魂-反射
    idea maven java.lang.outofmemoryerror gc overhead limit exceeded
    洛谷P4427 [BJOI2018]求和
    洛谷P1196 [NOI2002]银河英雄传说
    CF191C Fools and Roads
    洛谷P2296 寻找道路
    洛谷P3389 【模板】高斯消元法
    洛谷P1351 联合权值
  • 原文地址:https://www.cnblogs.com/summer-sun/p/5532633.html
Copyright © 2011-2022 走看看