对于市场上的支付系统来说,原理其实都是类似的。 市场上大多数软件系统都涉及支付功能,会与第三方支付系统进行交互,跳转到相应的支付系统来实现其支付功能。 以下是进行此类测试之前需要考虑的因素:
1)了解什么是第三方支付接口以及如何实现直接的系统交互。 建议画流程图,反复熟悉系统实现流程。 只有了解流程,才能更好地评估涉及的风险,方便测试用例的设计;
2)除了主要功能外,还需要考虑异常场景;
3)有哪些风险? 如何避免呢?
测试过程中涉及的主要测试点总结如下:
测试过程中需要注意的主要测试点及异常场景:
①首先确保接口可以正常调用;
② 生成订单,支付完成后,会同步或异步重复回调,且仅有效一次;
③ 生成订单,复制订单号和金额,再次生成订单,设置断点,用第一次完成的订单号和金额替换现有订单号和金额,无法完成支付;
④ 生成订单且跳转第三方时修改金额时,金额无法到账,或者如果是游戏币充值,则到账被篡改金额对应的游戏币;
⑤ 异步通知被阻塞,同步有效,支付成功,同步可以正常到达;
⑥同步设置无效,异步设置有效,支付成功,异步支付可以正常接收;
⑦ 同步和异步设置均无效。 第三方支付完成后,在重发机制的时间范围内,异步设置有效。 到下次通知时间,即可正常通知账户(充值机制验证,如果商户收到第三方支付成功通知后,需要通知第三方支付已收到成功)通知,如果第三方支付收到商户的响应不ok或者超时,第三方支付会认为通知失败,会在指定时间内继续调用,通常会有一个时间或频率限制);
⑧ 验证支付订单是否完整、正确地存储在数据库中(例如:第三方订单号——方便与第三方对账和故障排除、订单金额、订单状态等);
⑨ 若用户购买实物商品,用户发起退货,需保证退货流程正常、资金能正常退回,并考虑并发情况验证,确保安全;
⑩ 如果用户购买虚拟商品,如话费、油卡等,只有在发货失败时才能发起退货,请注意核实;
常见陷阱
当用户购买100元游戏币时,他到第三方支付重定向将金额从100元更改为0.01元。 结果他花了0.01元充值了100元游戏币。 无法验证订单金额导致此类后果,损失比较大。 在测试过程中,大家一定要注意对服务器端进行验证,支付过程中任何数据的篡改都要进行验证。
当同步和异步通知同时存在时,未收到异步通知(第三方支付成功后台通知),导致部分用户无法充值,引发客户投诉。
当同步和异步共存时,必须分别检查同步和异步,确保两者都能正常接收。
我们做的互联网产品大部分都涉及到第三方支付,所以支付功能一定很重要。 作为互联网产品测试的一员,我们必须保证支付安全。
如何规避支付风险?
为了进一步增强支付功能的安全性,还可以适当增加一些监控机制。
例如:
可以使用运行批次来比较订单与第三方订单。 当我们已完成支付的订单在数据库中发现异常且通过第三方订单查询接口查询到相同订单金额时,可以通过报警通知来及时检测并处理。 ,即使出现异常情况,所创建的订单也会被终止,从而最大限度地减少损失。
2、支付平台如何测试各种渠道和银行渠道?
作为支付平台,接入快钱、易宝或者直销银行等多种渠道,内部产品流程是自己的。
业界有没有更好的测试方法来测试各个渠道及其支持的银行渠道? 作为一个产品,我申请了十几张银行卡,方便测试,但是QA和开发都不愿意这么做。 我应该怎么办?
答:对于支付平台来说,支付渠道相关的测试大致可以分为:测试支付渠道功能和测试支付产品功能。
1)支付通道功能测试
主要测试与银行、银联、其他外部支付渠道的功能,以及实名认证等非支付功能。
一般情况下,支付通道接口仅对内部第三方支付开放,支付通道不会直接暴露给外部商户。 外部商户以支付产品的形式打包提供。
支付渠道是第三方支付公司最基本的能力。 由于涉及到调用各种外部接口和服务,因此每个渠道提供的测试环境、准生产环境和生产环境要求都不同。 同时,第三方支付本身也需要维护相应的测试环境、准生产环境、不同版本的生产环境,要做完整的测试确实很麻烦。
测试方法:
内部开发一套统一的测试网关(接口通信协议是否为http、xml等,一般统一为http以方便测试),统一各个通道的测试入口,并为不同通道维护相应的接口参数模板,允许测试人员快速输入并提交原始付款请求。
提交到支付通道后,如果支付通道维护有测试环境或准测试环境,您可以直接使用提供的测试账号完成对支付通道测试的实际调用。
如果没有提供,则只能通过问题中的不同渠道开通银行卡、公司账户等进行测试。
在这种情况下,一般采用最小限度进行测试。 测试卡的申请、测试费用的来源、日常管理等可以根据各企业的实际情况制定相应的政策。 最好由公司承担各种费用,简化相关流程,并有相应的激励措施。 例如,不必支付此类费用。 报销流程极其漫长。
测试目的:
确保支付通道功能的正确性、完整性、可用性,验证通道是否畅通、功能正常。
一个典型的例子是,在原有的支付通道上上线了新功能,生产环境测试发现存在问题。 在生产环境中运行完整的流程是极其麻烦的。 可以使用测试网关测试或者稳定版的准生产环境来测试,快速定位就是上线。 新版本是否影响生成功能、支付渠道问题、生产环境网络问题?
2)支付产品功能测试
这里的支付产品可以是第三方支付内部的基础产品,也可以是向外部商户提供的产品或接口。
在这种情况下,测试的重点不是支付通道的基本功能,而是支付产品的核心功能。 对于支付产品来说,可以假设支付通道是一个黑匣子,黑匣子提供的服务是可靠、稳定的。
测试方法:
内部开发一套支付通道的模拟网关,用于模拟各种支付通道的各种接口功能,并根据支付请求返回相应的模拟消息。
支付请求不需要实际提交到外部支付渠道。 一般情况下,模拟网关和上述测试网关会统一开发和部署。
以下是我整理的2023年最全面的软件测试工程师学习知识架构体系图。
1.从入门到编程再到精通
2. 接口自动化项目的实际实施
3.Web自动化项目实战
4、App自动化项目实际实施
5、一线厂商简历
6. 测试开发系统
7.常用自动化测试工具
八、性能测试
9.总结(最后有小惊喜)
抓住梦想的翅膀,放开灵魂的火焰,不畏艰难,勇敢前行。 无论何时何地,只要坚守信念,追求卓越,终将成就非凡的人生传奇。
勇敢前行,迎接挑战的召唤。 只有放下彷徨和迷茫,努力奋斗,才能获得真正的自由和成就。 只有在每一次的努力中超越自己,才能创造人生的辉煌篇章。
漫漫征途上,永不放弃,永不放弃,坚守初心,追求卓越。 只有勇敢迎接挑战,超越自己的极限,才能实现坚定不移的梦想。 只要努力,成功就在所难免。