【银行测试】第三方支付测试点+支付业务流程测试分析...


前言

1、支付功能测试点

1)功能测试
是否可以支持免密支付,由收付款支付页面直接跳转到支付成功页面;
银行卡支付卡号正确,零码正确,支付成功;
银行卡支付卡号错误,密码错误,支付失败;
错误次数限制,错1次是否可以重试,错误2次是否可以重试,3次是否会锁卡;
是否支持扫码二维码支付;
是否支持指纹支付;
指纹支付手指受伤,指纹无法正确识别,支付失败;
指纹识别成功,支付成功;
新录入的指纹,需要密码支付;
指纹支付失败限制次数;
是否支持微信,支付宝,花呗,借呗,零钱通,零钱,信用卡等等支付;
是否支持信用卡,不同的银行卡,网银,云闪付,第三方和数字人民币支付;

支付金额要验证0.01和5万能不能支付,边界值的情况,比如-1,50000.01能不能支付,输入中文能不能支付;

空值支付,消费金额达上限,无法支付;
余额充足支付成功,余额不足取消支付;
显示余额不足并不会扣除余额,更换支付方式是否继续支付,是否可以取消支付;

2)兼容性测试

不同系统、不同网络 (wifi/4/5G)、不同浏览器、不同的二维码

3)容错性测试

支付过程断网;
支付成功后退款;
余额不足,更换支付方式;
支付时指纹不正确、支付中关机、支付时跳转其他页面;
支付时刷新页面支付到一半取消返回;

4)性能和压力测试

多个用户同时向一个账户支付;
页面跳转时间;
支付成功后跳转账单信息时间;
支付时的耗电量;
支付金额不足时,更换支付方式跳转时间;
支付密码错误时,弹出信息时间;
不同的网络环境下,支付成功响应时间;

5)界面测试

支付页面简约大气;
支付页面显示金额字体合适;
输入密码时健盘字休洁晰大小合理;
账单信息页面完整清晰;

6)安全测试

密码是否可见;
支付较大金额会询问是否确定;
支付的金额与所扣的金额是否一致;
支付完成是否会跳转到账单信息页面;
在新设备上会提示支付实名认证;

7)易用性测试

免密支付;
指纹支付;
错误信息提示易懂;

2、梳理支付的业务流程

点击支付—> 选择支付方式 —> 确认金额—> 输入密码 —> 成功支付

完成这个流程测试,也就是完成了项目的冒烟测试!

然后需要测试针对流程中的每个阶段和步骤,具体分析可能导致异常的测试点,所以可以按阶段和输入项来进行划分。

3、支付的分类

一般来讲,线上支付分为两种消费模式。
一种是直接支付金额,如淘宝,京东等购物网站,或是360云盘,视频会员等这种会员服务;

另一种是充值购买金豆之类的虚拟币,在网站中使用虚拟币进行消费,比如游戏平台、花椒等产品!

1)功能测试

接下来就是测试方面的工作了,首先进行的是功能测试,那么将边界值、等类划分、错误推测,因果图等各种测试方法相结合,整理出来了一套相对全面的测试案例,对支付功能进行测试,从而确保整个支付流程和涉及到的支付流程在任何情况下都能使用。

2)接口测试

明确整个支付流程所需要调用的接口,分清楚商家和第三方平台的接口以及参数的请求方式,包括对接口特定参数的加密,使用异常单号模拟支付,对服务端的检验等等。

3)安全测试

支付都会涉及到金额,那么就需要考虑安全测试这个方面,支付请求的伪造,金额的恶意篡改,恶意模拟第三方接口来调用商家接口等,均是我们需要考虑清楚的问题。

4、测试点汇总

支付流程测试点:

付款金额和应付金额是否一致,(比如:扫描的支付二维码,和显示的应支付金额是否一致)。支付还是要走整个支付流程才行,从确认订单到最后的支付成功,任何一步都有可能有问题。

同一种支付方式,不同的支付入口(比如:如下图所示,支付宝有两个支付入口。即可通过扫描二维码支付,也可以通过支付宝网页支付。在测试过程中,两个入口都要覆盖到。

支付成功后,产品购买是否成功。

比如会员服务产品,购买后会员到期时间是否正常延迟;比如购买商品,支付成功后,订单状态是否更改,商品种类和数量是否正确等等。

支付成功后,用户的金额是否扣除成功。

支付金额测试点:

正常金额支付;
金额的最小值:0.01;
无意义的值:0元;
最大金额:设置支付的最大金额;
银行卡或微信等,设置每日最大消费金额或者单笔最大消费金额;
银行卡或微信余额不足时支付;

支付流程测试点:

正常完成支付流程;
调起订单后,取消订单;
支付中断后,继续支付;
支付中断后结束支付;
单笔订单单笔支付;
多订单合并支付;
持续点击支付,是否会出现多次购买;

支付方式测试点:

支付宝支付;
支付宝网页支付;
微信支付;
银行卡支付;

优惠券或折扣(有一定的优惠);
支付中使用优惠券/折扣,应付金额和实际支付金额是否正确;
优惠券/折扣是否是必选,是否可以不选择折扣;
支付订单退款完成后,优惠券/折扣是否还能使用;

测试坑:

坑1:
页面显示的应付金额通过接口vip.product返回了,前端显示出来应付金额。但是,支付的二维码是通过接口vip.getPayUrl这个接口返回的,结果二维码扫出来的值和显示的应付金额不一样!

最后问题是在于,vip.getPayUrl中取的是服务器缓存,导致二维码显示的金额跟前端展示的应付金额不一致。

所以测试支付还是要走整个支付流程才行,从确认订单到最后的支付成功,任何一步都有可能有问题。

坑2:
通过支付宝网站支付,支付成功后,页面没有跳转回原服务套餐网页。最后的原因是服务配置的return_url不正确,导致支付后,没有跳回原页面。

如果测试用例覆盖不到这种场景,那么将会造成非常严重的线上事故。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

生命本就是一次奋斗,只有不断超越自己,才能创造出更加美好的未来。坚持追逐梦想,积极向上,只有这样,成功的大门才会为你敞开。

勇敢追求梦想,坚持不懈,每一份努力都是改变命运的契机。相信自己的力量,只有拼尽全力,才能书写出精彩绝伦的人生篇章。

每一次努力都是给自己的一次机会,不要畏惧失败,只要坚持追逐梦想,才能创造属于自己的辉煌人生。相信自己,勇往直前,你将超越自我,成就非凡。