• 2
  • 6
分享
  • 银行测试支付测试——软件测试圈
  • 恬恬圈 2022-11-14 13:23:32 字数 1788 阅读 2333 收藏 6

一、支付分类

首先,根据不同维度,我们可以把支付分为不同的种类。如下图所示:

1.png

其次,一般来讲,线上支付分为两种消费模式。一种是直接支付金额,如淘宝,京东等购物网站,或是360云盘,视频会员等这种会员服务;另一种是充值购买金豆之类的虚拟币,在网站中使用虚拟币进行消费,比如游戏平台、花椒等产品。

二、测试方法

功能测试:

通过将边界值分析、等价类划分、错误推测、因果图等各种测试方法进行结合,整理出尽可能全面的测试案例,对支付功能及其相关功能进行测试,以确保整个支付流程以及涉及到支付流程的其他流程在任何情况下都能正常进行。

接口测试:

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

安全测试:

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

三、支付流程

常见的支付流程如下图所示:

2.png

在这里插入图片描述

3.1. 正常的发起一笔流量充值请求,检查点:

1)用户发过去的信息有携带key值

2)商户系统本地数据会留存一份用户的订单信息,并且会根据每笔订单信息生成一笔支付信息(同时留存到本地)

3)第三方支付成功,第三方有存支付订单信息

4)充值成功,用户的流量余额有对应增加

3.2. 异常用例

3.2.1 修改用户发过去的数据

1)产品ID 与价值不对等---->检查点:篡改数据和key,检查商户系统报错:key值不对或者是用户数据有误。

2)取消充值流量

3)重复发起流量充值请求

3.2.2 商户系统-第三方之间

1)密钥搞错-第三方报错,不接收密钥

2)提交商户系统里面不存在的订单/支付订单->第三方这里也是不能通过请求

3)篡改用户支付金额–>第三方也要检查

3.2.3 第三方–用户之间

1)支付密码错误/余额不足

2)取消支付

3)重复支付[对账—>处理退款]

四、测试点

支付流程测试点

1. 付款金额和应付金额是否一致

(比如:扫描的支付二维码,和显示的应支付金额是否一致)。歪个楼,题主曾经就踩过坑呀,页面显示的应付金额通过接口vip.product返回了,前端显示出来应付金额。但是,支付的二维码是通过接口vip.getPayUrl这个接口返回的,结果二维码扫出来的值和显示的应付金额不一样呀!!!最后问题是在于,vip.getPayUrl中取的是服务器缓存,导致二维码显示的金额跟前端展示的应付金额不一致。所以测试支付还是要走整个支付流程才行,从确认订单到最后的支付成功,任何一步都有可能有问题。

2.同一种支付方式,不同的支付入口

(比如:如下图所示,支付宝有两个支付入口。即可通过扫描二维码支付,也可以通过支付宝网页支付。在测试过程中,两个入口都要覆盖到。再歪个楼,题主在测试过程中踩过的坑二:通过支付宝网站支付,支付成功后,页面没有跳转回原服务套餐网页。最后的原因是服务配置的return_url不正确,导致支付后,没有跳回原页面。如果测试用例覆盖不到这种场景,那么将会造成非常严重的线上事故。

3.png

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

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

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

支付金额测试点

a) 正常金额支付

b) 金额的最小值:0.01

c) 无意义的值:0元

d) 最大金额:设置支付的最大金额

e) 银行卡或微信等,设置每日最大消费金额或者单笔最大消费金额

f) 银行卡或微信余额不足时支付

支付流程测试点

a) 正常完成支付流程

b) 调起订单后,取消订单

c) 支付中断后,继续支付

d) 支付中断后结束支付

e) 单笔订单单笔支付

f) 多订单合并支付

g) 持续点击支付,是否会出现多次购买

支付方式测试点

a) 支付宝支付

b) 支付宝网页支付

c) 微信支付

d) 银行卡支付

优惠券或折扣(有一定的优惠)

a) 支付中使用优惠券/折扣,应付金额和实际支付金额是否正确

b) 优惠券/折扣是否是必选,是否可以不选择折扣

c) 支付订单退款完成后,优惠券/折扣是否还能使用


作者:佚名

原文链接:https://blog.csdn.net/Y1730008223CONG/article/details/125061074

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 什么是自动化测试?自动化测试或测试自动化是一种软件测试技术,它使用自动化测试工具来执行测试用例套件。相反,手工测试是由坐在计算机前的人员仔细执行测试步骤来执行的。自动化测试软件还可以将测试数据输入被测系统,比较预期结果和实际结果,并生成详细的测试报告。软件测试自动化需要大量的金钱和资源投资。连续的开发周期将需要重复执行相同的测试套件。使用测试自动化工具,可以记录该测试套件并根据需要重复执行。一旦测试套件自动化,就无需人工干预。这提高了测试自动化的投资回报率。自动化的目标是减少手动运行的测试用例的次数,而不是完全消除手动测试。为什么要进行自动化测试?自动化测试是提高软件测试的有效性、测试范围和执...
            15 15 1125
            分享
          •   虽然苹果公司错误地将iPad Air中的M2芯片列为 10 核 GPU 而不是 9 核 GPU,但它在MacBook Air发布会上和营销材料中宣称的性能是准确的。在提供给9to5Mac的一份声明中,苹果表示,它所分享的有关 iPad Air 性能的细节始终是基于9核GPU测算出的。  我们正在更新 Apple.com 以更正 M2 iPad Air 的核心数量。M2 iPad Air 的所有性能均准确无误,并基于 9 核 GPU。  苹果公司的网站称,M2 芯片&quo...
            0 0 547
            分享
          •   摘要:有经验的跨境电商作业者们,应该对Selenium工具并不陌生,Selenium`是开源的自动化测试工具,它主要是用于Web 应用程序的自动化测试,不只局限于此,同时支持所有基于web 的管理任务自动化。它可以直接在浏览器中运行,模拟真实的用户操作环境。  但是Selenium也有难以绕过检测、无法使用的平台,如Cloudflare。但也并非完全是单向封锁的,本文将介绍如何借助合适的工具,完成S--C的跨越。  1、Cloudflare的概述  Cloudflare究竟是什么?  Cloudflare是一家总部位于美国的网络服务商,不少网站会使用Cloudflare服务商的检...
            0 0 2828
            分享
          •   1 JMeter日志概览  jmeter日志文件保存在bin目录中,名称为jmeter.log。我们可以在面板中直接察看日志,点击右上角黄色标志物可以打开日志面板,再次点击收起。  另外,JMeter可以很方便地设置日志输出级别:  通过这种方式修改日志级别,只是零时修改,不会改变配置文件中的值。当Jmeter重启后,又会恢复为默认的日志级别。  在Jmeter/bin 路径下打开 log4j2.xml文件,修改日志级别,这里修改该是永久性修改  通过修改Root level 值改变日志级别,该修改是永久性的。对Jmeter 的GUI页面运行脚本和命令模式运行脚本都会生效。  2...
            0 1 1196
            分享
          •   前言  测试过程中经常会遇到需要将本地的文件上传到远程服务器上,或者需要将服务器上的文件拉到本地进行操作,以前安静经常会用到xftp工具。今天安静介绍一种python库Paramiko,可以帮助我们通过代码的方式进行完成对远程服务器的上传和下载操作,也可以进行对远程服务器输入操作命令。  Paramiko  Paramiko属于python的一个第三方库,可以远程连接Linux服务器,进行通过python进行对Linux进行操作,可以实现进行对远程服务器进行下载和上传文件操作。  安装  既然是第三方库,我们可以通过pip进行安装:pip install paramik...
            0 0 871
            分享
      • 51testing软件测试圈微信