一种支付超时告警测试方法及其系统与流程

文档序号:32968316发布日期:2023-01-17 19:49阅读:62来源:国知局
一种支付超时告警测试方法及其系统与流程

1.本发明涉及计算机通讯技术领域,特别是一种支付超时告警测试方法及其系统。


背景技术:

2.一个产品的订单支付涉及到产品自身和多个支付相关组件,以及第三方支付平台,多方之间彼此独立而又互相依赖,当出现支付超时时,用户在第三方支付平台已完成付费操作,金额已被扣除,但产品前台订单还是待支付状态,严重损害用户利益,产品方无法第一时间知晓问题,排查问题过程中流程繁杂。
3.现有技术中出现支付超时情况时,人工测试存在以下缺点:
4.(1)无法快速定位异常环节,需要涉及到的多个支付相关组件方和产品方开发对各个支付流程中各个环节进行异常排查,浪费大量的时间和人力。
5.(2)问题响应慢,出现问题无法第一时间被知晓,总是要等待外部反馈了才开始排查,损害用户利益。
6.(3)排查的流程每次都相同,同样的排查步骤人工重复执行,效率低下,浪费时间。


技术实现要素:

7.为克服上述问题,本发明的目的是提供一种支付超时告警测试方法,能够自动化初步排查订单超时问题,锁定异常组件,避免了多个组件人员排查的时间和人力投入。
8.本发明采用以下方案实现:一种支付超时告警测试方法,所述方法包括如下步骤:
9.步骤s1、本地创建订单管理数据库,创建临时订单表和历史超时订单表,设置历史超时订单表的属性订单编号,超时次数,各组件支付回调值;每次测试任务执行前清空临时订单表数据;
10.步骤s2、设置一测试任务,将测试任务部署在持续集成工具jenkins上,设置构建频率为一预设时间,持续集成构建测试任务,监控线上订单支付状况;
11.步骤s3、测试任务完成后,将测试的告警消息进行推送,操作人员根据推送消息中的异常组件回调值来准确定位导致支付超时的异常环节。
12.进一步的,所述测试任务为:获取线上数据库第三方支付平台中已付费,且支付状态为待支付的订单到本地数据库,存放到所述临时订单表,本地的历史超时订单表读取临时订单表中原超时订单和新增的超时订单信息,对订单超时次数+1,筛选超时次数大于1的订单,依次校验第三方支付平台和各个组件的支付回调值,确定支付异常环节。
13.进一步的,所述测试任务进一步具体包括:通过python+mysql语言编写脚本从线上获取第三方支付平台的mysql数据库的订单表,通过查询条件获取第三方支付平台支付回调正常,且支付状态为待支付的订单记录,写入到本地临时订单表;
14.根据本地历史超时订单表中的订单编号判断,如果本次获取的订单已在历史超时订单表中,则更新本地历史超时订单表中对应订单信息,超时次数累加1;如果本次获取的订单不在历史超时订单表,则新增对应订单信息到历史超时订单表,超时次数累加1;
15.从历史超时订单表中筛选出超时次数大于1的订单,其中,超时时间大于所述预设时间。
16.进一步的,所述依次校验第三方支付平台和各个组件的支付回调值,确定支付异常环节,具体为:根据支付流程中组件调用逻辑顺序进行校验:创建订单后,订单状态默认是待支付状态,用户完成支付操作后,第三方支付平台传递支付回调结果给支付中心组件,支付中心组件传递支付回调值给钱包组件,钱包组件传递支付回调值给产品服务端,产品服务端查询订单,订单状态更新;则支付中心组件查询订单,查看接口返回的tradestatus字段,当tradestatus=trade_success说明第三方支付平台回调正常;钱包组件查询订单,查看接口返回的订单状态code字段,如果code=80010000表示支付成功,说明支付中心组件返回的支付回调正常;服务端查询订单,查看接口返回订单状态status字段,当status=1表示支付成功,说明钱包组件返回的支付回调值正常;依此来判断导致支付超时的源头异常组件或第三方支付平台。
17.本发明还提供了一种支付超时告警测试系统,所述系统包括:测试准备模块、执行测试模块、测试结果收集模块;
18.所述测试准备模块,用于在本地创建订单管理数据库,创建临时订单表和历史超时订单表,设置历史超时订单表的属性订单编号,超时次数,各组件支付回调值;每次测试任务执行前清空临时订单表数据;
19.所述执行测试模块,设置一测试任务,将测试任务部署在持续集成工具jenkins上,设置构建频率为一预设时间,持续集成构建测试任务,监控线上订单支付状况;
20.所述测试结果收集模块,用于测试任务完成后,将测试的告警消息进行推送,操作人员根据推送消息中的异常组件回调值来准确定位导致支付超时的异常环节。
21.进一步的,所述测试任务为:获取线上数据库第三方支付平台中已付费,且支付状态为待支付的订单到本地数据库,存放到所述临时订单表,本地的历史超时订单表读取临时订单表中原超时订单和新增的超时订单信息,对订单超时次数+1,筛选超时次数大于1的订单,依次校验第三方支付平台和各个组件的支付回调值,确定支付异常环节。
22.进一步的,所述测试任务进一步具体包括:通过python+mysql语言编写脚本从线上获取第三方支付平台的mysql数据库的订单表,通过查询条件获取第三方支付平台支付回调正常,且支付状态为待支付的订单记录,写入到本地临时订单表;
23.根据本地历史超时订单表中的订单编号判断,如果本次获取的订单已在历史超时订单表中,则更新本地历史超时订单表中对应订单信息,超时次数累加1;如果本次获取的订单不在历史超时订单表,则新增对应订单信息到历史超时订单表,超时次数累加1;
24.从历史超时订单表中筛选出超时次数大于1的订单,其中,超时时间大于所述预设时间。
25.进一步的,所述依次校验第三方支付平台和各个组件的支付回调值,确定支付异常环节,具体为:根据支付流程中组件调用逻辑顺序进行校验:创建订单后,订单状态默认是待支付状态,用户完成支付操作后,第三方支付平台传递支付回调结果给支付中心组件,支付中心组件传递支付回调值给钱包组件,钱包组件传递支付回调值给产品服务端,产品服务端查询订单,订单状态更新;则支付中心组件查询订单,查看接口返回的tradestatus字段,当tradestatus=trade_success说明第三方支付平台回调正常;钱包组件查询订单,
查看接口返回的订单状态code字段,如果code=80010000表示支付成功,说明支付中心组件返回的支付回调正常;服务端查询订单,查看接口返回订单状态status字段,当status=1表示支付成功,说明钱包组件返回的支付回调值正常;依此来判断导致支付超时的源头异常组件或第三方支付平台。
26.本发明的有益效果在于:1.该测试方法能够自动化初步排查订单超时问题,锁定异常组件,避免了多个组件人员排查的时间和人力投入。2.自动化监控支付超时能够在第一时间发现问题,及时响应问题,减少用户损失,保持系统的可信度。3.自动化监控更加的智能化,将重复的人工排查流程方法进行简化,节约时间。
附图说明
27.图1是本发明的方法流程示意图。
28.图2是本发明的一实施例的流程示意图。
29.图3是本发明的一实施例中测试任务的具体流程示意图。
30.图4是本发明的系统原理框图。
具体实施方式
31.下面结合附图对本发明做进一步说明。
32.请参阅图1所示,本发明的一种支付超时告警测试方法,所述方法包括如下步骤:
33.步骤s1、本地创建订单管理数据库,创建临时订单表和历史超时订单表,设置历史超时订单表的属性订单编号,超时次数,各组件支付回调值;每次测试任务执行前清空临时订单表数据;
34.步骤s2、设置一测试任务,将测试任务部署在持续集成工具jenkins上,设置构建频率为一预设时间,持续集成构建测试任务,监控线上订单支付状况;
35.步骤s3、测试任务完成后,将测试的告警消息进行推送,操作人员根据推送消息中的异常组件回调值来准确定位导致支付超时的异常环节。
36.如图2所示,是本发明的一实施例的流程示意图。本发明的一种支付超时告警测试方法,测试前准备:
37.1.在本地(即客户端本地)创建订单管理的mysql数据库,创建临时订单表,用来存放本次测试执行从项目线上(服务端线上)环境数据库拉取的超时订单,创建历史超时订单表,存放历史超时订单详情,历史超时订单表的属性有订单编号,超时次数,第三方支付平台返回的支付回调值,组件包括:支付中心组件和钱包组件,支付中心组件回调值,钱包组件支付回调值。
38.2.每次测试任务执行前清空本地临时订单表数据。
39.如图3所示,测试执行:
40.1.将测试任务部署在持续集成工具jenkins上,设置构建频率为预设时间,该预设时间为2-3分钟,持续集成构建测试任务,监控线上订单支付状况;
41.2.通过python+mysql语言编写脚本从线上获取第三方支付平台的mysql数据库的订单表,通过查询条件获取第三方支付平台支付回调正常,且支付状态为待支付的订单记录,写入到本地临时订单表;
42.3.根据本地历史超时订单表中的订单编号判断,如果本次获取的订单已在本地历史超时订单表中,则更新本地历史超时订单表中对应订单信息,超时次数累加1;如果本次获取的订单不在本地历史超时订单表,则新增对应订单信息到本地历史超时订单表,超时次数累加1。
43.4.从本地历史超时订单表中筛选出超时次数大于1的订单,即:超时时间大于2分钟。
44.5.根据支付流程中组件调用逻辑顺序:创建订单后,订单状态默认是待支付状态,前端展示等待支付,用户完成支付操作后,第三方支付平台传递支付回调结果给支付中心组件,支付中心组件传递支付回调值给钱包组件,钱包组件传递支付回调值给产品服务端,服务端查询订单,订单状态更新。因此,支付中心组件查询订单,查看接口返回的tradestatus字段,当tradestatus=trade_success说明第三方支付平台回调正常;钱包组件查询订单,查看接口返回的订单状态code字段,如果code=80010000表示支付成功,说明支付中心组件返回的支付回调正常;服务端查询订单,查看接口返回订单状态status字段,当status=1表示支付成功,说明钱包组件返回的支付回调值正常。依此判断导致支付超时的是源头异常组件或是第三方支付平台。
45.6.通过通讯工具(如微信、qq、邮箱)消息告警通知对应的组件负责人,消息内容包含订单编号和异常组件名称,异常组件支付回调值。
46.测试结果收集:
47.完成告警消息推送后,可以及时得到具体的超时订单编号,异常组件名称,异常组件支付回调值,根据推送消息中的异常组件回调值更加精准的定位导致支付超时的异常环节,以此作为切入点再次深入排查bug,减少不必要的排查流程。
48.所述测试任务进一步具体包括:通过python+mysql语言编写脚本从线上获取第三方支付平台的mysql数据库的订单表,通过查询条件获取第三方支付平台支付回调正常,且支付状态为待支付的订单记录,写入到本地临时订单表;
49.根据本地历史超时订单表中的订单编号判断,如果本次获取的订单已在历史超时订单表中,则更新本地历史超时订单表中对应订单信息,超时次数累加1;如果本次获取的订单不在历史超时订单表,则新增对应订单信息到历史超时订单表,超时次数累加1;
50.从历史超时订单表中筛选出超时次数大于1的订单,其中,超时时间大于所述预设时间。
51.如图4所示,本发明还提供了一种支付超时告警测试系统,所述系统包括:测试准备模块、执行测试模块、测试结果收集模块;
52.所述测试准备模块,用于在本地创建订单管理数据库,创建临时订单表和历史超时订单表,设置历史超时订单表的属性订单编号,超时次数,各组件支付回调值;每次测试任务执行前清空临时订单表数据;
53.所述执行测试模块,设置一测试任务,将测试任务部署在持续集成工具jenkins上,设置构建频率为一预设时间,持续集成构建测试任务,监控线上订单支付状况;所述测试任务为:获取线上数据库第三方支付平台中已付费,且支付状态为待支付的订单到本地数据库,存放到所述临时订单表,本地的历史超时订单表读取临时订单表中原超时订单和新增的超时订单信息,对订单超时次数+1,筛选超时次数大于1的订单,依次校验第三方支
付平台和各个组件的支付回调值,确定支付异常环节。
54.所述测试结果收集模块,用于测试任务完成后,将测试的告警消息进行推送,操作人员根据推送消息中的异常组件回调值来准确定位导致支付超时的异常环节。
55.所述测试任务进一步具体包括:通过python+mysql语言编写脚本从线上获取第三方支付平台的mysql数据库的订单表,通过查询条件获取第三方支付平台支付回调正常,且支付状态为待支付的订单记录,写入到本地临时订单表;
56.根据本地历史超时订单表中的订单编号判断,如果本次获取的订单已在历史超时订单表中,则更新本地历史超时订单表中对应订单信息,超时次数累加1;如果本次获取的订单不在历史超时订单表,则新增对应订单信息到历史超时订单表,超时次数累加1;
57.从历史超时订单表中筛选出超时次数大于1的订单,其中,超时时间大于所述预设时间。
58.所述依次校验第三方支付平台和各个组件的支付回调值,确定支付异常环节,具体为:根据支付流程中组件调用逻辑顺序进行校验:创建订单后,订单状态默认是待支付状态,用户完成支付操作后,第三方支付平台传递支付回调结果给支付中心组件,支付中心组件传递支付回调值给钱包组件,钱包组件传递支付回调值给产品服务端,产品服务端查询订单,订单状态更新;则支付中心组件查询订单,查看接口返回的tradestatus字段,当tradestatus=trade_success说明第三方支付平台回调正常;钱包组件查询订单,查看接口返回的订单状态code字段,如果code=80010000表示支付成功,说明支付中心组件返回的支付回调正常;服务端查询订单,查看接口返回订单状态status字段,当status=1表示支付成功,说明钱包组件返回的支付回调值正常;依此来判断导致支付超时的源头异常组件或第三方支付平台。
59.以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1