首页> 中国专利> 一种例行化业务交易测试方法及装置

一种例行化业务交易测试方法及装置

摘要

本发明提供一种例行化业务交易测试方法及装置,可用于金融领域或其他技术领域。所述方法包括:接收应用服务器发送的例行化测试结果,例行化测试结果包括各个已执行函数;合并各个已执行函数,获得已测试函数集;若判断获知已测试函数集和例行化测试函数集不匹配,则获取未覆盖函数;根据未覆盖函数以及各个业务交易的调用链信息,获得未覆盖函数对应的未覆盖交易并输出未覆盖测试提示信息;其中,未覆盖测试提示信息包括所述未覆盖函数对应的未覆盖交易;业务交易的调用链信息是预先获得的,包括所述业务交易对应的函数。所述装置用于执行上述方法。本发明实施例提供的例行化业务交易测试方法及装置,提高未覆盖交易的识别效率。

著录项

  • 公开/公告号CN114840436A

    专利类型发明专利

  • 公开/公告日2022-08-02

    原文格式PDF

  • 申请/专利权人 中国工商银行股份有限公司;

    申请/专利号CN202210562427.5

  • 发明设计人 旷亚和;叶红;姜城;王雪霏;

    申请日2022-05-23

  • 分类号G06F11/36(2006.01);G06Q40/04(2012.01);

  • 代理机构北京三友知识产权代理有限公司 11127;北京三友知识产权代理有限公司 11127;

  • 代理人周永君;任默闻

  • 地址 100140 北京市西城区复兴门内大街55号

  • 入库时间 2023-06-19 16:14:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-19

    实质审查的生效 IPC(主分类):G06F11/36 专利申请号:2022105624275 申请日:20220523

    实质审查的生效

说明书

技术领域

本发明涉及计算机技术领域,具体涉及一种例行化业务交易测试方法及装置。

背景技术

测试覆盖度评估是衡量软件测试执行状态的重要手段之一,用来确定测试是否达到事先设定的测试任务完成的标准。例行化测试,通过周期性地对设备进行预测预检,是保证产品测试质量的重要一环。

现有的基于代码的测试覆盖率度量,能够测试出哪些函数未被测试过。但对于不熟悉代码的业务测试人员即使发现了未覆盖函数,也难以定位是哪个业务交易未覆盖。基于测试需求的覆盖度测试主要为黑盒测试,是基于功能级别而非代码级别执行的,覆盖范围的结果在很大程度上取决于正在执行测试的测试人员的能力,由于测试人员能力的不同,未能发现未覆盖的业务交易,导致遗漏测试未覆盖的业务交易。

发明内容

针对现有技术中的问题,本发明实施例提供一种例行化业务交易测试方法及装置,能够至少部分地解决现有技术中存在的问题。

第一方面,本发明提出一种例行化业务交易测试方法,包括:

接收应用服务器发送的例行化测试结果,所述例行化测试结果包括各个已执行函数;其中,所述例行化测试结果是所述应用服务器在预设时间段内进行例行化交易测试并采集每个已执行函数获得的;

合并各个已执行函数,获得已测试函数集;

若判断获知所述已测试函数集和例行化测试函数集不匹配,则获取未覆盖函数;其中,所述例行化测试函数集是预先获得的;

根据所述未覆盖函数以及各个业务交易的调用链信息,获得所述未覆盖函数对应的未覆盖交易并输出未覆盖测试提示信息;其中,所述未覆盖测试提示信息包括所述未覆盖函数对应的未覆盖交易;所述业务交易的调用链信息是预先获得的,包括所述业务交易对应的函数。

第二方面,本发明还提供一种例行化业务交易测试方法,包括:

接收客户端发送的例行化测试请求;

在预设时间段内进行例行化交易测试并采集每个已执行函数;

在例行化交易测试完成之后,将例行化测试结果发送给分析服务器,以使得所述分析服务器基于例行化测试结果输出未覆盖测试提示信息;其中,所述例行化测试结果包括各个已执行函数。

第三方面,本发明提供一种例行化业务交易测试装置,包括:

第一接收模块,用于接收应用服务器发送的例行化测试结果,所述例行化测试结果包括各个已执行函数;其中,所述例行化测试结果是所述应用服务器在预设时间段内进行例行化交易测试并采集每个已执行函数获得的;

合并模块,用于合并各个已执行函数,获得已测试函数集;

判断模块,用于在判断获知所述已测试函数集和例行化测试函数集不匹配之后,获取未覆盖函数;其中,所述例行化测试函数集是预先获得的;

输出模块,用于根据所述未覆盖函数以及各个业务交易的调用链信息,获得所述未覆盖函数对应的未覆盖交易并输出未覆盖测试提示信息;其中,所述未覆盖测试提示信息包括所述未覆盖函数对应的未覆盖交易;所述业务交易的调用链信息是预先获得的,包括所述业务交易对应的函数。

第四方面,本发明提供一种例行化业务交易测试装置,包括:

第二接收模块,用于接收客户端发送的例行化测试请求;

采集模块,用于在预设时间段内进行例行化交易测试并采集每个已执行函数;

发送模块,用于在例行化交易测试完成之后,将例行化测试结果发送给分析服务器,以使得所述分析服务器基于例行化测试结果输出未覆盖测试提示信息;其中,所述例行化测试结果包括各个已执行函数。

第五方面,本发明提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述例行化业务交易测试方法。

第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述例行化业务交易测试方法。

第五方面,本发明提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述例行化业务交易测试方法。

本发明实施例提供的例行化业务交易测试方法及装置,能够接收应用服务器发送的例行化测试结果,例行化测试结果包括各个已执行函数,若判断获知已测试函数集和例行化测试函数集不匹配,则获取未覆盖函数,根据未覆盖函数以及各个业务交易的调用链信息,获得未覆盖函数对应的未覆盖交易并输出未覆盖测试提示信息,能够获得未覆盖函数以及对应的未覆盖交易,提高未覆盖交易的识别效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1是本发明第一实施例提供的例行化业务交易测试系统的结构示意图。

图2是本发明第二实施例提供的例行化业务交易测试方法的流程示意图。

图3是本发明第三实施例提供的例行化业务交易测试方法的流程示意图。

图4是本发明第四实施例提供的例行化业务交易测试方法的流程示意图。

图5是本发明第五实施例提供的例行化业务交易测试方法的流程示意图。

图6是本发明第六实施例提供的例行化业务交易测试方法的流程示意图。

图7是本发明第七实施例提供的例行化业务交易测试方法的流程示意图。

图8是本发明第八实施例提供的例行化业务交易测试方法的流程示意图。

图9是本发明第九实施例提供的客户端的结构示意图。

图10是本发明第十实施例提供的应用服务器的结构示意图。

图11是本发明第十一实施例提供的分析服务器的结构示意图。

图12是本发明第十二实施例提供的例行化业务交易测试装置的结构示意图。

图13是本发明第十三实施例提供的例行化业务交易测试装置的结构示意图。

图14是本发明第十四实施例提供的例行化业务交易测试装置的结构示意图。

图15是本发明第十五实施例提供的例行化业务交易测试装置的结构示意图。

图16是本发明第十六实施例提供的例行化业务交易测试装置的结构示意图。

图17是本发明第十七实施例提供的例行化业务交易测试装置的结构示意图。

图18是本发明第十八实施例提供的例行化业务交易测试装置的结构示意图。

图19是本发明第十九实施例提供的电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

图1是本发明第一实施例提供的例行化业务交易测试系统的结构示意图,如图1所示,本发明实施例提供的例行化业务交易测试系统包括客户端1、应用服务器2和分析服务器3,其中:

客户端1与应用服务器2通信连接,应用服务器2与分析服务器3通信连接。

测试人员通过客户端1访问应用服务器2,进行业务功能操作,完成业务交易测试。测试人员在首次使用客户端1时,通过客户端代理自动设置客户端1的网络的代理地址,以便于应用服务器2进行通信。测试人员可以在客户端1设置业务交易的业务标签,应用服务器2基于业务标签采集业务交易的调用链信息,建立业务交易与函数的对应关系,并将业务交易的调用链信息发送给分析服务器3,便于后续判断例行化业务交易测试的覆盖情况。其中,客户端1包括但不限于台式机、笔记本电脑、智能手机等设备。

下面以分析服务器作为执行主体为例,对本发明实施例提供的例行化业务交易测试方法的具体实现过程进行说明。

图2是本发明第二实施例提供的例行化业务交易测试方法的流程示意图,如图2所示,本发明实施例提供的例行化业务交易测试方法,包括:

S201、接收应用服务器发送的例行化测试结果,所述例行化测试结果包括各个已执行函数;其中,所述例行化测试结果是所述应用服务器在预设时间段内进行例行化交易测试并采集每个已执行函数获得的;

具体地,应用服务器会在预设时间段内进行例行化交易测试,在进行例行化交易测试时会采集各个执行的函数作为已执行函数,在例行交易化测试完成之后将携带各个已执行函数的例行化测试结果发送给分析服务器,所述分析服务器会接收所述例行化测试结果。其中,已执行函数可以通过函数的特征进行记录,函数的特征可以包括类名、函数名和函数描述符等信息,根据实际需要进行设置,本发明实施例不做限定。所述例行化测试结果还可以包括各个已执行函数的执行时间等信息,根据实际需要进行设置,本发明实施例不做限定。所述预设时间段根据实际需要进行设置,比如5天,本发明实施例不做限定。

S202、合并各个已执行函数,获得已测试函数集;

具体地,所述分析服务器将各个已执行函数合并为已测试函数集,已测试函数集表示在例行化测试中已经执行的函数的合集。由于在一次例行化测试中,经常涉及多个业务交易,不同的业务交易可能具有相同的函数,如果各个已执行函数中存在相同的函数,可以进行函数去重,再合并获得已测试函数集,以减少后续判断已测试函数集和例行化测试函数集是否匹配需要处理的函数的数量,提高数据处理效率。

S203、若判断获知所述已测试函数集和例行化测试函数集不匹配,则获取未覆盖函数;其中,所述例行化测试函数集是预先获得的;

具体地,所述分析服务器将所述已测试函数集与例行化测试函数集进行比较,如果例行化测试函数集中存在所述已测试函数集没有的函数,说明例行化业务交易测试的过程中存在未执行的函数,所述已测试函数集和例行化测试函数集不匹配,将上述未执行的函数作为未覆盖函数,即例行化业务交易测试未执行的函数。其中,所述例行化测试函数集是预先获得的,所述例行化测试函数集中的函数是例行化业务交易测试需要执行的函数。

S204、根据所述未覆盖函数以及各个业务交易的调用链信息,获得所述未覆盖函数对应的未覆盖交易并输出未覆盖测试提示信息;其中,所述未覆盖测试提示信息包括所述未覆盖函数对应的未覆盖交易;所述业务交易的调用链信息是预先获得的,包括所述业务交易对应的函数。

具体地,所述分析服务器根据所述未覆盖函数中每个函数查询各个业务交易的调用链信息,如果在某个业务交易的调用链信息中查询到相同的函数,那么上述某个业务交易作为未覆盖函数对应的未覆盖交易中的一个业务交易。在所述未覆盖函数中所有函数都查询完成之后,获得所述未覆盖函数对应的未覆盖交易。所述分析服务器可以通过邮件、系统信息等方式输出未覆盖测试提示信息给测试人员,以提示例行化业务交易测试过程中哪些业务交易存在未执行的函数,以便于测试人员及时对未覆盖交易进行重新测试。其中,所述未覆盖测试提示信息包括所述未覆盖函数对应的未覆盖交易;所述业务交易的调用链信息是预先获得的,包括所述业务交易对应的函数。所述业务交易对应的函数可以通过函数的特征进行记录,函数的特征可以包括类名、函数名和函数描述符等信息,根据实际需要进行设置,本发明实施例不做限定。

本发明实施例提供的例行化业务交易测试方法,能够接收应用服务器发送的例行化测试结果,例行化测试结果包括各个已执行函数,若判断获知已测试函数集和例行化测试函数集不匹配,则获取未覆盖函数,根据未覆盖函数以及各个业务交易的调用链信息,获得未覆盖函数对应的未覆盖交易并输出未覆盖测试提示信息,能够获得未覆盖函数以及对应的未覆盖交易,提高未覆盖交易的识别效率。此外测试人员能够尽快获知未覆盖交易,能够尽快进行重新测试,提高了例行化业务交易测试的可靠性。

图3是本发明第三实施例提供的例行化业务交易测试方法的流程示意图,如图3所示,在上述各实施例的基础上,进一步地,所述若判断获知所述已测试函数集和例行化测试函数集不匹配,则获取未覆盖函数包括:

S301、根据所述例行化测试函数集包括的每个函数在所述已测试函数集查询相同的函数;

具体地,所述分析服务器根据所述例行化测试函数集包括的每个函数,在所述已测试函数集中查询相同的函数,如果在所述已测试函数集中查询到相同的函数,说明在例行化业务交易测试的过程中执行了该函数,如果在所述已测试函数集中没有查询到相同的函数,说明在例行化业务交易测试的过程中没有执行该函数。

S302、将在所述已测试函数集中未查询到的函数作为未覆盖函数。

具体地,在所述例行化测试函数集包括的所有函数都查询完成之后,所述分析服务器将在所述已测试函数集中未查询到的函数作为未覆盖函数。

例如,所述已测试函数集中每个已执行函数的特征包括函数名,所述例行化测试函数集包括的每个函数包括函数名。如果所述例行化测试函数集中的一个函数A的函数名与所述已测试函数集中的函数a的函数名相同,那么在所述已测试函数集中查询到与函数A相同的函数a。如果所述例行化测试函数集中的函数A的函数名与所述已测试函数集中的所有函数的函数名都不相同,那么在所述已测试函数集中没有查询到与函数A相同的函数,将函数A作为未覆盖函数中的一个函数。

图4是本发明第四实施例提供的例行化业务交易测试方法的流程示意图,如图4所示,在上述各实施例的基础上,进一步地,所述根据所述未覆盖函数以及各个业务交易的调用链信息,获得所述未覆盖函数对应的未覆盖交易包括:

S401、根据所述未覆盖函数中的每个函数在各个业务交易的调用链信息查询相同的函数;

具体地,所述分析服务器根据所述未覆盖函数中的每个函数,查询每个业务交易的调用链信息,如果在某个业务交易的调用链信息中查询到相同的函数,说明该业务交易的该函数在例行化业务交易测试中没有被执行,该业务交易属于未覆盖交易。

S402、若所述业务交易的交易链信息包括所述未覆盖函数中的函数,则将所述业务交易作为所述未覆盖函数对应的未覆盖交易。

具体地,所述分析服务器如果查询到所述业务交易的交易链信息包括所述未覆盖函数中的函数,那么将所述业务交易作为所述未覆盖函数对应的未覆盖交易。对于未覆盖交易中的每个业务交易,可以记录与未覆盖函数中的哪些函数对应,即该业务交易的哪些函数在例行化业务交易测试中没有被执行。

图5是本发明第五实施例提供的例行化业务交易测试方法的流程示意图,如图5所示,在上述各实施例的基础上,进一步地,预先获得所述例行化测试函数集的步骤包括:

S501、接收应用服务器发送的各个业务交易的调用链信息;其中,每个业务交易的调用链信息是所述应用服务器基于客户端发送的每个业务交易的调用链信息采集请求,采集每个业务交易的执行函数获得的;每个业务交易的调用链信息包括每个业务交易的执行函数;

具体地,为了采集业务交易的调用链信息,测试人员可以通过客户端向应用服务器发送业务交易的调用链信息采集请求。所述应用服务器在接收到所述调用链信息采集请求之后,在执行业务交易的每个函数时会采集每个函数的特征,在业务交易的所有函数执行完成之后,会将采集获得的业务交易的各个函数的特征作为业务交易的调用链信息发送给所述分析服务器,所述分析服务器会接收各个业务交易的调用链信息。其中,每个业务交易的调用链信息包括每个业务交易的执行函数。

S502、合并各个业务交易的调用链信息包括的执行函数,获得所述例行化测试函数集。

具体地,对于例行化业务交易测试涉及的各个业务交易的调用链信息,所述分析服务器会将各个业务交易的调用链信息包括的执行函数进行合并,去除重复的函数,获得所述例行化测试函数集。

下面以应用服务器作为执行主体为例,对本发明实施例提供的例行化业务交易测试方法的具体实现过程进行说明。

图6是本发明第六实施例提供的例行化业务交易测试方法的流程示意图,如图6所示,本发明实施例提供的例行化业务交易测试方法,包括:

S601、接收客户端发送的例行化测试请求;

具体地,客户端向应用服务器发送例行化测试请求,所述例行化测试请求用于触发例行化业务交易测试,例行化业务交易测试涉及的业务交易是预设的。

S602、在预设时间段内进行例行化交易测试并采集每个已执行函数;

具体地,所述应用服务器会在预设时间段内进行例行化交易测试,在测试的过程中会执行各个业务交易的函数,在调用每个函数时,会对执行的函数进行记录,采集每个已执行函数。采集的每个执行函数包括执行函数的特征,上述特征可以包括类名、函数名和函数描述符等信息,根据实际需要进行设置,本发明实施例不做限定。

例如,所述应用服务器在所有业务交易的函数入口处插入覆盖率采集代码,覆盖率采集代码用于对执行过的函数进行记录。当业务交易的函数被调用时,就会先触发上述覆盖率采集代码的执行,覆盖率采集代码对执行的函数进行记录,记录的内容可以包括执行函数的特征和执行时间等信息,上述特征可以包括类名、函数名和函数描述符等。

S603、在例行化交易测试完成之后,将例行化测试结果发送给分析服务器,以使得所述分析服务器基于例行化测试结果输出未覆盖测试提示信息;其中,所述例行化测试结果包括各个已执行函数。

具体地,所述应用服务器可以在例行化交易测试完成之后,将采集的各个已执行函数携带在例行化测试结果中发送给分析服务器。所述分析服务器接收到例行化测试结果之后,可以执行上述任一实施例所述的例行化业务交易测试方法,基于例行化测试结果输出未覆盖测试提示信息。其中,基于例行化测试结果输出未覆盖测试提示信息的具体实现过程详见上文实施例,此处不进行赘述。

本发明实施例提供的例行化业务交易测试方法,能够接收客户端发送的例行化测试请求;在预设时间段内进行例行化交易测试并采集每个已执行函数;在例行化交易测试完成之后,将例行化测试结果发送给分析服务器,以使得所述分析服务器基于例行化测试结果输出未覆盖测试提示信息,能够获得未覆盖函数以及对应的未覆盖交易,提高未覆盖交易的识别效率。

图7是本发明第七实施例提供的例行化业务交易测试方法的流程示意图,如图7所示,在上述各实施例的基础上,进一步地,本发明实施例提供的例行化业务交易测试方法还包括:

S701、接收所述客户端发送的业务交易的至少一个调用链信息采集请求,每个调用链信息采集请求包括业务标签;

具体地,测试人员通过所述客户端设置业务交易对应的业务标签,所述客户端会将所述业务标签携带在每个调用链信息采集请求中发送给所述应用服务器,所述应用服务器会接收每个调用链信息采集请求,所述调用链信息采集请求用于触发业务标签对应的业务交易的调用链信息的采集。为了完整的采集业务交易的调用链信息,测试人员需要测试业务交易的所有功能,业务交易的不同功能可以对应不同的调用链信息采集请求。其中,业务交易与业务标签一一对应。

例如,测试人员进行转账交易的功能测试,测试人员在客户端配置转账业务标签,之后进行正常的转账交易测试。所述客户端会劫持转账业务的交易报文请求,为交易报文请求增加请求头,在请求头中携带转账业务标签,然后将修改后的交易报文请求作为调用链信息采集请求发送到所述应用服务器。

S702、进行所述业务标签对应的业务交易的执行函数的采集操作,将所述业务标签对应的业务交易的执行函数与所述业务标签对应;

具体地,所述应用服务器在接收到携带所述业务标签的调用链信息采集请求之后,会对执行所述业务标签对应的业务交易,并在执行所述业务标签对应的业务交易的过程中,采集所述业务标签对应的业务交易的执行函数,将所述业务标签对应的业务交易的执行函数与所述业务标签对应。

S703、基于所述业务标签以及对应的执行函数生成所述业务交易的调用链信息并将所述业务交易的调用链信息发送给所述分析服务器。

具体地,所述应用服务器在所述业务标签对应的业务交易测试完成之后,根据获得的业务标签对应的执行函数生成所述业务交易的调用链信息,所述业务交易的调用链信息包括采集到的所述业务交易的执行函数。所述应用服务器会将所述业务交易的调用链信息发送给所述分析服务器。

可理解的是,在进行例行化业务交易测试之前,会采集例行化业务交易测试涉及的所有业务交易的调用链信息存储到所述分析服务器。

图8是本发明第八实施例提供的例行化业务交易测试方法的流程示意图,如图8所示,在上述各实施例的基础上,进一步地,所述进行所述业务标签对应的业务交易的执行函数的采集操作,将所述业务标签对应的业务交易的执行函数与所述业务标签对应包括:

S801、若判断获知所述调用链信息采集请求包括业务标签,则建立线程共享变量并将所述业务标签存入到线程共享变量中;

具体地,所述应用服务器在接收到所述调用链信息采集请求之后,会判断所述调用链信息采集请求是否携带业务标签,如果不携带所述业务标签,则无需进行处理。如果携带所述业务标签,那么会建立线程共享变量,将所述业务标签存储到线程共享变量中。

S802、若判断获知所述线程共享变量中存在业务标签,则采集所述业务标签对应的业务交易的执行函数存入所述线程共享变量中,直至所述业务标签对应的业务交易执行完成;

具体地,所述分析服务器判断所述线程共享变量中是否存在业务标签,如果所述线程共享变量中存在业务标签,那么会执行所述业务标签对应的业务交易,在执行所述业务标签对应的业务交易的过程中,采集所述业务标签对应的业务交易的执行函数,将所述业务标签对应的业务交易的执行函数存入所述线程共享变量中,直到所述业务标签对应的业务交易执行完成。

S803、存储所述业务标签以及对应的执行函数并回收所述线程共享变量。

具体地,在所述业务标签对应的业务交易执行完成之后,所述应用服务器会将所述线程共享变量中的业务标签以及执行函数对应,获得所述业务标签以及所述业务标签对应的执行函数,并存储所述业务标签以及所述业务标签对应的执行函数。所述应用服务器在存储所述业务标签以及对应的执行函数之后,会回收所述线程共享变量,即删除线程共享变量并清空线程共享变量中存储的数据。

图9是本发明第九实施例提供的客户端的结构示意图,如图9所示,在上述各实施例的基础上,进一步地,本发明实施例提供的客户端1包括代理设置模块101、流量劫持模块102和交易标记模块103,其中:

代理设置模块101用于对客户端1进行自动代理设置。其中,为保证HTTPS流量的正常抓取,代理设置模块101还用于HTTPS认证证书的自动安装。

流量劫持模块102用于劫持业务交易的交易报文请求,将业务标签添加到交易报文请求的请求头中,获得调用链信息采集请求并转发调用链信息采集请求。

交易标记模块103用于设置业务交易的业务标签。测试人员在交易标记模块103提供的设置界面,为业务交易设置对应的业务标签。

图10是本发明第十实施例提供的应用服务器的结构示意图,如图10所示,在上述各实施例的基础上,进一步地,本发明实施例提供的应用服务器2包括插桩模块201和信息上送模块202,其中:

插桩模块201用于将插桩代码注入到被测业务交易的代码中。其中,插桩代码包括:业务交易的调用链信息获取代码和覆盖率采集代码。在接收到客户端1发送的携带业务标签的调用链信息采集请求时,插桩模块201会将业务交易的调用链信息获取代码插入到业务交易的代码中,采集所述业务标签对应的业务交易的执行函数。在接收到客户端1发送的例行化测试请求之后,插桩模块201会将覆盖率采集代码插入到业务交易的代码中,采集业务交易的执行函数。

其中,业务交易的调用链信息获取代码可以包括函数调用链采集开始代码和函数调用链采集回收代码。为了处理调用链信息采集请求,HTTP请求处理函数的入口处插入函数调用链采集开始代码,判断调用链信息采集请求是否包括业务标签,若不包括,则不进行调用链信息的采集;如果包括,则记录业务标识,并建立线程共享变量,将交易标识存入线程共享变量中。在业务交易的代码执行后,函数调用链采集开始代码判断当前线程共享变量中是否包括业务标识,如果包括将执行的函数的特征存入线程共享变量,直到当前业务交易线程执行完成。在HTTP请求处理函数的返回处,插入函数调用链采集回收代码,用于对线程共享变量采集到的业务标识和函数的特征保存至临时变量中,获得业务交易的调用链信息,并回收线程共享变量。

为了处理例行化测试请求,插桩模块201用于在业务交易的所有函数入口处插入覆盖率采集代码,当在业务交易的函数被调用时,就会先触发覆盖率采集代码的执行,对执行的函数进行记录,可以记录执行函数的特征、执行时间等信息,获得例行化测试结果。

信息上送模块302用于将业务交易的调用链信息以及例行化测试结果上报給分析服务器3。由于例行化交易测试会持续一段时间,可以按照一定的时间间隔分多次上报例行化测试结果.

图11是本发明第十一实施例提供的分析服务器的结构示意图,如图11所示,在上述各实施例的基础上,进一步地,本发明实施例提供的分析服务器3包括未覆盖函数查询模块301、未覆盖交易查询模块302和信息展示模块303,其中:

未覆盖函数查询模块301用于查询例行化业务交易测试中未覆盖的函数清单。可以在例行化业务交易测试完成之后,查询例行化业务交易测试中未覆盖的函数清单,即在例行化业务交易测试中未执行的函数的清单。

未覆盖交易查询模块302用于查询未覆盖的交易。基于未覆盖的函数清单以及各个业务交易的调用链信息可以查询获得未覆盖的交易,即通过未覆盖的函数清单中的每个函数查询对应哪个业务交易,以便更直观的帮助测试人员进行测试分析。

信息展示模块303用于统计分析例行化业务交易测试的覆盖情况。信息展示模块303提供的统计分析功能,可以统计例行化业务交易测试未覆盖的函数占所有函数的比例,还可以统计未覆盖的交易占所有业务交易的比例。信息展示模块303的统计功能根据实际需要进行设置,本发明实施例不做限定。

图12是本发明第十二实施例提供的例行化业务交易测试装置的结构示意图,如图12所示,本发明实施例提供的例行化业务交易测试装置包括第一接收模块1201、合并模块1202、判断模块1203和输出模块1204,其中:

第一接收模块1201用于接收应用服务器发送的例行化测试结果,所述例行化测试结果包括各个已执行函数;其中,所述例行化测试结果是所述应用服务器在预设时间段内进行例行化交易测试并采集每个已执行函数获得的;合并模块1202用于合并各个已执行函数,获得已测试函数集;判断模块1203用于在判断获知所述已测试函数集和例行化测试函数集不匹配之后,获取未覆盖函数;其中,所述例行化测试函数集是预先获得的;输出模块1204用于根据所述未覆盖函数以及各个业务交易的调用链信息,获得所述未覆盖函数对应的未覆盖交易并输出未覆盖测试提示信息;其中,所述未覆盖测试提示信息包括所述未覆盖函数对应的未覆盖交易;所述业务交易的调用链信息是预先获得的,包括所述业务交易对应的函数。

具体地,应用服务器会在预设时间段内进行例行化交易测试,在进行例行化交易测试时会采集各个执行的函数作为已执行函数,在例行交易化测试完成之后将携带各个已执行函数的例行化测试结果发送给第一接收模块1201,第一接收模块1201会接收所述例行化测试结果。其中,已执行函数可以通过函数的特征进行记录,函数的特征可以包括类名、函数名和函数描述符等信息,根据实际需要进行设置,本发明实施例不做限定。所述例行化测试结果还可以包括各个已执行函数的执行时间等信息,根据实际需要进行设置,本发明实施例不做限定。所述预设时间段根据实际需要进行设置,比如5天,本发明实施例不做限定。

合并模块1202将各个已执行函数合并为已测试函数集,已测试函数集表示在例行化测试中已经执行的函数的合集。由于在一次例行化测试中,经常涉及多个业务交易,不同的业务交易可能具有相同的函数,如果各个已执行函数中存在相同的函数,可以进行函数去重,再合并获得已测试函数集,以减少后续判断已测试函数集和例行化测试函数集是否匹配需要处理的函数的数量,提高数据处理效率。

判断模块1203将所述已测试函数集与例行化测试函数集进行比较,如果例行化测试函数集中存在所述已测试函数集没有的函数,说明例行化业务交易测试的过程中存在未执行的函数,所述已测试函数集和例行化测试函数集不匹配,将上述未执行的函数作为未覆盖函数,即例行化业务交易测试未执行的函数。其中,所述例行化测试函数集是预先获得的,所述例行化测试函数集中的函数是例行化业务交易测试需要执行的函数。

输出模块1204根据所述未覆盖函数中每个函数查询各个业务交易的调用链信息,如果在某个业务交易的调用链信息中查询到相同的函数,那么上述某个业务交易作为未覆盖函数对应的未覆盖交易中的一个业务交易。在所述未覆盖函数中所有函数都查询完成之后,获得所述未覆盖函数对应的未覆盖交易。输出模块1204可以通过邮件、系统信息等方式输出未覆盖测试提示信息给测试人员,以提示例行化业务交易测试过程中哪些业务交易存在未执行的函数,以便于测试人员及时对未覆盖交易进行重新测试。其中,所述未覆盖测试提示信息包括所述未覆盖函数对应的未覆盖交易;所述业务交易的调用链信息是预先获得的,包括所述业务交易对应的函数。所述业务交易对应的函数可以通过函数的特征进行记录,函数的特征可以包括类名、函数名和函数描述符等信息,根据实际需要进行设置,本发明实施例不做限定。

本发明实施例提供的例行化业务交易测试装置,能够接收应用服务器发送的例行化测试结果,例行化测试结果包括各个已执行函数,若判断获知已测试函数集和例行化测试函数集不匹配,则获取未覆盖函数,根据未覆盖函数以及各个业务交易的调用链信息,获得未覆盖函数对应的未覆盖交易并输出未覆盖测试提示信息,能够获得未覆盖函数以及对应的未覆盖交易,提高未覆盖交易的识别效率。此外测试人员能够尽快获知未覆盖交易,能够尽快进行重新测试,提高了例行化业务交易测试的可靠性。

图13是本发明第十三实施例提供的例行化业务交易测试装置的结构示意图,如图13所示,在上述各实施例的基础上,进一步地,判断模块1203包括第一查询单元12031和获取单元12032,其中:

第一查询单元12031用于根据所述例行化测试函数集包括的每个函数在所述已测试函数集查询相同的函数;获取单元12032用于获取在所述已测试函数集中未查询到的函数作为未覆盖函数。

图14是本发明第十四实施例提供的例行化业务交易测试装置的结构示意图,如图14所示,在上述各实施例的基础上,进一步地,输出模块1204包括第二查询单元12041和作为单元12042,其中:

第二查询单元12041用于根据所述未覆盖函数中的每个函数在各个业务交易的调用链信息查询对应的函数;作为单元12042用于若所述业务交易的交易链信息包括所述未覆盖函数中的函数,则将所述业务交易作为所述未覆盖函数对应的未覆盖交易。

图15是本发明第十五实施例提供的例行化业务交易测试装置的结构示意图,如图15所示,在上述各实施例的基础上,进一步地,本发明实施例提供的例行化业务交易测试装置还包括第三接收模块1205和获得模块1206,其中:

第三接收模块1205用于接收应用服务器发送的各个业务交易的调用链信息;其中,每个业务交易的调用链信息是所述应用服务器基于客户端发送的每个业务交易的至少一个调用链信息采集请求,采集每个业务交易的执行函数获得的;每个业务交易的调用链信息包括每个业务交易的执行函数;获得模块1206用于合并各个业务交易的调用链信息包括的执行函数,获得所述例行化测试函数集。

图16是本发明第十六实施例提供的例行化业务交易测试装置的结构示意图,如图16所示,本发明实施例提供的例行化业务交易测试装置包括第二接收模块1601、采集模块1602和发送模块1603,其中:

第二接收模块1601用于接收客户端发送的例行化测试请求;采集模块1602用于在预设时间段内进行例行化交易测试并采集每个已执行函数;发送模块1603用于在例行化交易测试完成之后,将例行化测试结果发送给分析服务器,以使得所述分析服务器基于例行化测试结果输出未覆盖测试提示信息;其中,所述例行化测试结果包括各个已执行函数。

具体地,客户端向第二接收模块1601发送例行化测试请求,所述例行化测试请求用于触发例行化业务交易测试,例行化业务交易测试涉及的业务交易是预设的。

采集模块1602会在预设时间段内进行例行化交易测试,在测试的过程中会执行各个业务交易的函数,在调用每个函数时,会对执行的函数进行记录,采集每个已执行函数。采集的每个执行函数包括执行函数的特征,上述特征可以包括类名、函数名和函数描述符等信息,根据实际需要进行设置,本发明实施例不做限定。

发送模块1603可以在例行化交易测试完成之后,将采集的各个已执行函数携带在例行化测试结果中发送给分析服务器。所述分析服务器接收到例行化测试结果之后,可以执行上述任一实施例所述的例行化业务交易测试方法,基于例行化测试结果输出未覆盖测试提示信息。其中,基于例行化测试结果输出未覆盖测试提示信息的具体实现过程详见上文实施例,此处不进行赘述。

本发明实施例提供的例行化业务交易测试装置,能够接收客户端发送的例行化测试请求;在预设时间段内进行例行化交易测试并采集每个已执行函数;在例行化交易测试完成之后,将例行化测试结果发送给分析服务器,以使得所述分析服务器基于例行化测试结果输出未覆盖测试提示信息,能够获得未覆盖函数以及对应的未覆盖交易,提高未覆盖交易的识别效率。

图17是本发明第十七实施例提供的例行化业务交易测试装置的结构示意图,如图17所示,本发明实施例提供的例行化业务交易测试装置还包括第四接收模块1604、采集操作模块1605和生成模块1606,其中:

第四接收模块1604用于接收所述客户端发送的业务交易的至少一个调用链信息采集请求,每个调用链信息采集请求包括业务标签;采集操作模块1605用于进行所述业务标签对应的业务交易的执行函数的采集操作,将所述业务标签对应的业务交易的执行函数与所述业务标签对应;生成模块1606用于基于所述业务标签对应的执行函数生成所述业务交易的调用链信息并将所述业务交易的调用链信息发送给所述分析服务器。

图18是本发明第十八实施例提供的例行化业务交易测试装置的结构示意图,如图18所示,在上述各实施例的基础上,进一步地,采集操作模块1605包括建立单元16051、采集单元16052和回收单元16053,其中:

建立单元16051用于在判断获知所述调用链信息采集请求包括业务标签之后,建立线程共享变量并将所述业务标签存入到线程共享变量中;采集单元16052用于在判断获知所述线程共享变量中存在业务标签之后,采集所述业务标签对应的业务交易的执行函数存入所述线程共享变量中,直至所述业务标签对应的业务交易执行完成;回收单元16053用于存储所述业务标签以及对应的执行函数并回收所述线程共享变量。

本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。

需要说明的是,本发明实施例提供的例行化业务交易测试方法及装置可用于金融领域,也可用于除金融领域之外的任意技术领域,本发明实施例对例行化业务交易测试方法及装置的应用领域不做限定。

图19是本发明一实施例提供的电子设备的实体结构示意图,如图19所示,该电子设备可以包括:处理器(processor)1901、通信接口(Communications Interface)1902、存储器(memory)1903和通信总线1904,其中,处理器1901,通信接口1902,存储器1903通过通信总线1904完成相互间的通信。处理器1901可以调用存储器1903中的逻辑指令,以执行如下方法:接收应用服务器发送的例行化测试结果,所述例行化测试结果包括各个已执行函数;其中,所述例行化测试结果是所述应用服务器在预设时间段内进行例行化交易测试并采集每个已执行函数获得的;合并各个已执行函数,获得已测试函数集;若判断获知所述已测试函数集和例行化测试函数集不匹配,则获取未覆盖函数;其中,所述例行化测试函数集是预先获得的;根据所述未覆盖函数以及各个业务交易的调用链信息,获得所述未覆盖函数对应的未覆盖交易并输出未覆盖测试提示信息;其中,所述未覆盖测试提示信息包括所述未覆盖函数对应的未覆盖交易;所述业务交易的调用链信息是预先获得的,包括所述业务交易对应的函数。或者

接收客户端发送的例行化测试请求;在预设时间段内进行例行化交易测试并采集每个已执行函数;在例行化交易测试完成之后,将例行化测试结果发送给分析服务器,以使得所述分析服务器基于例行化测试结果输出未覆盖测试提示信息;其中,所述例行化测试结果包括各个已执行函数。

此外,上述的存储器1903中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收应用服务器发送的例行化测试结果,所述例行化测试结果包括各个已执行函数;其中,所述例行化测试结果是所述应用服务器在预设时间段内进行例行化交易测试并采集每个已执行函数获得的;合并各个已执行函数,获得已测试函数集;若判断获知所述已测试函数集和例行化测试函数集不匹配,则获取未覆盖函数;其中,所述例行化测试函数集是预先获得的;根据所述未覆盖函数以及各个业务交易的调用链信息,获得所述未覆盖函数对应的未覆盖交易并输出未覆盖测试提示信息;其中,所述未覆盖测试提示信息包括所述未覆盖函数对应的未覆盖交易;所述业务交易的调用链信息是预先获得的,包括所述业务交易对应的函数。或者

接收客户端发送的例行化测试请求;在预设时间段内进行例行化交易测试并采集每个已执行函数;在例行化交易测试完成之后,将例行化测试结果发送给分析服务器,以使得所述分析服务器基于例行化测试结果输出未覆盖测试提示信息;其中,所述例行化测试结果包括各个已执行函数。

本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收应用服务器发送的例行化测试结果,所述例行化测试结果包括各个已执行函数;其中,所述例行化测试结果是所述应用服务器在预设时间段内进行例行化交易测试并采集每个已执行函数获得的;合并各个已执行函数,获得已测试函数集;若判断获知所述已测试函数集和例行化测试函数集不匹配,则获取未覆盖函数;其中,所述例行化测试函数集是预先获得的;根据所述未覆盖函数以及各个业务交易的调用链信息,获得所述未覆盖函数对应的未覆盖交易并输出未覆盖测试提示信息;其中,所述未覆盖测试提示信息包括所述未覆盖函数对应的未覆盖交易;所述业务交易的调用链信息是预先获得的,包括所述业务交易对应的函数。或者

接收客户端发送的例行化测试请求;在预设时间段内进行例行化交易测试并采集每个已执行函数;在例行化交易测试完成之后,将例行化测试结果发送给分析服务器,以使得所述分析服务器基于例行化测试结果输出未覆盖测试提示信息;其中,所述例行化测试结果包括各个已执行函数。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号