自动化测试中延迟断言处理方法及装置与流程

文档序号:30496641发布日期:2022-06-22 05:08阅读:242来源:国知局
1.本发明涉及自动化测试
技术领域
:,尤指一种自动化测试中延迟断言处理方法及装置。
背景技术
::2.测试断言需要交易结束后判断,日常测试过程中,在一些全流程业务场景测试由几个动作一起构成,部分流程动作依赖定时触发或者不同流程动作之间存在较大的时差,自动化测试脚本无法实时收集及判断测试结果,同时脚本又不能无限等待,往往需要人工介入检查,无法满足自动化核对及测试脚本需含“交易-断言”原子性结构目标。3.目前常用的断言是在测试脚本执行结束前运行,是一种实时断言。对于全流程业务场景,交易流程耗时较久,因自动化测试脚本无法一直等待交易结束才退出,因此断言无法对远期未完成的假设进行证明,只能对自动化测试脚本覆盖的阶段过程动作的结果进行断言,是一种碎片动作正确与否断言,不能用于做完整交易流程结果检查。技术实现要素:4.针对现有技术中存在的问题,本发明实施例的主要目的在于提供一种自动化测试中延迟断言处理方法及装置,克服普通断言无法覆盖非实时测试场景的缺陷。5.为了实现上述目的,本发明实施例提供一种自动化测试中延迟断言处理方法,方法包括:6.获取自动化测试脚本执行过程中发送的延迟断言请求,并将延迟断言请求存储于断言数据库;其中,自动化测试脚本包括预设的延迟断言测试数据;7.当到达时预设的检查时刻时,对断言数据库中的延迟断言请求进行扫描,确定待处理断言;8.根据业务数据库中与待处理断言相对应的业务数据,执行待处理断言,得到断言执行结果。9.可选的,在本发明一实施例中,方法还包括:根据断言执行结果,生成断言汇总报表。10.可选的,在本发明一实施例中,方法还包括:根据预设的脚本维护对照表,将断言汇总报表发送至对应的维护终端。11.可选的,在本发明一实施例中,延迟断言请求包括:断言登记时间、归属版本字段、关联业务数据信息及断言核对规则。12.可选的,在本发明一实施例中,对断言数据库中的延迟断言请求进行扫描,确定待处理断言包括:13.对所述断言数据库中的延迟断言请求进行扫描,根据各延迟断言请求中的断言登记时间及归属版本字段,确定待处理断言。14.可选的,在本发明一实施例中,根据业务数据库中与待处理断言相对应的业务数据,执行待处理断言,得到断言执行结果包括:15.根据待处理断言,确定其对应的断言核对规则及关联业务数据信息,并对断言核对规则进行解析,得到核对规则解析结果;16.根据关联业务数据信息,从业务数据库中获取与待处理断言相对应的业务数据;17.根据所述核对规则解析结果,对业务数据进行核对,得到断言执行结果。18.可选的,在本发明一实施例中,断言执行结果包括:关联业务数据信息、核对字段名称、核对字段内容及核对结果。19.本发明实施例还提供一种自动化测试中延迟断言处理装置,装置包括:20.延迟断言请求模块,用于获取自动化测试脚本执行过程中发送的延迟断言请求,并将延迟断言请求存储于断言数据库;其中,自动化测试脚本包括预设的延迟断言测试数据;21.待处理断言模块,用于当到达时预设的检查时刻,对断言数据库中的延迟断言请求进行扫描,确定待处理断言;22.断言执行结果模块,用于根据业务数据库中与待处理断言相对应的业务数据,执行所述待处理断言,得到断言执行结果。23.可选的,在本发明一实施例中,延迟断言请求包括:断言登记时间、归属版本字段、关联业务数据信息及断言核对规则。24.可选的,在本发明一实施例中,断言执行结果模块包括:25.规则解析单元,用于根据所述待处理断言,确定其对应的断言核对规则及关联业务数据信息,并对断言核对规则进行解析,得到核对规则解析结果;26.业务数据单元,用于根据所述关联业务数据信息,从业务数据库中获取与待处理断言相对应的业务数据;27.断言执行单元,用于根据核对规则解析结果,对业务数据进行核对,得到断言执行结果。28.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。29.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。30.本发明通过延后断言的处理方式,对自动化测试脚本数据执行与测试断言等过程进行解耦剥离,拓展了测试脚本断言涵盖的场景,使得测试脚本不局限于实时类场景能够向更多的非实时场景拓展,为自动化测试脚本全方位覆盖提供条件。附图说明31.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。32.图1为本发明实施例一种自动化测试中延迟断言处理方法的流程图;33.图2为本发明实施例中得到断言执行结果的流程图;34.图3为本发明实施例中应用自动化测试中延迟断言处理方法的系统结构示意图;35.图4为本发明实施例中系统的工作流程图;36.图5为本发明实施例一种自动化测试中延迟断言处理装置的结构示意图;37.图6为本发明实施例中断言执行结果模块的结构示意图;38.图7为本发明一实施例所提供的电子设备的结构示意图。具体实施方式39.本发明实施例提供一种自动化测试中延迟断言处理方法及装置,可用于金融领域及其他领域,需要说明的是,本发明的自动化测试中延迟断言处理方法及装置可用于金融领域,也可用于除金融领域之外的任意领域,本发明的自动化测试中延迟断言处理方法及装置应用领域不做限定。40.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。41.如图1所示为本发明实施例一种自动化测试中延迟断言处理方法的流程图,本发明实施例提供的自动化测试中延迟断言处理方法的执行主体包括但不限于计算机。图中所示方法包括:42.步骤s1,获取自动化测试脚本执行过程中发送的延迟断言请求,并将延迟断言请求存储于断言数据库;其中,自动化测试脚本包括预设的延迟断言测试数据。43.其中,测试案例设计阶段,预设断言静态规则,断言以测试案例数据的形式预埋到自动化测试脚本中去,即延迟断言测试数据。非实时交易测试场景下,自动化测试脚本执行过程中,完成数据准备和交易发起动作后提交后台断言数据申请,提交的断言申请记录保存于一个专用的断言数据库。具体的,断言是一种编程术语,用于证明程序的假设。44.步骤s2,当到达时预设的检查时刻时,对断言数据库中的延迟断言请求进行扫描,确定待处理断言。45.其中,预设的检查时刻时例如可以为t+1日零时等,对断言数据库中的延迟断言请求进行扫描,确定t日对应的待处理断言。具体的,t日指交易日,t+1日指交易日+1天。46.进一步的,扫描断言数据库中断言登记日期及归属版本字段检查是否存在当期版本、t日是否存在未闭环的待处理断言申请。47.步骤s3,根据业务数据库中与待处理断言相对应的业务数据,执行待处理断言,得到断言执行结果。48.其中,确定待处理断言的预设核对规则及关联业务数据信息,并对断言核对规则进行解析,得到核对规则解析结果。49.进一步的,从业务数据库中获取与待处理断言相对应的业务数据。具体的,例如通过对json格式的断言核对规则解析,拼接sql语句检索业务数据库目标记录,核对字段的内容是否同符合断言的预期要求。50.进一步的,断言如果执行成功,输出断言关联的业务检索sql以及断言核对涉及到的字段名称、字段内容、核对规则作为断言执行结果。如果断言核对失败,输出断言关联的业务检索sql、核对失败原因(业务数据不存在、字段不存在或者是不满足核对要求)、核对规则作为断言执行结果。51.作为本发明的一个实施例,方法还包括:根据断言执行结果,生成断言汇总报表。52.在本实施例中,方法还包括:根据预设的脚本维护对照表,将断言汇总报表发送至对应的维护终端。53.其中,对断言执行结果进行汇总,形成报表文件,作为断言汇总报表。预设的脚本维护对照表中包括维护人员与断言的对照关系,根据脚本维护对照表,将断言汇总报表发送至对应的维护人员的维护终端。54.在本实施例中,延迟断言请求包括:断言登记时间、归属版本字段、关联业务数据信息及断言核对规则。55.在本实施例中,对断言数据库中的延迟断言请求进行扫描,确定待处理断言包括:对断言数据库中的延迟断言请求进行扫描,根据各延迟断言请求中的断言登记时间及归属版本字段,确定待处理断言。56.其中,延迟断言请求具体还包括:断言归属的版本、自动化脚本名、脚本归属例行化作业名、方法、作者、断言登记的日期、断言登记的时间戳,断言核对日期、断言核对时间戳,断言核对结果、断言执行详细信息字段。延迟断言请求中的详细信息均登记在断言数据库中。57.进一步的,扫描断言数据库中断言登记日期及归属版本字段检查是否存在当期版本、t日是否存在未闭环的待处理断言申请,由此确定待处理断言。58.在本实施例中,如图2所示,根据业务数据库中与待处理断言相对应的业务数据,执行待处理断言,得到断言执行结果包括:59.步骤s21,根据待处理断言,确定其对应的断言核对规则及关联业务数据信息,并对断言核对规则进行解析,得到核对规则解析结果;60.步骤s22,根据关联业务数据信息,从业务数据库中获取与待处理断言相对应的业务数据;61.步骤s23,根据核对规则解析结果,对业务数据进行核对,得到所述断言执行结果。62.在本实施例中,断言执行结果包括:关联业务数据信息、核对字段名称、核对字段内容及核对结果。63.其中,确定待处理断言的预设核对规则及关联业务数据信息,并对断言核对规则进行解析,得到核对规则解析结果。具体的,预设核对规则是针对字段内容的核对规则,具体可以支持大于等于、大于、小于、小于等于、等于、包含等多种运算匹配方式。64.进一步的,断言核对规则可以为json格式格式,对断言核对规则解析后,拼接sql语句检索业务数据库目标记录,核对字段的内容是否同符合断言的预期要求,由此得到断言执行结果。65.具体的,断言如果执行成功,输出断言关联的业务检索sql以及断言核对涉及到的字段名称、字段内容、核对规则作为断言执行结果。如果断言核对失败,输出断言关联的业务检索sql、核对失败原因、核对规则作为断言执行结果。66.本发明通过延后断言的处理方式,对自动化测试脚本数据执行与测试断言等过程进行解耦剥离,拓展了测试脚本断言涵盖的场景,使得测试脚本不局限于实时类场景能够向更多的非实时场景拓展,为自动化测试脚本全方位覆盖提供条件,同时提供报表机制能够记录断言发生的现场及结果,便于测试人员快速回溯测试现场。67.作为本发明的一个具体实施例,本发明采取延后断言的方法对银行自动化测试脚本数据准备、测试执行与测试断言单元实现解耦剥离,采取松耦合的方式完成完整的测试自动化测试的测试案例原子性设计原则。如图3所示为本发明实施例中应用自动化测试中延迟断言处理方法的系统结构示意图。68.其中,图3中所示系统包括:自动化脚本延迟断言触发单元、断言日终自动检查任务单元、报表呈现单元。系统可以实现对业务数据库记录的断言检查,通过将断言需求规则化,使用json格式进行存放解析,采取后台数据库对断言申请记录跟踪存储实现延迟,并创建java扫描任务使用jenkins隔日部署方式扫描检查,维护测试脚本与测试人员的对照数据,通过报表反馈的方式实现了断言结果与原发起交易的关联,克服普通断言无法跨长时间维度的断言检查技术难题,提供了对全业务场景的断言检查覆盖的可能。69.进一步的,jenkins是一个开源自动化服务器,可以自动执行持续集成和交付软件所涉及的重复技术任务。70.在本实施例中,自动化脚本延迟断言触发单元、断言日终自动检查任务单元、报表呈现单元间的工作机制:非实时交易测试场景下,自动化测试脚本完成数据准备和交易发起动作后通过延迟断言触发单元提交后台断言数据申请,提交的断言申请记录保存于一个专用的断言数据库;自动化测试脚本发起交易完成后续依赖的一系列交易环节,实现t日完整业务闭环,交易数据在测试环境中流转至终态,t+1日断言日终自动检查单元通过获取日间存放在数据库中延迟断言请求记录并对核对规则进行解析,关联检查业务数据库,判断业务结果是否达到断言预期目标,同时更新核对日志至断言数据库;为确保测试延时后的测试结果能够全面准确地反馈到提交者,本发明提供报表呈现功能,建立自动化测试脚本同测试人员的映射关系,在t+1日断言日终自动检查单元执行结束后,汇总当日所有提交申请生成汇总报文以excel的形式邮件给所有的关联人员,报表通过汇总及明细总分方式呈现,给测试人员全局及快速定位断言问题提供便利。71.在本实施例中,如图4所示的系统工作流程具体包括:72.步骤101:测试案例设计阶段,预设断言静态规则,断言以测试案例数据的形式预埋到自动化测试脚本中去。如表1所示核对.表名代表需要核对的数据库表名为“test_table”,“核对.hdlfalg”字段表示需要对“test_table.hdlfalg”做核对期望的数值为13,核对.规则支持大于等于、大于、小于、小于等于、等于、包含多种运算匹配方式,不输默认做等于判断。73.表1[0074][0075]步骤102:自动化测试脚本通过调用自动化脚本延迟断言触发单元中的公共方法提交延后断言申请,申请动作指定环境信息、断言涉及到核对表名及需要核对的数据库字段,断言提交方法的入参包含指定数据库环境信息以及断言核对规则,在步骤101只是设置了静态的断言规则,无法唯一定位关联测试案例的结果,因此在101步骤的基础上自动化脚本中需要动态插入断言目标记录对应的唯一键值。[0076]步骤103:自动化脚本延迟断言触发单元将延迟断言请求登记于断言数据库,为方便描述这里指定数据库表名为assertlist,其存储信息如表2所示。数据库中记录了业务数据源地址、断言规则以json格式存放于记录中,同时记载断言归属的版本、自动化脚本名、脚本归属例行化作业名、方法、作者、断言登记的日期、断言登记的时间戳,断言核对日期、断言核对时间戳,断言核对结果、断言执行详细信息字段。[0077]表2[0078][0079]步骤104:自动化脚本延迟断言触发单元提交断言申请,同时根据脚本维护人员关系对照表如表3所示,延迟断言请求记录中更新脚本作者,用于后续报表关联测试人员。[0080]表3[0081]版本脚本名作业名方法作者测试人员201912fulltest_1com.testng_rcovmethod汇款收报甲测试组201912fulltest_1com.testng_rcovmethod汇款收报乙测试组[0082]步骤105:断言日终自动检查任务单元执行业务测试数据终态扫描检查,该作业于t+1凌晨扫描数据库assertlist中断言登记日期及归属版本字段检查是否存在当期版本、t日是否存在未闭环的待处理断言申请,通过对json格式的断言规则解析,拼接sql语句检索业务数据库目标记录,核对字段的内容是否同符合断言的预期要求。断言如果执行成功,输出断言关联的业务检索sql以及断言核对涉及到的字段名称、字段内容、核对规则打印至assertlist表的断言执行详细信息字段;如果断言核对失败,输出断言关联的业务检索sql、核对失败原因(业务数据不存在、字段不存在或者是不满足核对要求)打印段内容、核对规则打印至assertlist表的断言执行详细信息字段如表4-表5所示。[0083]表4[0084][0085][0086]表5[0087][0088]步骤106:待步骤105的动作执行完毕,报表呈现单元汇总t日全量的断言执行结果,形成报表文件,分别形成汇总报表(表6)及明细报表(表7),并根据作者字段登记的人名做邮件分发,测试人员可以通过汇总及明细信息获悉,断言执行的整体及明细状况。汇总提供每期版本每日各个测试人员的断言核对通过总数以及不通过的总数,明细断言信息通过excel形式展现,展现的字段包括版本、作业名、脚本类名、案例方法名、维护人、数据库json(业务数据存放的数据库)、断言json、断言登记日期、断言登记时间、断言核对日期、断言核对时间、核对详细信息。[0089]表6[0090][0091][0092]表7[0093][0094]当前金融科技行业业务需求快速迭代,对测试自动化测试提出更高要求,自动化测试脚本的覆盖范围朝着纵深及外延的方向不断发展。本发明较好地拓展了测试脚本断言涵盖的场景,使得测试脚本不局限于实时类场景能够向更多的非实时场景拓展,为自动化测试脚本全方位覆盖提供条件。同时提供报表机制能够记录断言发生的现场及结果,便于测试人员快速回溯测试现场。[0095]本发明非实时场景测试脚本断言,也可以通过模拟非实时交易运行环境,使其交易即时触发达到实时出运行结果,进而达到实时完成交易的目的,如此普通断言即可发挥功效。[0096]如图5所示为本发明实施例一种自动化测试中延迟断言处理装置的结构示意图,图中所示装置包括:[0097]延迟断言请求模块10,用于获取自动化测试脚本执行过程中发送的延迟断言请求,并将延迟断言请求存储于断言数据库;其中,自动化测试脚本包括预设的延迟断言测试数据;[0098]待处理断言模块20,用于当到达时预设的检查时刻,对断言数据库中的延迟断言请求进行扫描,确定待处理断言;[0099]断言执行结果模块30,用于根据业务数据库中与待处理断言相对应的业务数据,执行待处理断言,得到断言执行结果。[0100]作为本发明的一个实施例,延迟断言请求包括:断言登记时间、归属版本字段、关联业务数据信息及断言核对规则。[0101]在本实施例中,如图6所示,断言执行结果模块30包括:[0102]规则解析单元31,用于根据待处理断言,确定其对应的断言核对规则及关联业务数据信息,并对断言核对规则进行解析,得到核对规则解析结果;[0103]业务数据单元32,用于根据关联业务数据信息,从业务数据库中获取与待处理断言相对应的业务数据;[0104]断言执行单元33,用于根据核对规则解析结果,对业务数据进行核对,得到断言执行结果。[0105]基于与上述一种自动化测试中延迟断言处理方法相同的申请构思,本发明还提供了上述一种自动化测试中延迟断言处理装置。由于该一种自动化测试中延迟断言处理装置解决问题的原理与一种自动化测试中延迟断言处理方法相似,因此该一种自动化测试中延迟断言处理装置的实施可以参见一种自动化测试中延迟断言处理方法的实施,重复之处不再赘述。[0106]本发明通过延后断言的处理方式,对自动化测试脚本数据执行与测试断言等过程进行解耦剥离,拓展了测试脚本断言涵盖的场景,使得测试脚本不局限于实时类场景能够向更多的非实时场景拓展,为自动化测试脚本全方位覆盖提供条件,同时提供报表机制能够记录断言发生的现场及结果,便于测试人员快速回溯测试现场。[0107]本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。[0108]本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。[0109]如图7所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图7中所示的所有部件;此外,电子设备600还可以包括图7中没有示出的部件,可以参考现有技术。[0110]如图7所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。[0111]其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。[0112]输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为lcd显示器,但并不限于此。[0113]该存储器140可以是固态存储器,例如,只读存储器(rom)、随机存取存储器(ram)、sim卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为eprom等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。[0114]存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。[0115]通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。[0116]基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。[0117]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。[0118]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0119]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。[0120]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。[0121]本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1