2023最新【支付测试】

news/2024/7/7 22:17:08

引言:如今,随着非现金支付手段的不断推广和应用,“非现金社会”正在形成。非现金支付已成为日常生活中不可或缺的伙伴。那么,对于互联网产品来说,支付也是涉及到公司收入的一个重大环节。对于我们测试人员,支付测试也是测试中的重要一环。下面就结合工作中遇到的问题,来给大家介绍一下常用的支付测试。

支付分类

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

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

测试方法

功能测试:

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

接口测试:

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

安全测试:

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

支付流程

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

测试点

支付流程测试点

  1. 付款金额和应付金额是否一致(比如:扫描的支付二维码,和显示的应支付金额是否一致)。歪个楼,题主曾经就踩过坑呀,页面显示的应付金额通过接口vip.product返回了,前端显示出来应付金额。但是,支付的二维码是通过接口vip.getPayUrl这个接口返回的,结果二维码扫出来的值和显示的应付金额不一样呀!!!最后问题是在于,vip.getPayUrl中取的是服务器缓存,导致二维码显示的金额跟前端展示的应付金额不一致。所以测试支付还是要走整个支付流程才行,从确认订单到最后的支付成功,任何一步都有可能有问题。1. 同一种支付方式,不同的支付入口(比如:如下图所示,支付宝有两个支付入口。即可通过扫描二维码支付,也可以通过支付宝网页支付。在测试过程中,两个入口都要覆盖到。再歪个楼,题主在测试过程中踩过的坑二:通过支付宝网站支付,支付成功后,页面没有跳转回原服务套餐网页。最后的原因是服务配置的return_url不正确,导致支付后,没有跳回原页面。如果测试用例覆盖不到这种场景,那么将会造成非常严重的线上事故。
  2. 支付成功后,产品购买是否成功

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

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

支付金额测试点

a) 正常金额支付

b) 金额的最小值:0.01

c) 无意义的值:0元

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

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

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

支付流程测试点

a) 正常完成支付流程

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

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

d) 支付中断后结束支付

e) 单笔订单单笔支付

f) 多订单合并支付

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

支付方式测试点

a) 支付宝支付

b) 支付宝网页支付

c) 微信支付

d) 银行卡支付

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

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

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

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

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 


http://lihuaxi.xjx100.cn/news/1761438.html

相关文章

O - Happy Matt Friends

思路: (1)条件及问题:给定N个数,找到异或值大于等于M的总方案数; (2)分析: 可以dfs()枚举,超时;考虑dp,dp[i][j]描述在…

shell 随机数

方法一&#xff1a;使用/dev/urandom方法二&#xff1a;使用date %s1.随机生成一串数字2.随机生成一串小写字母3.随机生成数字与字母的组合 方法三&#xff1a;使用openssl rand 方法一&#xff1a;使用/dev/urandom [rootlocalhost shell]# tr -dc "0-9" < /dev…

【uniapp】解决在H5谷歌浏览器下 u-input 标签 设置只读后,click事件不生效

【问题描述】 谷歌浏览器更新后&#xff0c;h5模式下原本的input外层view中的click事件不触发了?? 但是更换浏览器后就可以&#xff0c;打包app也是正常可以触发的&#xff0c;本来是没打算兼容h5&#xff0c;既然遇到了就记录一下~ 【解决办法】 使u–input里写上readonly&…

将json数据导入到ES集群——解决方案对比填坑日记

需求 将写好的json数据。导入到es集群 数据说明 文件JSON数据&#xff0c;一行一个JSON。 {"id":"d2716ae8fba4e026c4bd9445c3f49e2c","lang":"zh","title":"吉美旅馆","content":"吉美..."}…

[CISCN2019 华北赛区 Day2 Web1]Hack World1

提示 基于布尔的盲注使用python脚本跑 这里已经提示flag在flag表在flag字段 首先输入1 2都能有回显 每当这个时候第一想到的都应该是基于布尔的盲注是否能使用 尝试fuzz 通过fuzz大概知道后续思路 应为过滤的比较全面所以放弃联合查询 报错查询 预设置 使用基于布尔的盲注…

北京皮肤性病科主任谭巍揭示:脖子赘生物形成的原因

在日常生活中&#xff0c;我们可能会注意到自己的脖子或身体其他部位出现一些赘生物。这些赘生物可能是良性的&#xff0c;也可能是恶性的&#xff0c;因此了解其可能的原因、进行正确的诊断以及选择合适的治疗方法至关重要。为了解答这个问题&#xff0c;劲松中西医医院皮肤性…

HarmonyOS应用开发Tabs组件的使用

Entry Component struct TabsPage {State currentIndex: number 0;private tabsController: TabsController new TabsController();private controller: TabsController new TabsController()/*** 自定义TabBar* param title* param targetIndex* param selectedImg* param …

element分页

获取数据信息&#xff0c;这是表格和分页内容 <el-col :span"24"><div class"grid-content bg-purple-dark"><el-table :data"tableData" stripe style"width: 100%"><el-table-column prop"xuhao" l…