实现幂等的场景,方法和接口幂等性测试
实现幂等的场景,方法和接口幂等性测试
幂等:一个操作多次执行所产生的影响等价于执行一次的影响
非幂等接口带来的问题:超时重试,接口并发请求,导致数据错误
序号 | 需实现幂等的场景(业务) | 实现幂等的方法(开发) | 接口幂等性测试(测试) | 备注 |
1 |
会员多个等级升级时,只有首次升 级才能发放奖励 |
|||
2 |
营销活动中,一个用户一种奖励只 能发一次 |
数据库设计时,将奖励id和用户id做联合主键 ,重复插入奖励明细插入失败,保证数据唯一 |
利用数据库的唯一约束实现幂等 | |
3 |
会员多个等级升级在等级变更log 表数据不能重复 |
|||
4 |
订单创建接口超时重试,不能多创 建订单 |
|||
5 |
扣减库存接口超时重试,不能多扣 减库存 |
|||
6 |
订单支付发出请求后,服务端处理 扣钱操作,超时重试,不能多扣钱 |
|||
7 |
注册接口,重复手机号注册失败,不新增用户数据 |
Jmeter测试API接口,手机号为同一个,多个线程数同时请求,用户表产生多条相同手机号的用户数据,则该接口没有实现幂等 |
||
8 | 用户重复提交 | 前端后端都需控制 | 前端提交时重复快速点击 | |