【银行测试】第三方支付测试点+异常测试点+接口响应超时

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

1、第三方支付的测试点

支付金额:
1)小于最小值,如:小于0.01
2)大于最大值/金额上限
3)无实际意义金额,如0元
4)格式错误(负数、非数字)
5)余额小于实际需要支付的金额
6)超过第三方支付接口当日消费/单笔消费金额

支付接口:
第三方接口,微信/支付宝/网银系统/post机终端服务

支付操作:
1)指纹支付
2)免密支付
3)账号+密码支付
4)动态获取支付验证码支付
5)银行卡密支付
6)信用卡支付码

异常处理:
1)退款处理
2)支付数据交换时中断(断电、断网、弱网),重新启动能否再支付
3)支付失败后如何处理
4)支付金额不足时,充值后可否继续支付
5)持续点击
6)多次扣款如何处理退款
7)取消支付/取消支付后再次支付
8)第三方支付未登录时支付

兼容性:
PC/笔记本/平板/手机端支付

后台处理订单:
1)成功订单财务处理
2)失败订单财务处理
3)退款订单财务处理
4)差错账单如何处理等

2、支付类异常测试点

1)支付流程

我们在测试一个功能时,需要先了解一下这个逻辑,而订单支付逻辑普遍都会有以下内容:

创建本地唯一订单号;
去调用支付,在支付平台生成一个支付订单;
会返回一个支付凭证(payInfo)
支付订单号在回调方法中会拿到

此时待支付状态下,支付平台回调通知接口;
在本地保存待支付订单信息(此时有两个订单记录:一个本地订单,一个支付平台的订单,两个ID关联)

用户根据收到的支付凭证发起支付(只需要管支付成功的,不成功可以当成忽略)

支付平台回调通知接口(支付成功)
更新支付订单
更新本地订单
后续操作

主动查询订单状态
更新支付订单
更新本地订单
后续操作

退款或体现(不做具体阐述)

2)实际遇到支付的异常测试点

上面的内容了解即可,大部分内容项目熟了就知道了,很多时候具体项目具体分析。

下面的异常测试点大多是我亲身经历过的容易出现异常的情况。

具体测试场景:
连续访问2次(或以上)支付接口,在第一次访问未回调完成时,第二次访问需要做限制;

可能出现的问题:直接返回第二次的结果,而第一次就可能是成功的,只是第一次请求返回的结果被第二次请求返回的失败结果所覆盖;

连续访问回调订单接口(向支付平台提交支付请求接口),生成的多个签名,需要校验订单返回的是否是最新的签名;

可能出现的问题:使用前面生成的一个签名去支付,会报错;

一个订单反复提交支付再返回,退出支付再次调取支付只允许生成不同的签名,这个根据需求;

需要校验1个签名只能支付1次,这个根据需求;
支付签名的校验,这个看需求及个人。如:异常/特殊符号等;
支付0元/0.01元/0.001元;
支付负值;

支付回调超时情况后端处理:一个合理的文案。
方法:加挡板/断点;

注意一下消息回调,如果是第三方支付系统,通常会有消息的异步回调。

如:支付后,会在一定时间内无限循环查询接口,最后会回传成功或失败,但是订单不会直接知道这个结果,系统需要再次访问一个接口了解支付的最新状态才能知道订单是否支付成功;

【银行测试】第三方支付测试点+异常测试点+接口响应超时_第1张图片

3、第三方支付接口响应超时

问题:调用第三方支付接口响应时间超过10秒,导致大量线上订单因为超时失败,该接口是实时返回结果的,而且不是一直都慢,是偶尔慢,对于接口超时怎么处理和测试?

解决方法:调用接口时设置超时时间,当接口超过9秒未返回结果,自动将改订单设置为处理中,然后后由定时任务调用查询接口,这样就把,一个实时返回结果的接口,当成一个异步的接口来用了,总比一大堆失败订单出现会更加的好

尤其是在分布式中接口响应超时的问题,尤其重要。
很多时候,一个请求,会调用很多service服务,如果service之间是串行的话,那么一个service超时,很可能会引起连锁反应。

所以在调用别的接口的时候(不管是第三方支付接口,还是分布式接口),都需要加一个超时时间,超过这个时间,就不在等待了,当做失败,或者处理中,然后再后续处理。

处理方式:
1)第一次请求第三方,出现第三方超时异常。设置重复请求为三次。
2)首先用原先的订单号,查询订单交易结果。
3)交易成功,返回交易成功。
4)交易失败,返回交易失败。
5)未存在该交易,则进行重复请求,以此类推三次。
6)超过三次,返回交易失败

代码实现:
1)使用线程安全类型:AtomicInteger
2)使用线程保存计数器的值:ThreadLocal

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

一、Python编程入门到精通

【银行测试】第三方支付测试点+异常测试点+接口响应超时_第2张图片

二、接口自动化项目实战

【银行测试】第三方支付测试点+异常测试点+接口响应超时_第3张图片

三、Web自动化项目实战

【银行测试】第三方支付测试点+异常测试点+接口响应超时_第4张图片

四、App自动化项目实战

【银行测试】第三方支付测试点+异常测试点+接口响应超时_第5张图片

五、一线大厂简历

【银行测试】第三方支付测试点+异常测试点+接口响应超时_第6张图片

六、测试开发DevOps体系

【银行测试】第三方支付测试点+异常测试点+接口响应超时_第7张图片

七、常用自动化测试工具

【银行测试】第三方支付测试点+异常测试点+接口响应超时_第8张图片

八、JMeter性能测试

【银行测试】第三方支付测试点+异常测试点+接口响应超时_第9张图片

九、总结(尾部小惊喜)

奋斗是人生的密码,拼搏是成功的秘籍;不畏困难,坚守初心,只要持之以恒,必将赢得人生的辉煌与荣耀!

人生如逆旅,每一步都要靠自己。唯有坚定信念,不懈追求,才能创造出属于自己的辉煌,成就梦想与追求!

成功不是偶然,而是需要不断的努力和坚持;迎难而上,奋勇向前,脚踏实地,只要有梦想,就能创造出属于自己的人生传奇!

你可能感兴趣的:(银行测试,软件测试,软件测试工程师,软件测试,软件测试工程师,银行测试,功能测试,接口测试,性能测试,自动化测试)