掌桥专利:专业的专利平台
掌桥专利
首页

自动化接口测试案例执行方法及装置

文献发布时间:2023-06-19 11:16:08


自动化接口测试案例执行方法及装置

技术领域

本发明涉及自动化数据测试领域,可应用于大数据领域和金融应用开发领域,尤指一种自动化接口测试案例执行方法及装置。

背景技术

随着互联网行业业务的复杂性,自动化案例的执行必须支持各种业务场景的案例执行来实现测试人员业务场景的验证。然而目前自动化测试行业,缺少一个完整的设计方案,通过简单的配置,来动态地适配应用系统高并发、复杂性高的特点并进行各种测试场景的处理方案。

当前自动化接口测试案例的执行,主要通过编码方式控制,同时采用原生testng底层架构,很难适配当前复杂的业务场景:

1、目前大多自动化工具都是通过编码进行编写,即使部分工具对案例数据进行存储,也无法做到案例与流程的解耦,导致应用业务的改动,需要批量修改测试案例,对案例的影响较大。

2、通过代码很难动态地控制并发、控制串行、控制接口聚合等,如果通过编码方式,自动化类似很多案例场景很难实现。

3、当前行业自动化测试使用应用服务一旦业务发生变化,所有测试代码都需要修改调试,维护成本高。

发明内容

本发明目的在于提供一种自动化接口测试案例执行方法及装置,通过配置方式,提供测试人员业务场景的编写,降低测试人员对工具的使用难度,并且支持可智能适配被测应用服务器并发、特定接口串行、案例执行优先顺序等属性功能,完成适配所有业务场景的自动化测试。

为达上述目的,本发明所提供的一种自动化接口测试案例执行方法,所述方法包含:获取待测试案例的接口定义数据,根据接口定义数据设定预设决策树模型中各叶子节点的属性获得决策树数据;根据待测试案例的业务流程通过流程编排生成决策树结构的案例编排数据;获得待测试案例的案例数据,根据所述案例数据和所述案例编排数据生成测试案例代码;根据所述案例编排数据和所述决策树数据生成所述测试案例代码对应的各接口的标识信息;通过所述测试案例代码和所述标识信息执行自动化接口测试案例。

在上述自动化接口测试案例执行方法中,优选的,所述方法还包含:获取所述测试案例代码和所述标识信息执行过程中于业务流程的每一步的执行结果;将所述执行结果与预设阈值比较,根据比较结果获取所述待测试案例的执行结果。

在上述自动化接口测试案例执行方法中,优选的,根据接口定义设定预设决策树模型中各叶子节点的属性包含:以所述叶子节点作为所述接口定义中各接口,根据各接口对应的接口定义数据设定所述叶子节点的属性;其中所述属性包含控制并发标识、串行标识、权重标识和聚合执行标识。

在上述自动化接口测试案例执行方法中,优选的,根据待测试案例的业务流程通过流程编排生成决策树结构的案例编排数据包含:通过决策树结构定义每个接口的接口要素;通过所述接口要素确定所述测试案例代码的执行流程;其中,所述接口要素包含执行优先级、合并执行、单例执行和并发执行的并发量。

在上述自动化接口测试案例执行方法中,优选的,通过所述测试案例代码和所述标识信息执行自动化接口测试案例包含:当所述叶子节点包含权重标识时,根据所述权重标识获得所述待测试案例的每一步接口的执行顺序;将所述待测试案例的每一步接口的执行顺序放入SortedMap中,并通过key值大小对接口执行顺序进行优先级排序。

在上述自动化接口测试案例执行方法中,优选的,通过所述测试案例代码和所述标识信息执行自动化接口测试案例包含:当所述叶子节点包含串行标识时,将正在执行的测试案例代码放入阻塞队列中;当测试案例代码执行完所有接口,或测试案例代码执行并解除串行标识对应的接口后,于所述阻塞队列中移除所述测试案例代码;所述阻塞队列的队列容量为1。

在上述自动化接口测试案例执行方法中,优选的,通过所述测试案例代码和所述标识信息执行自动化接口测试案例包含:当所述叶子节点包含并发标识时,将正在执行的测试案例代码放入阻塞队列中;当测试案例代码执行对应并发标识的接口后,于所述阻塞队列中移除所述测试案例代码;所述阻塞队列的队列容量为大于1的整数。

在上述自动化接口测试案例执行方法中,优选的,通过所述测试案例代码和所述标识信息执行自动化接口测试案例包含:当所述叶子节点包含聚合执行标识时,将当前流程中执行叶子节点对应的接口的测试案例代码放入预设集合,并为测试案例代码分配锁标识;根据所述锁标识通过加锁的方式控制下一批需要执行所述接口的测试案例代码处于等待状态。

本发明还提供一种自动化接口测试案例执行装置,所述装置包含定义模块、编排模块、代码生成模块、标识模块和执行模块;所述定义模块用于获取待测试案例的接口定义数据,根据接口定义数据设定预设决策树模型中各叶子节点的属性获得决策树数据;所述编排模块用于根据待测试案例的业务流程通过流程编排生成决策树结构的案例编排数据;所述代码生成模块用于获得待测试案例的案例数据,根据所述案例数据和所述案例编排数据生成测试案例代码;所述标识模块用于根据所述案例编排数据和所述决策树数据生成所述测试案例代码对应的各接口的标识信息;所述执行模块用于通过所述测试案例代码和所述标识信息执行自动化接口测试案例。

在上述自动化接口测试案例执行装置中,优选的,所述装置还包含比较模块,所述比较模块用于获取所述测试案例代码和所述标识信息执行过程中于业务流程的每一步的执行结果;将所述执行结果与预设阈值比较,根据比较结果获取所述待测试案例的执行结果。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

本发明的有益技术效果在于:采用决策树数据结构进行数据解析和案例执行,对于高并发案例执行,工具通过决策树节点的属性进行决策,来控制案例执行顺序、接口并发量、接口串行化、以及对多个并发案例中涉及的某接口进行聚合执行等;解耦业务流程与测试案例,当案例业务流程发生变化时,只需要修改流程编排,无需批量修改受影响的案例;案例支持多种接口类型的自动化测试(api、rpc、http、socket等),流程编排过程可插入查询语句对数据库数据进行断言,也可以插入数据库操作语句,对案例执行过程中制造对应场景。

附图说明

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

图1为本发明一实施例所提供的自动化接口测试案例执行方法的流程示意图;

图2为本发明一实施例所提供的案例编排数据生成过程中接口要素的定义流程示意图;

图3为本发明一实施例所提供的案例编排数据中各场景的流程编排示意图;

图4为本发明一实施例所提供的聚合案例执行的流程示意图;

图5为本发明一实施例所提供的购物场景下案例编排数据的结构示意图;

图6为本发明一实施例所提供的聚合点设置过程中决策树转换的有向无环示意图;

图7为本发明一实施例所提供的自动化接口测试案例执行装置的结构示意图;

图8为本发明一实施例所提供的电子设备的结构示意图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

请参考图1所示,本发明所提供的一种自动化接口测试案例执行方法,所述方法包含:

步骤S101:获取待测试案例的接口定义数据,根据接口定义数据设定预设决策树模型中各叶子节点的属性获得决策树数据;

步骤S102:根据待测试案例的业务流程通过流程编排生成决策树结构的案例编排数据;

步骤S103:获得待测试案例的案例数据,根据所述案例数据和所述案例编排数据生成测试案例代码;

步骤S104:根据所述案例编排数据和所述决策树数据生成所述测试案例代码对应的各接口的标识信息;

步骤S105:通过所述测试案例代码和所述标识信息执行自动化接口测试案例。

在本发明另一实施例中,所述方法还可包含:获取所述测试案例代码和所述标识信息执行过程中于业务流程的每一步的执行结果;将所述执行结果与预设阈值比较,根据比较结果获取所述待测试案例的执行结果。由此,测试人员通过自动化平台维护接口的执行顺序,完成案例编排,并通过引用流程编排,进行测试案例的编写,测试案例与流程编排的单向依赖,使得案例间的执行数据不会相互受到影响。平台使用决策树作为数据结构,每个叶子节点都是一个接口,每个接口可配置多种属性,用来控制并发、串行、权重、聚合执行等场景,用户通过平台执行案例时对流程的每一步与预期值比对,全部通过则案例执行通过,具体的,详细实施方式将在后续实施例中逐一说明,在此就不再一一详述。

在本发明一实施例中,根据接口定义设定预设决策树模型中各叶子节点的属性包含:以所述叶子节点作为所述接口定义中各接口,根据各接口对应的接口定义数据设定所述叶子节点的属性;其中所述属性包含控制并发标识、串行标识、权重标识和聚合执行标识。进一步的,请参考图2所示,在本发明一实施例中,根据待测试案例的业务流程通过流程编排生成决策树结构的案例编排数据包含:

步骤S201:通过决策树结构定义每个接口的接口要素;

步骤S202:通过所述接口要素确定所述测试案例代码的执行流程;其中,所述接口要素包含执行优先级、合并执行、单例执行和并发执行的并发量。

在实际工作中,流程编排采用决策树模式进行存储,对于每个接口,都包含4部分接口要素,用来决策该接口执行优先级、是否合并执行、是否单例执行及并发执行的并发量。具体可参考图3所示,场景1:聚合设置,每个案例都包含特定的接口,该接口需要N个案例到达该节点后共同执行,如定时任务;场景2:并发控制,案例中某接口并发超过应用承受,部分接口排队等待;场景3:串行化标志,只有待案例1执行完成以后,才可以继续执行其它案例;场景4:执行权重设置,同一并发批次,可以设置接口执行的权重控制接口执行的先后顺序;

在上述实施例中,通过所述测试案例代码和所述标识信息执行自动化接口测试案例包含:当所述叶子节点包含权重标识时,根据所述权重标识获得所述待测试案例的每一步接口的执行顺序;将所述待测试案例的每一步接口的执行顺序放入SortedMap中,并通过key值大小对接口执行顺序进行优先级排序。具体的,执行案例前,将所有案例每一步接口的执行顺序放入SortedMap中,map的key是执行顺序,value为所有该执行顺序接口案例集合,key值越小,优先级越高。当执行案例的每一步接口时,判断一下SortedMap中是否存在key比当前接口执行顺序小的,存在则休眠;当案例的每一步接口执行完后,则把案例从SortedMap对应接口执行顺序的集合中移出;如果集合中的元素已全部移出,则把集合从SortedMap中移出,并唤醒正在休眠的案例。

在上述实施例中,通过所述测试案例代码和所述标识信息执行自动化接口测试案例包含:当所述叶子节点包含串行标识时,将正在执行的测试案例代码放入阻塞队列中;当测试案例代码执行完所有接口,或测试案例代码执行并解除串行标识对应的接口后,于所述阻塞队列中移除所述测试案例代码;所述阻塞队列的队列容量为1。具体的,使用阻塞队列,设置队列的容量为1,将正在执行的案例放入队列中,当案例执行完所有接口或者案例执行完标识解除串行化控制的接口,就从队列中将该案例移出。当队列中已经存在案例,继续将案例放入则出现阻塞,必须等待队列中的案例移出。

在上述实施例中,通过所述测试案例代码和所述标识信息执行自动化接口测试案例包含:当所述叶子节点包含并发标识时,将正在执行的测试案例代码放入阻塞队列中;当测试案例代码执行对应并发标识的接口后,于所述阻塞队列中移除所述测试案例代码;所述阻塞队列的队列容量为大于1的整数。具体的,使用阻塞队列,设置队列的容量,将正在执行的案例放入队列中,每当一个案例执行完该接口,就从队列中将该案例移出。当队列满了,继续将案例放入则出现阻塞,必须等待其他案例从队列中移出。

如图4所示,在本发明一实施例中,通过所述测试案例代码和所述标识信息执行自动化接口测试案例包含:

步骤S401:当所述叶子节点包含聚合执行标识时,将当前流程中执行叶子节点对应的接口的测试案例代码放入预设集合,并为测试案例代码分配锁标识;

步骤S402:根据所述锁标识通过加锁的方式控制下一批需要执行所述接口的测试案例代码处于等待状态。

在实际工作中,先将需要执行该接口的案例放入集合中,然后这些案例获取锁,没拿到锁的案例休眠,拿到锁的案例等待10s,比对等待前后集合中的案例数,如果不变就执行该接口,执行完后唤醒没拿到锁、正在休眠的案例;执行该接口时,通过加锁的方式控制下一批要执行该接口的案例处于阻塞状态。以购物场景为例,可参考图5所示的流程编排及数据存储格式,其中白色代表测试案例,有底色的代表接口,接口的串联组成流程编排。每个接口都包含执行权重、串行化标识、并发权重、聚合标识。案例执行的部分场景,如批量处理、批量定时任务等,需要设置聚合点,来达到多个案例对于某共同接口只执行一次,因此对决策树进行转换,转换为有向无环图,如图6所示,案例执行时,通过流程编排使用velocity模板化生成自动化测试案例代码,自动化通过接口设置的权重及执行方式,生成对应标识,并将案例代码加载到缓存,进行后续测试作业。

请参考图7所示,本发明还提供一种自动化接口测试案例执行装置,所述装置包含定义模块、编排模块、代码生成模块、标识模块和执行模块;所述定义模块用于获取待测试案例的接口定义数据,根据接口定义数据设定预设决策树模型中各叶子节点的属性获得决策树数据;所述编排模块用于根据待测试案例的业务流程通过流程编排生成决策树结构的案例编排数据;所述代码生成模块用于获得待测试案例的案例数据,根据所述案例数据和所述案例编排数据生成测试案例代码;所述标识模块用于根据所述案例编排数据和所述决策树数据生成所述测试案例代码对应的各接口的标识信息;所述执行模块用于通过所述测试案例代码和所述标识信息执行自动化接口测试案例。

在上述实施例中,所述装置还可包含比较模块,所述比较模块用于获取所述测试案例代码和所述标识信息执行过程中于业务流程的每一步的执行结果;将所述执行结果与预设阈值比较,根据比较结果获取所述待测试案例的执行结果。

本发明所提供的自动化接口测试案例执行方法及装置解决了复杂业务系统中对各种并发、串行等案例要求的执行,自动化接口执行驱动采用决策树作为数据结构,内部节点分支代表一种流程编排,外部节点(叶节点)代表执行案例,使得案例遍历存储速度快,支持高维度案例数据的组装,并且对案例数据、流程编排进行了完全解耦,便于后续智能化案例的组装,其优点如下:

采用决策树数据结构进行数据解析和案例执行,对于高并发案例执行,工具通过决策树节点的属性进行决策,来控制案例执行顺序、接口并发量、接口串行化、以及对多个并发案例中涉及的某接口进行聚合执行等;解耦业务流程与测试案例,当案例业务流程发生变化时,只需要修改流程编排,无需批量修改受影响的案例;案例支持多种接口类型的自动化测试(api、rpc、http、socket等),流程编排过程可插入查询语句对数据库数据进行断言,也可以插入数据库操作语句,对案例执行过程中制造对应场景。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

如图8所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图8中所示的所有部件;此外,电子设备600还可以包括图8中没有示出的部件,可以参考现有技术。

如图8所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。

其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。

输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。

该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。

存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。

通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。

基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。

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

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

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

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

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

相关技术
  • 自动化接口测试案例执行方法及装置
  • 一种自动化的接口压力测试执行方法、装置和系统
技术分类

06120112859849