接口测试思路-接口幂等
什么是接口幂等
例如:
1.电商平台中的支付接口,针对同一个订单只能支付一次,且不能因为多次提交支付请求(因网络卡顿、延迟等)就多次扣款
2.电商平台中的订单创建接口,例如从购物车中勾选指定几个商品后,重复点击去结算,只会创建一个订单,而不会同时创建多个订单,同理,库存扣除逻辑也是如此。
3.微信中的抢红包,抢一次就不能再抢了,不会因为多次点击,而多次获取同一个红包里的金额
幂等原先是数学中的一个概念,指的是进行1次变换和N次变换产生的效果相同,在接口中可以理解为:以相同的请求调用同一个接口一次或者多次,其产生的效果是一致的。
接口幂等与防止重复提交的区别:
区别在于针对的阶段不一样,防止重复提交是在客户端限制用户多次重复提交信息,例如:注册页面/发送验证码/提交订单按钮等。而幂等针对的是重复请求已经发生或者无法避免的情况下,采用技术手段来保障这些重复请求不会给系统带来负担。
实现接口幂等的几种方案
解决办法分为两个方向,一个方向是客户端防止重复调用,一个是服务端进行校验。当然,客户端防止重复提交并不是绝对可靠的,优点是实现起来比较简单。在我们设计幂等接口时重点关注新增接口和更新接口。因为查询和删除操作天生是幂等的(根据id查询和根据id删除多次对系统的影响是一致的),不需要我们提供额外的技术手段来保证幂等性。