CN116383052A - 批处理任务的自动化测试方法、装置、设备及存储介质 - Google Patents
批处理任务的自动化测试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116383052A CN116383052A CN202310318418.6A CN202310318418A CN116383052A CN 116383052 A CN116383052 A CN 116383052A CN 202310318418 A CN202310318418 A CN 202310318418A CN 116383052 A CN116383052 A CN 116383052A
- Authority
- CN
- China
- Prior art keywords
- task
- running
- batch
- data
- subtask
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 106
- 238000012360 testing method Methods 0.000 title claims abstract description 83
- 238000003860 storage Methods 0.000 title claims abstract description 21
- 238000013515 script Methods 0.000 claims abstract description 84
- 238000000034 method Methods 0.000 claims abstract description 44
- 238000012795 verification Methods 0.000 claims abstract description 24
- 238000002360 preparation method Methods 0.000 claims abstract description 19
- 230000015654 memory Effects 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012544 monitoring process Methods 0.000 claims description 12
- 238000004140 cleaning Methods 0.000 claims description 8
- 238000010200 validation analysis Methods 0.000 claims 1
- 238000010998 test method Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 13
- 238000012546 transfer Methods 0.000 description 9
- 238000007689 inspection Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000010923 batch production Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本说明书涉及软件自动化测试技术领域,提供了一种批处理任务的自动化测试方法、装置、设备及存储介质,该方法包括:调用数据准备脚本,以清理跑批数据库表,获取业务交易数据并写入所述跑批数据库表;调用流程调度脚本,以从配置文件中读取跑批配置参数,根据所述跑批配置参数更新任务表,并根据所述业务交易数据和所述任务表进行跑批处理;调用任务检查脚本,以对所述跑批处理的结果数据进行验证;根据所述验证的验证结果生成测试报告。通过本说明书实施例可以提高批处理任务的自动化测试效率和准确性。
Description
技术领域
本说明书涉及软件自动化测试技术领域,尤其是涉及一种批处理任务的自动化测试方法、装置、设备及存储介质。
背景技术
改造批处理系统的一个任务时,通常需回归其他的关联流程及任务,在改造后的系统上线前,需要进行测试。目前已存在的针对批处理系统的自动化测试方案,一般侧重于批处理的自动化调度过程,而数据准备、结果验证等相关工作依然采用人工方式实现。然而,人工方式的工作量大、效率较低,而且不同人员对系统的熟悉程度不同,导致测试结果的验证易存在偏差,核对数据结果时可能会遗漏一些测试场景。因此,如何提高批处理任务的自动化测试效率和准确性,已成为目前亟待解决的技术问题。
发明内容
本说明书实施例的目的在于提供一种批处理任务的自动化测试方法、装置、设备及存储介质,以提高批处理任务的自动化测试效率和准确性。
为达到上述目的,一方面,本说明书实施例提供了一种批处理任务的自动化测试方法,包括:
调用数据准备脚本,以清理跑批数据库表,获取业务交易数据并写入所述跑批数据库表;
调用流程调度脚本,以从配置文件中读取跑批配置参数,根据所述跑批配置参数更新任务表,并根据所述业务交易数据和所述任务表进行跑批处理;
调用任务检查脚本,以对所述跑批处理的结果数据进行验证;
根据所述验证的验证结果生成测试报告。
本说明书实施例的批处理任务的自动化测试方法中,所述获取业务交易数据并写入所述跑批数据库表,包括:
检查是否存在预埋业务交易数据;
若存在预埋业务交易数据,则将所述预埋业务交易数据写入跑批数据库表;
若不存在预埋业务交易数据,则从指定存储路径的文件中读取业务交易数据并写入跑批数据库表。
本说明书实施例的批处理任务的自动化测试方法中,所述跑批配置参数包括:
目标流程号;所述目标流程号用于表征参与跑批的业务类型;
预期状态。
本说明书实施例的批处理任务的自动化测试方法中,根据所述跑批配置参数更新任务表,包括:
清理任务日志信息和任务监控表;
将流程调度表中,与所述目标流程号对应的任务号的跑批日期变更为执行脚本时输入的目标跑批日期;
根据所述目标流程号,从所述流程调度表中抽取所述目标流程号对应的任务号及其目标跑批日期;
根据所述目标流程号,从定时状态控制表中抽取所述目标流程号的定时参数;所述定时参数包括定时启停标志和执行时间;
根据所述任务号,从任务配置表中抽取所述任务号下每个子任务的子任务号、子任务名称、处理优先级、处理数据量,以及单个进程每次提交的数据量、进程标识;
将从所述流程调度表、所述定时状态控制表和所述任务配置表中抽取的数据插入至任务表。
本说明书实施例的批处理任务的自动化测试方法中,根据所述业务交易数据和所述任务表进行跑批处理,包括:
以所述业务交易数据为输入,按照所述处理优先级逐个调起所述任务表中的每个任务进行跑批处理;
检查当前子任务的执行状态是否为预期状态;所述预期状态为执行成功;
在当前子任务的执行状态为预期状态时,根据当前子任务的子任务号查询任务检查脚本集合中,是否存在与当前子任务对应的任务检查脚本;
若存在与当前子任务对应的任务检查脚本,则触发调用该任务检查脚本。
本说明书实施例的批处理任务的自动化测试方法中,所述任务表中每个子任务的执行状态被初始化为成功状态;
对应的,在按照所述处理优先级逐个调起所述任务表中的每个任务进行跑批处理的过程中,对于每个即将在本次调起的子任务:
在起调前,先将该子任务从所述任务表中删除,再重新将该子任务插入所述任务表,并将该子任务的执行状态变更为待执行状态;
待执行完该子任务后,再在所述任务监控表中同步变更该子任务的执行状态。
本说明书实施例的批处理任务的自动化测试方法中,对所述跑批处理的结果数据进行验证,包括:
调用该任务检查脚本从所述跑批数据库表获取所述子任务的结果数据,并判断所述子任务的结果数据是否错误;
若所述子任务的结果数据错误,则记录错误数据对应的业务交易数据的主键字段;
若所述子任务的结果数据无误,则触发下一个子任务的跑批处理。
本说明书实施例的批处理任务的自动化测试方法中,根据所述验证的验证结果生成测试报告,包括:
在完成所述目标流程号对应的所有子任务的跑批处理后,根据所述目标流程号对应的所有子任务的结果数据生成测试报告。
另一方面,本说明书实施例还提供了一种批处理任务的自动化测试装置,包括:
第一调用模块,用于调用数据准备脚本,以清理跑批数据库表,获取业务交易数据并写入所述跑批数据库表;
第二调用模块,用于调用流程调度脚本,以从配置文件中读取跑批配置参数,根据所述跑批配置参数更新任务表,并根据所述业务交易数据和所述任务表进行跑批处理;
第三调用模块,用于调用任务检查脚本,以对所述跑批处理的结果数据进行验证;
报告生成模块,用于根据所述验证的验证结果生成测试报告。
另一方面,本说明书实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法的指令。
另一方面,本说明书实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
另一方面,本说明书实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中,服务端内的壳脚本可以通过调用数据准备脚本,实现清理跑批数据库表,获取业务交易数据并写入跑批数据库表;通过调用流程调度脚本,实现从配置文件中读取跑批配置参数,根据跑批配置参数更新任务表,并根据业务交易数据和任务表进行跑批处理;通过调用任务检查脚本,实现对跑批处理的结果数据进行验证;最后根据验证的验证结果生成测试报告;从而实现批处理系统测试场景下的数据准备、任务调度、任务结果检查、报告生成的全流程自动化,从而提高了批处理任务的自动化测试效率和准确性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了本说明书一些实施例中批处理任务的自动化测试系统的示意图;
图2示出了本说明书一些实施例中批处理任务的自动化测试方法的流程图;
图3示出了本说明书一些实施例中数据准备脚本的逻辑流程图;
图4示出了本说明书一些实施例中流程调度脚本根据跑批配置参数更新任务表的流程图;
图5示出了本说明书一些实施例中流程调度脚本根据业务交易数据和任务表进行跑批处理的流程图;
图6示出了本说明书一些实施例中任务检查脚本的逻辑流程图;
图7示出了本说明书一些实施例中的测试脚本的示意图;
图8示出了本说明书一些实施例中批处理任务的自动化测试装置的结构框图;
图9示出了本说明书一些实施例中计算机设备的结构框图。
【附图标记说明】
10、数据源;
20、服务端;
30、用户端
81、第一调用模块;
82、第二调用模块;
83、第三调用模块;
84、报告生成模块;
902、计算机设备;
904、处理器;
906、存储器;
908、驱动机构;
910、输入/输出接口;
912、输入设备;
914、输出设备;
916、呈现设备;
918、图形用户接口;
920、网络接口;
922、通信链路;
924、通信总线。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
本说明书实施例涉及批处理系统的自动化测试技术,可以应用于任何批处理系统(例如银行卡业务清算平台等)上线前的测试,以提高批处理任务的自动化测试效率和准确性。
图1中示出了本说明书一些实施例的批处理任务的自动化测试系统,该自动化测试系统可以包括数据源10、服务端20和用户端30。数据源10可以为服务端20提供用于测试的业务交易数据。服务端20内配置有批处理任务的自动化测试装置,该自动化测试装置配置有壳(shell)脚本、数据准备脚本、流程调度脚本和一个或多个任务检查脚本等测试脚本(如图7所示);服务端20可以调用数据准备脚本,以清理跑批数据库表,获取业务交易数据并写入所述跑批数据库表;调用流程调度脚本,以从配置文件中读取跑批配置参数,根据所述跑批配置参数更新任务表,并根据所述业务交易数据和所述任务表进行跑批处理;调用任务检查脚本,以对所述跑批处理的结果数据进行验证;
并根据所述验证的验证结果生成测试报告,并可以将测试报告发送给用户端30;从而实现批处理系统的全流程自动化测试。
在一些实施例中,数据源10为可以获取或存储业务交易数据的电子设备,或运行于上述电子设备中的软件。
在一些实施例中,服务端20可以为具有运算和网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理和网络交互提供业务逻辑的软件。
在一些实施例中,所述用户端30可以为自助终端设备、移动终端(即智能手机)、显示器、台式电脑、平板电脑、笔记本电脑、数字助理或智能可穿戴设备等。其中,智能可穿戴设备可以包括智能手环、智能手表、智能眼镜或智能头盔等。当然,所述用户端并不限于上述具有一定实体的电子设备,其还可以为运行于上述电子设备中的软件。
此外,需要说明的是,图1所示的仅仅是本说明书提供的一种应用环境,在实际应用中,所述用户端可以为多个,所述服务端也可以为多个,本说明书不做限制。
本说明书实施例提供了一种批处理任务的自动化测试方法,可以应用于上述的服务端侧。参考图2所示,在一些实施例中,批处理任务的自动化测试方法可以包括以下步骤:
步骤201、调用数据准备脚本,以清理跑批数据库表,获取业务交易数据并写入所述跑批数据库表。
步骤202、调用流程调度脚本,以从配置文件中读取跑批配置参数,根据所述跑批配置参数更新任务表,并根据所述业务交易数据和所述任务表进行跑批处理。
步骤203、调用任务检查脚本,以对所述跑批处理的结果数据进行验证。
步骤204、根据所述验证的验证结果生成测试报告。
本说明书实施例的批处理任务的自动化测试方法中,服务端内的壳脚本可以通过调用数据准备脚本,实现清理跑批数据库表,获取业务交易数据并写入跑批数据库表;通过调用流程调度脚本,实现从配置文件中读取跑批配置参数,根据跑批配置参数更新任务表,并根据业务交易数据和任务表进行跑批处理;通过调用任务检查脚本,实现对跑批处理的结果数据进行验证;最后根据验证的验证结果生成测试报告;从而实现批处理系统测试场景下的数据准备、任务调度、任务结果检查、报告生成的全流程自动化,从而提高了批处理任务的自动化测试效率和准确性。
数据准备脚本用于为自动化测试进行旧数据清理和新数据准备,服务端内的壳脚本在启动时可以调用数据准备脚本,以清理跑批数据库表,获取业务交易数据并写入跑批数据库表。结合图3所示,在一些实施例中,数据准备脚本的处理逻辑可以包括如步骤:
步骤301、清理跑批数据库表。
跑批数据库表用于存储用于测试的业务交易数据(即测试输入数据)以及跑批结果数据(即测试输出数据),为了避免测试数据重复导致的任务失败,可以在跑批前对跑批数据库表进行数据清理。例如,在一示例性实施例中,以银行卡业务清算平台为例,银行卡业务清算平台是一种中后台系统,在进行不同的批处理流程时,会有表到表(table totable)的流转,A表到B表、B表到C表、C表到D表等等;当流程进行批处理时,若跑批日之前已经跑过批次,重复跑批时,任务会失败。为了避免这种情况,自动化测试时先进行该流程的相关表格的数据清理。
步骤302、检查是否存在预埋业务交易数据;若存在预埋业务交易数据,则执行步骤303;否则,执行步骤304。
在一些实施例中,业务交易数据可以为真实业务交易数据,例如在应用服务内预埋一些监测点,当用户的行为触发了监测条件后,应用会向服务端发送相应的监测数据(即预埋业务交易数据);使得服务端能够检查是否存在预埋业务交易数据。例如,在一示例性实施例中,以银行卡业务清算平台为例,在银行卡业务清算平台的上游系统预埋监测点的基础上,该上游系统可以适时将交易流水以文件形式推送给银行卡业务清算平台,以进行跑批处理(例如对账、清分等处理)。
步骤303、将所述预埋业务交易数据写入跑批数据库表。
步骤304、从指定存储路径的文件中读取业务交易数据并写入跑批数据库表。
在另一些实施例中,业务交易数据也可以为测试案例数据;测试案例数据可预先存储与指定路径下,以便于服务端获取;如果不存在预埋业务交易数据,则可以从指定存储路径的文件中读取业务交易数据(例如测试案例数据),并写入跑批数据库表。
流程调度脚本用于实现批量任务的自动调度;在完成数据准备脚本的调度后,服务端内的壳脚本可以调用流程调度脚本,以从配置文件中读取跑批配置参数,根据所述跑批配置参数更新任务表,并根据所述业务交易数据和所述任务表进行跑批处理。
流程调度脚本从配置文件中读取的跑批配置参数可以包括:目标流程号等数据;其中,目标流程号用于表征参与跑批的业务类型。换而言之,用户可以通过配置文件指定参与跑批的业务类型。配置文件中的目标流程号可以为一个或多个,即任务可以为一个或多个。
结合图4所示,在一些实施例中,流程调度脚本根据跑批配置参数更新任务表的处理逻辑可以包括如步骤:
步骤401、清理任务日志信息和任务监控表。
任务日志信息中记录有任务跑批的发生的时间、主要内容等;任务监控表中动态记录被跑批任务的执行状态;其中,执行状态例如可以包括:待执行、任务执行中、执行成功和执行失败等。通过清理任务日志信息和任务监控表可以避免测试数据重复导致的任务报错。
步骤402、将流程调度表中,与所述目标流程号对应的任务号的跑批日期变更为执行脚本时输入的目标跑批日期。
本说明书的实施例中,任务号也用于表征一个业务类型,流程号与任务号一一对应,每个流程号或每个任务号下可以对应有多个子任务。
如下表1所示,流程调度表中记录多个流程号对应的任务号的默认跑批日期(默认跑批日期以传参方式预先写入测试脚本中);如果用户需要为指定流程号(即目标流程号)指定跑批日期(即目标跑批日期)时,则可以将流程调度表中,与所述目标流程号对应的任务号的跑批日期,变更为执行脚本时输入的目标跑批日期(例如在配置文件中指定)。
表1
流程号 | 任务号 | 跑批日期 |
LC1 | RW1 | 2022年9月1日 |
LC2 | RW2 | 2022年9月1日 |
… | … | … |
LCn | RW n | 2022年9月1日 |
步骤403、根据所述目标流程号,从所述流程调度表中抽取所述目标流程号对应的任务号及其目标跑批日期。
步骤404、根据所述目标流程号,从定时状态控制表中抽取所述目标流程号的定时参数;其中,所述定时参数包括定时启停标志(即启用定时与否的标志)和执行时间。
步骤405、根据所述任务号,从任务配置表中抽取所述任务号下每个子任务的子任务号、子任务名称、处理优先级、处理数据量(例如每个子任务需要处理的记录条数),以及单个进程每次提交的数据量(例如单个进程每次提交的记录条数)、进程标识。
应当注意的是,步骤403~步骤405之间没有顺要求,可以按照任意顺序执行,也可以并行执行。
步骤406、将从所述流程调度表、所述定时状态控制表和所述任务配置表中抽取的数据插入至任务表。在一示例性实施例中,任务表可以如下表2所示。
表2
在本说明书的实施例中,根据所述业务交易数据和所述任务表进行跑批处理可以包括:
以所述业务交易数据为输入,按照处理优先级逐个调起所述任务表中的每个任务进行跑批处理。
参考图5所示,在一些实施例中,流程调度脚本根据业务交易数据和任务表进行跑批处理可以包括如下步骤:
步骤501、以所述业务交易数据为输入,按照所述处理优先级逐个调起所述任务表中的每个任务进行跑批处理。
步骤502、检查当前子任务的执行状态是否为预期状态;所述预期状态为执行成功;若当前子任务的执行状态不是预期状态,则执行步骤503,否则执行步骤504。
步骤503、中断跑批,以待人工介入。
以预期状态为执行成功为例,若当前子任务的执行状态不是预期状态,则表明当前子任务的执行状态为执行失败,此时可以中断跑批,以待人工介入处理。
步骤504、根据当前子任务的子任务号查询任务检查脚本集合中,是否存在与当前子任务对应的任务检查脚本;若存在与当前子任务对应的任务检查脚本,则执行步骤505;否则执行步骤501,以继续下一个子任务的跑批。
步骤505、触发调用该任务检查脚本。
在另一些实施例中,为了防止不同流程号下的子任务被并行执行,即保证所有子任务都串行执行,在步骤406中,任务表中每个子任务的执行状态被初始化为成功状态。对应的,在按照所述处理优先级逐个调起所述任务表中的每个任务进行跑批处理的过程中,对于每个即将在本次调起的子任务:
在起调前,先将该子任务从所述任务表中删除,再重新将该子任务插入所述任务表,并将该子任务的执行状态变更为待执行状态;待执行完该子任务后,再在所述任务监控表中同步变更该子任务的执行状态。由于其他子任务都是终态(即上述的初始化为成功状态),当将该子任务重新插入所述任务表,并将该子任务的执行状态变更为待执行状态时,插入的该子任务会被识别为一个新的任务,使得被批次号会自增(即批次号+1),并且,由于任务表中只有该子任务为非终态(待执行状态),从而防止了所述任务表中其他任务的子任务与该子任务并行执行。
结合图6所示,在一些实施例中,任务检查脚本对所述跑批处理的结果数据进行验证的处理逻辑可以包括如步骤:
步骤601、从所述跑批数据库表获取所述子任务的结果数据。
步骤602、判断所述子任务的结果数据是否错误;若所述子任务的结果数据错误,执行步骤603;否则执行步骤604。
在一些实施例中,可以将所述子任务的结果数据中的数值与预设数值进行比较;如果所述子任务的结果数据中的数值与预设数值一致,则认为所述子任务的结果数据正确;否则,可以认为所述子任务的结果数据错误。
步骤603、记录错误数据对应的业务交易数据的主键字段。
通过记录错误数据对应的业务交易数据的主键字段,方便后续进行错误数据追踪和错误原因分析。
步骤604、检查当前子任务是否为任务表中的最后一个子任务;即检查任务表中是否还有未被处理的子任务;若当前子任务为任务表中的最后一个子任务,则结束;否则,执行步骤605。
步骤605、触发下一个子任务的跑批处理。
在一些实施例中,根据所述验证的验证结果生成测试报告,可以包括:在完成所述目标流程号对应的所有子任务的跑批处理后,根据所述目标流程号对应的所有子任务的结果数据生成测试报告。根据需要,可以单独生成每一个子任务的测试报告,也可以生成目标流程号下的所有子任务的整体性测试报告。
在一示例性实施例中,以银行卡业务清算平台为例,上述的任务检查脚本可以包含文件装载类、对账类、商户入账类、资金划转类任务检查脚本,不同种类的任务检查脚本检查的侧重点不同。
例如,针对文件装载任务,脚本可以检查文件不存在、文件为空等异常场景;关于正常场景,可以检查测试文件和目标数据库表中的数据条数、金额、卡号、流水号等关键字段的匹配情况。若文件中的数据和目标表中的数据不一致,有问题的数据将会打印在测试报告中。通过测试报告,可以清晰的看出数据装载的准确性。
例如,针对对账任务,脚本可以检查跑批日无数据的异常场景,可以检查测试参与对账的各方流水的条数、关键字段是否正确,覆盖对账对平和对账单边的场景,可以检查对账平、对账单边入不同表时数据条数、对账标识、流水号、金额等关键字段是否正确。若脚本检查出对账的数据不符合预期的更新逻辑、登记入清分表和差错表的逻辑、关键字段不正确时,也会将有问题的流水的数据输出至日志中。
例如,针对商户入账任务,脚本中可以检查商户的汇总数据条数、交易金额、入账金额、手续费金额、入账账号、手续费账号、商户类型等关键字段,覆盖了收支2线、超退2线商户、收退2线商户、他行商户等类型;脚本还可以检查商户入账文件中的内容、数据条数、关键字段和汇总表中的一致性;检查核心返回的商户入账解析文件中的商户入账标识、入账日期、核心日志号和汇总表中中的一致性;若脚本检查出入账的数据不符合预期的处理逻辑,也会将有问题的流水的数据输出至测试报告中。
例如,针对资金划转类任务,脚本可以检查交易流水的本金、交换费、转接清算费、网络服务费、差错费、品牌费等相关费用的清分场景、清分金额、清分机构、出入账户信息等的正确性;检查资金划转汇总表每种清分场景的汇总金额、机构信息、出入账账户和资金划转明细表中的汇总数据是否一致;检查资金划转文件中的汇总金额、机构信息、出入账账户等关键字段和资金划转汇总表中的一致性;检查核心返回的资金划转解析文件中的资金划转的入账标识、入账日期、核心日志后和汇总表中中的一致性;若脚本检查出数据不符合预期的处理逻辑,也会将有问题的流水的数据输出至测试报告中。
虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
与上述的批处理任务的自动化测试方法对应,本说明书实施例还提供了一种批处理任务的自动化测试装置,参考图8所示,在一些实施例中,批处理任务的自动化测试装置可以包括:
第一调用模块81,用于调用数据准备脚本,以清理跑批数据库表,获取业务交易数据并写入所述跑批数据库表;
第二调用模块82,用于调用流程调度脚本,以从配置文件中读取跑批配置参数,根据所述跑批配置参数更新任务表,并根据所述业务交易数据和所述任务表进行跑批处理;
第三调用模块83,用于调用任务检查脚本,以对所述跑批处理的结果数据进行验证;
报告生成模块84,用于根据所述验证的验证结果生成测试报告。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
需要说明的是,本说明书的实施例中,所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权同意且经过各方充分授权的信息和数据。
本说明书的实施例还提供一种计算机设备。如图9所示,在本说明书一些实施例中,所述计算机设备902可以包括一个或多个处理器904,诸如一个或多个中央处理单元(CPU)或图形处理器(GPU),每个处理单元可以实现一个或多个硬件线程。计算机设备902还可以包括任何存储器906,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施例中,存储器906上并可在处理器904上运行的计算机程序,所述计算机程序被所述处理器904运行时,可以执行上述任一实施例所述的批处理任务的自动化测试方法的指令。非限制性的,比如,存储器906可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备902的固定或可移除部件。在一种情况下,当处理器904执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备902可以执行相关联指令的任一操作。计算机设备902还包括用于与任何存储器交互的一个或多个驱动机构908,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备902还可以包括输入/输出接口910(I/O),其用于接收各种输入(经由输入设备912)和用于提供各种输出(经由输出设备914)。一个具体输出机构可以包括呈现设备916和相关联的图形用户接口918(GUI)。在其他实施例中,还可以不包括输入/输出接口910(I/O)、输入设备912以及输出设备914,仅作为网络中的一台计算机设备。计算机设备902还可以包括一个或多个网络接口920,其用于经由一个或多个通信链路922与其他设备交换数据。一个或多个通信总线924将上文所描述的部件耦合在一起。
通信链路922可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路922可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务端等的任何组合。
本申请是参照本说明书一些实施例的方法、设备(系统)、计算机可读存储介质和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理器的处理器以产生一个机器,使得通过计算机或其他可编程数据处理器的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理器以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理器上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算机设备访问的信息。按照本说明书中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理器来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
还应理解,在本说明书实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种批处理任务的自动化测试方法,其特征在于,包括:
调用数据准备脚本,以清理跑批数据库表,获取业务交易数据并写入所述跑批数据库表;
调用流程调度脚本,以从配置文件中读取跑批配置参数,根据所述跑批配置参数更新任务表,并根据所述业务交易数据和所述任务表进行跑批处理;
调用任务检查脚本,以对所述跑批处理的结果数据进行验证;
根据所述验证的验证结果生成测试报告。
2.如权利要求1所述的批处理任务的自动化测试方法,其特征在于,所述获取业务交易数据并写入所述跑批数据库表,包括:
检查是否存在预埋业务交易数据;
若存在预埋业务交易数据,则将所述预埋业务交易数据写入跑批数据库表;
若不存在预埋业务交易数据,则从指定存储路径的文件中读取业务交易数据并写入跑批数据库表。
3.如权利要求2所述的批处理任务的自动化测试方法,其特征在于,所述跑批配置参数包括:
目标流程号;所述目标流程号用于表征参与跑批的业务类型;
预期状态。
4.如权利要求3所述的批处理任务的自动化测试方法,其特征在于,根据所述跑批配置参数更新任务表,包括:
清理任务日志信息和任务监控表;
将流程调度表中,与所述目标流程号对应的任务号的跑批日期变更为执行脚本时输入的目标跑批日期;
根据所述目标流程号,从所述流程调度表中抽取所述目标流程号对应的任务号及其目标跑批日期;
根据所述目标流程号,从定时状态控制表中抽取所述目标流程号的定时参数;所述定时参数包括定时启停标志和执行时间;
根据所述任务号,从任务配置表中抽取所述任务号下每个子任务的子任务号、子任务名称、处理优先级、处理数据量,以及单个进程每次提交的数据量、进程标识;
将从所述流程调度表、所述定时状态控制表和所述任务配置表中抽取的数据插入至任务表。
5.如权利要求4所述的批处理任务的自动化测试方法,其特征在于,根据所述业务交易数据和所述任务表进行跑批处理,包括:
以所述业务交易数据为输入,按照所述处理优先级逐个调起所述任务表中的每个任务进行跑批处理;
检查当前子任务的执行状态是否为预期状态;所述预期状态为执行成功;
在当前子任务的执行状态为预期状态时,根据当前子任务的子任务号查询任务检查脚本集合中,是否存在与当前子任务对应的任务检查脚本;
若存在与当前子任务对应的任务检查脚本,则触发调用该任务检查脚本。
6.如权利要求5所述的批处理任务的自动化测试方法,其特征在于,所述任务表中每个子任务的执行状态被初始化为成功状态;
对应的,在按照所述处理优先级逐个调起所述任务表中的每个任务进行跑批处理的过程中,对于每个即将在本次调起的子任务:
在起调前,先将该子任务从所述任务表中删除,再重新将该子任务插入所述任务表,并将该子任务的执行状态变更为待执行状态;
待执行完该子任务后,再在所述任务监控表中同步变更该子任务的执行状态。
7.如权利要求5所述的批处理任务的自动化测试方法,其特征在于,对所述跑批处理的结果数据进行验证,包括:
调用该任务检查脚本从所述跑批数据库表获取所述子任务的结果数据,并判断所述子任务的结果数据是否错误;
若所述子任务的结果数据错误,则记录错误数据对应的业务交易数据的主键字段;
若所述子任务的结果数据无误,则触发下一个子任务的跑批处理。
8.如权利要求7所述的批处理任务的自动化测试方法,其特征在于,根据所述验证的验证结果生成测试报告,包括:
在完成所述目标流程号对应的所有子任务的跑批处理后,根据所述目标流程号对应的所有子任务的结果数据生成测试报告。
9.一种批处理任务的自动化测试装置,其特征在于,包括:
第一调用模块,用于调用数据准备脚本,以清理跑批数据库表,获取业务交易数据并写入所述跑批数据库表;
第二调用模块,用于调用流程调度脚本,以从配置文件中读取跑批配置参数,根据所述跑批配置参数更新任务表,并根据所述业务交易数据和所述任务表进行跑批处理;
第三调用模块,用于调用任务检查脚本,以对所述跑批处理的结果数据进行验证;
报告生成模块,用于根据所述验证的验证结果生成测试报告。
10.一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器运行时,执行根据权利要求1-8任意一项所述方法的指令。
11.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被计算机设备的处理器运行时,执行根据权利要求1-8任意一项所述方法的指令。
12.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器运行时,执行根据权利要求1-8任意一项所述方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310318418.6A CN116383052A (zh) | 2023-03-28 | 2023-03-28 | 批处理任务的自动化测试方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310318418.6A CN116383052A (zh) | 2023-03-28 | 2023-03-28 | 批处理任务的自动化测试方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116383052A true CN116383052A (zh) | 2023-07-04 |
Family
ID=86965061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310318418.6A Pending CN116383052A (zh) | 2023-03-28 | 2023-03-28 | 批处理任务的自动化测试方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116383052A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117592754A (zh) * | 2023-12-12 | 2024-02-23 | 中电金信数字科技集团有限公司 | 业务数据跑批方法及装置 |
-
2023
- 2023-03-28 CN CN202310318418.6A patent/CN116383052A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117592754A (zh) * | 2023-12-12 | 2024-02-23 | 中电金信数字科技集团有限公司 | 业务数据跑批方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10698795B2 (en) | Virtual payments environment | |
US20210192533A1 (en) | Transaction exchange platform having configurable microservices | |
CN107230092B (zh) | 账务处理方法、装置及服务器 | |
CN107153646B (zh) | 一种数据处理方法和设备 | |
US10789600B1 (en) | Transaction exchange platform with snapshot microservice | |
CN108230130B (zh) | 日切数据验证的方法、装置和电子设备 | |
CN116383052A (zh) | 批处理任务的自动化测试方法、装置、设备及存储介质 | |
CN113312259B (zh) | 一种接口测试方法及装置 | |
CN113609011A (zh) | 一种保险产品工厂的测试方法、装置、介质和设备 | |
CN109255616B (zh) | 一种拒付任务处理方法及装置 | |
CN112965986B (zh) | 业务一致性处理方法、装置、设备及存储介质 | |
CN113064837B (zh) | 基于交易场景的数据库基准测试方法及装置 | |
CN115018621A (zh) | 一种合约变更方法、装置、设备及介质 | |
CN114511314A (zh) | 一种支付账户管理的方法、装置、计算机设备和存储介质 | |
CN114691768A (zh) | 一种数据处理方法、核算系统及相关设备 | |
CN114490415A (zh) | 业务测试方法、计算机设备、存储介质和计算机程序产品 | |
CN113094414A (zh) | 流转图谱生成方法及装置 | |
CN112419052B (zh) | 交易测试方法、装置、电子设备及可读存储介质 | |
CN113159967A (zh) | 基于金融核心联机交易场景的数据处理方法及装置 | |
CN111767343A (zh) | 基于消息队列的测试数据同步方法和装置、设备以及介质 | |
CN113795857A (zh) | 用于在计算机网络的节点之间传送匿名化的事务的系统和方法 | |
CN109255702B (zh) | 变更账户开户机构的方法及装置 | |
CN112419052A (zh) | 交易测试方法、装置、电子设备及可读存储介质 | |
CN115248697A (zh) | 系统灰度升级方法、装置、电子设备和存储介质 | |
CN115495453A (zh) | 一种生成报文的方法、装置、计算设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |