第一部分 转载和学习
第二部分 基于支付版本的测试梳理
-------------第一部分---------------------------------------------------------------------
【转载】https://blog.csdn.net/qq_24373725/article/details/79535729
总结下之前测试过程中的支付相关的测试用例:
支付流程:
1:正常的发起一笔流量充值请求,检查点:
1)用户发过去的信息有携带key值
2)商户系统本地数据会留存一份用户的订单信息,并且会根据每笔订单信息生成一笔支付信息(同时留存到本地)
3)第三方支付成功,第三方有存支付订单信息
4)充值成功,用户的流量余额有对应增加
异常用例
1、修改用户发过去的数据:
1)产品ID 与价值不对等---->检查点:篡改数据和key,检查商户系统报错:key值不对或者是用户数据有误。
2)取消充值流量
3)重复发起流量充值请求
2、商户系统-第三方之间:
1)密钥搞错-第三方报错,不接收密钥
2)提交商户系统里面不存在的订单/支付订单->第三方这里也是不能通过请求
3)篡改用户支付金额-->第三方也要检查
3、第三方--用户之间:
1)支付密码错误/余额不足
2)取消支付
3)重复支付[对账--->处理退款]
退款流程
正常的用例:
1.用户发起退款--->该用户的订单以及支付订单号都要存在。---检查点:商户系统/第三方检查数据没有问题,可以退款成功--->交易状态改成退款
异常用例:
1:无故发起退款:提交不存在的订单号或者支付订单号 --->订单号不存在/支付订单号不存在
2:信息不匹配发起退款:提交订单号与支付订单号不匹配的数据--->订单号/支付订单号有误
3:退款大于实际金额:提交的退款金额大于实际支付订单的金额-->商户系统要报错
4:商户系统这里发过去的请求:退款金额大于实际支付金额-->第三方要报错
=======================================
实际测试中,遇到的支付经典场景:
课程购买金额是99.0,但实际微信扣款是98.98,还有2分钱是微信通过其他优惠(券)
支付回调时,判断微信扣款金额和课程待付款金额不一致,未回调成功
导致实际支付了,课程没购买成功。。
怎么解决呢:?
=======================================
转载end.
--------第二部分 --------------------------------------------------------------------------
下面是基于项目中支付版本的测试梳理
❀在测试APP支付时,我们重点测试了
1.购买流程验证(在不同订单状态,对订单的继续支付,或终止交易)
2.购买入口(商品详情页、订单列表页、重复提交订单)
3.各个界面与原型、UI效果图的一致
上述测试方向都偏表象。
❀在后面了解了支付流程和开发的处理难点后,有这样的测试需求:
1.一个商品只对应一个订单(生成订单前删除已失效订单、查询已存在的订单是否支付成功)
2.步骤①当在第三方(微信或支付宝)支付后,
步骤②第三方将结果返回给商户后台(建哥的接口程序),
步骤③后台再更新数据库中相关字段的状态,并通知APP前端展示支付结果。
若完成步骤1后,步骤2到步骤3,通信失败(或延时),可能导致同一订单前台进行多次支付。
那么需要退款
----------------------------------------------------------------------------------
看来,在介入测试 前,对于开发的概要设计或详细设计,要学习和旁听,掌握设计细节,才能获得更细化、更本质的测试需求。