码迷,mamicode.com
首页 > 其他好文 > 详细

幂等测试

时间:2016-05-26 21:50:02      阅读:355      评论:0      收藏:0      [点我收藏+]

标签:

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

 

幂等测试

标签:

原文地址:http://www.cnblogs.com/summer-sun/p/5532633.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!