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

一种测试任务生成方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 13:29:16


一种测试任务生成方法、装置、电子设备及存储介质

技术领域

本发明涉及软件测试领域,特别涉及一种测试任务生成方法、装置、电子设备及存储介质。

背景技术

软件测试是软件开发工作中的重要环节。为提升测试效率,通常会采用自动化测试平台对软件进行自行测试,而测试人员需要在该平台上创建相应的测试任务。相关技术中,测试人员在进行每次软件测试时,都需要在测试平台中创建对应的测试任务,当测试任务较多,或是每一测试任务中包含较多测试用例时,上述任务创建方式将会为测试人员带来大量的手动操作工作,进而降低了测试人员的测试效率。

发明内容

本发明的目的是提供一种测试任务生成方法、装置、电子设备及存储介质,可对已创建的任务条目进行复用,实现新任务条目的批量生成,进而有效简化人工操作并提升测试人员的测试效率。

为解决上述技术问题,本发明提供一种测试任务生成方法,包括:

在与前端设备建立会话后,接收所述前端设备发送的任务复制参数;

根据所述任务复制参数中的任务ID,在数据库中查询对应的目标任务条目;所述数据库保存有多个已创建的任务条目;

按照所述目标任务条目的多表关联关系在所述数据库中创建新任务条目,并将所述目标任务条目中的数据复制到所述新任务条目。

可选地,所述将所述目标任务条目中的数据复制到所述新任务条目,包括:

将所述目标任务条目中的数据复制到所述新任务条目,并监听复制状态;

当确定所述复制状态为成功时,向所述前端设备发送成功信息;

当确定所述复制状态为失败时,向所述前端设备发送失败信息。

可选地,所述监听复制状态,包括:

利用Gunicorn服务的协程模式监听所述复制状态。

可选地,所述创建新任务条目,包括:

读取所述任务复制参数中的任务类型参数;

当所述任务类型参数表示生成即时任务时,创建新即时任务条目;

当所述任务类型参数表示生成定时任务时,创建新定时任务条目。

可选地,在与前端设备建立会话之后,还包括:

从所述会话中提取所述前端设备的用户ID;

相应的,在按照所述目标任务条目的多表关联关系在所述数据库中创建新任务条目之后,还包括:

将所述用户ID插入所述新任务条目。

可选地,所述按照所述目标任务条目的多表关联关系在所述数据库中创建新任务条目,并将所述目标任务条目中的数据复制到所述新任务条目,包括:

确定所述目标任务条目归属的数据库主表和数据库从表;

在所述数据库主表中创建新任务ID及与所述新任务ID对应的第一任务条目,并将所述目标任务条目在所述数据库主表中的数据复制到所述第一任务条目;

在所述数据库从表中创建与所述新任务ID关联的第二任务条目,并将所述目标任务条目在所述数据库从表中的数据复制到所述第二任务条目。

本发明还提供一种测试任务生成装置,包括:

参数接收模块,用于在与前端设备建立会话后,接收所述前端设备发送的任务复制参数;

查询模块,用于根据所述任务复制参数中的任务ID,在数据库中查询对应的目标任务条目;所述数据库保存有多个已创建的任务条目;

任务复制模块,用于按照所述目标任务条目的多表关联关系在所述数据库中创建新任务条目,并将所述目标任务条目中的数据复制到所述新任务条目。

可选地,所述任务复制模块,包括:

复制监听子模块,用于将所述目标任务条目中的数据复制到所述新任务条目,并监听复制状态;

成功响应子模块,用于当确定所述复制状态为成功时,向所述前端设备发送成功信息;

失败响应子模块,用于当确定所述复制状态为失败时,向所述前端设备发送失败信息。

本发明还提供一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述所述的测试任务生成方法的步骤。

本发明还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的测试任务生成方法的步骤。

本发明提供一种测试任务生成方法,包括:在与前端设备建立会话后,接收所述前端设备发送的任务复制参数;根据所述任务复制参数中的任务ID,在数据库中查询对应的目标任务条目;所述数据库保存有多个已创建的任务条目;按照所述目标任务条目的多表关联关系在所述数据库中创建新任务条目,并将所述目标任务条目中的数据复制到所述新任务条目。

可见,本发明中执行测试任务生成过程的后端设备会在与用户所使用的前端设备建立会话后,自动接收其发送的任务复制参数,并根据该参数中的任务ID确定数据库中的目标任务条目,由于数据库中存有多个已创建的任务条目,因此本发明可由用户根据已创建任务条目的任务ID自由选择所需复用的任务条目;在确定目标任务条目后,后端设备便会根据该条目的多表关联关系,有序地创建新任务条目,并将目标任务条目中的数据复制到新任务条目,换而言之,本发明可对已创建的任务条目进行复用,实现新任务条目的批量生成,进而有效简化人工操作并提升测试人员的测试效率,同时本发明还可根据目标任务条目的多表关联关系对新任务条目进行有序、准确的复制,进而能够确保新任务条目数据准确无误。本发明还提供一种测试任务生成装置、电子设备及存储介质,具有上述有益效果。

附图说明

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

图1为本发明实施例所提供的一种测试任务生成方法的流程图;

图2为本发明实施例所提供的另一种测试任务生成方法的流程图;

图3为本发明实施例所提供的一种测试任务生成装置的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

相关技术中,测试人员在进行每次软件测试时,都需要在测试平台中创建对应的测试任务,当测试任务较多,或是每一测试任务中包含较多测试用例时,上述任务创建方式将会为测试人员带来大量的手动操作工作,进而降低了测试人员的测试效率。有鉴于此,本发明提供一种测试任务生成方法,可对已创建的任务条目进行复用,实现新任务条目的批量生成,进而有效简化人工操作并提升测试人员的测试效率。请参考图1,图1为本发明实施例所提供的一种测试任务生成方法的流程图,该方法可以包括:

S101、在与前端设备建立会话后,接收前端设备发送的任务复制参数。

在本发明实施例中,任务复制参数是前端设备为复用已有的测试任务所需使用的参数。首先可以理解的是,后端为了对已有的测试任务进行规范管理,通常为每一测试任务设置了对应的任务ID,用于唯一标识测试任务。由于前端设备需对已有的测试任务进行复用,因此需在众多测试任务中执行其所需复用的目标任务,换而言之,前端设备至少需要在任务复制参数中包含任务ID;此外,若测试任务包含多种类型,例如定时任务或即时任务,则前端设备还可以在任务复制参数中添加可表示任务类型的任务类型参数。当然,任务服务参数中还可以包含其他信息,可根据实际应用需求进行设置。需要说明的是,本发明实施例并不限定任务ID的具体形式及生成方式,可根据实际应用需求进行设置,只要该ID能够唯一标识测试任务即可;本发明实施例也不限定任务类型参数的具体形式,可根据实际设置的任务类型进行设置,只要能够唯一标识任务类型即可。

进一步,后端为了接收前端设备所发送的任务复制参数,需与前端设备建立会话(Session),并通过会话接收前端设备发送的任务复制参数。需要说明的是,本发明实施例并不限定会话的建立方式,可参考会话技术的相关内容。一般情况下,建立会话的两设备通常会交换会话信息,例如用户ID等,具体同样可参考会话技术的相关内容。换而言之,后端设备也可从会话信息中提取能够标记前端设备对应用户的用户ID,并将该信息添加至复用后的测试任务中,以标识复用该任务的用户。

S102、根据任务复制参数中的任务ID,在数据库中查询对应的目标任务条目;数据库保存有多个已创建的任务条目。

可以理解的是,后端通常会利用数据库保存其他用户已创建的任务条目,而每一任务条目均带有任务ID,因此后端设备可通过任务复制参数中的任务ID在数据库中查询到对应的目标任务条目。本发明实施例并不限定数据库可存储任务条目的最大数量,可根据实际应用需求进行设定;本发明实施例也不限定任务条目中可包含的测试项目,例如可包含接口请求、变量提取、响应断言、前后置脚本等测试项目,具体的测试项目信息可参考软件测试的相关内容;当然,本发明实施例也不限定每一种任务条目可包含测试项目的具体数量,同样可根据实际应用需求进行设定。进一步,本发明实施例也不限定数据库对任务条目的存储形式,由于任务条目中通常包含有多种测试项目信息,而这些测试项目通常还具有先后执行顺序,简单来说任务条目为一种具有较强关系性的数据,因此数据库通常采用多表结构存储任务条目。具体的,通常采用主从表结构存储任务条目,并采用任务ID作为主从表之间的关联信息。本发明实施例并不限定主从表结构的设置方式,可参考数据库的相关技术;本发明也不限定主表和从表可包含的信息内容,可根据实际应用需求进行设定;本发明实施例也不限定具体的数据库,只要该数据库能够支持上述主从表结构即可,同样可参考数据库的相关技术。

S103、按照目标任务条目的多表关联关系在数据库中创建新任务条目,并将目标任务条目中的数据复制到新任务条目。

由于任务条目会采用多表结构进行存储,因此在进行任务条目复用时,也需根据目标任务条目的多表关联关系。具体的,可以先确定目标任务条目所归属的数据库主表和数据库从表,并按照先主表后从表的顺序进行数据复制;当然,若目标任务条目保存在多个从表中,而这些从表也具有关联关系,也可进一步按照从表之间的关联关系进行数据复制。

在一种可能的情况中,按照目标任务条目的多表关联关系在数据库中创建新任务条目,并将目标任务条目中的数据复制到新任务条目,可以包括:

步骤11:确定目标任务条目归属的数据库主表和数据库从表;

步骤12:在数据库主表中创建新任务ID及与新任务ID对应的第一任务条目,并将目标任务条目在数据库主表中的数据复制到第一任务条目;

步骤13:在数据库从表中创建与新任务ID关联的第二任务条目,并将目标任务条目在数据库从表中的数据复制到第二任务条目。

需要说明的是,本发明实施例并不限定具体的数据库操作,可参考数据库的相关技术。本发明实施例也不限定与目标任务条目相关联的从表数量,可根据实际应用需求进行设定。

进一步,考虑到某些任务条目可能包含大量的测试项目,在复制过程中容易出现崩溃等异常状况,影响复制效果。为了确保新任务条目可准确获得目标任务条目的数据,还可对复制过程进行监听,并确定复制状态,进而根据复制状态向前端设备提供相应的提示信息。

在一种可能的情况中,将目标任务条目中的数据复制到新任务条目,可以包括:

步骤21:将目标任务条目中的数据复制到新任务条目,并监听复制状态;

步骤22:当确定复制状态为成功时,向前端设备发送成功信息;

步骤23:当确定复制状态为失败时,向前端设备发送失败信息。

需要说明的是,本发明实施例并不限定如何对数据库复制过程进行监听,可参考Web框架的相关技术。在一种可能的情况中,可使用Gunicorn服务对上述过程进行监听,其中Gunicorn是一个Python应用中的WSGI HTTP服务器,WSGI为Python Web服务器网关接口(Python Web Server Gateway Interface)。具体的,可利用Gunicorn服务以各种工作模式进行监听,例如sync(同步模式)、gevent(协程模式)等,可根据实际应用需求进行配置。考虑到协程模式的监听效果较好,因此在本发明实施例中,可采用Gunicorn服务的协程模式监听复制状态。

在一种可能的情况中,监听复制状态,可以包括:

步骤31:利用Gunicorn服务的协程模式监听复制状态。

本发明实施例并不限定Gunicorn服务协程模式的配置方式,可参考Gunicorn的相关技术。简单来说,可在后端设备中配置gevent库,并通过该配置信息进行配置:gunicorn-w4–worker-class=gevent。

进一步,若测试任务包含多种类型,而前端设备在复用目标任务条目时,想要对该条目的任务类型进行更改,也可以在任务复制参数中添加任务类型参数,以便后端设备通过任务类型参数调整新任务条目的类型。

在一种可能的情况中,创建新任务条目,可以包括:

步骤41:读取任务复制参数中的任务类型参数;

步骤42:当任务类型参数表示生成即时任务时,创建新即时任务条目;

步骤43:当任务类型参数表示生成定时任务时,创建新定时任务条目。

需要说明的是,本发明实施例并不限定及时任务和定时任务所对应的任务类型参数,可根据实际应用需求进行设定,只要能够被后端设备正确识别并执行对应动作即可。

进一步,为了标识复用目标任务项目的用户,后端设备可以在于前端设备建立的会话中提取对应用户的用户ID,并将用户ID添加至新任务条目中。

在一种可能的情况中,在与前端设备建立会话之后,还可以包括:

步骤51:从会话中提取前端设备的用户ID;

相应的,在按照目标任务条目的多表关联关系在数据库中创建新任务条目之后,还可以包括:

步骤61:将用户ID插入新任务条目。

最后,需要说明的是,本发明实施例并不限定后端设备基于的应用框架,可参考网络应用框架的相关技术,并根据实际应用需求进行设定。在一种情况中,后端设备可基于Flask框架进行开发,其中Flask是一个使用Python语言编写的轻量级网络应用框架。本发明实施例也不限定前端设备与后端设备的通信方式,例如前端设备可通过反向代理方式与后代设备进行通信。本发明实施例也不限定具体的反向代理设备,例如可以为Nginx,其中Nginx是一个高性能的HTTP和反向代理网络服务器。

基于上述实施例,本发明中执行测试任务生成过程的后端设备会在与用户所使用的前端设备建立会话后,自动接收其发送的任务复制参数,并根据该参数中的任务ID确定数据库中的目标任务条目,由于数据库中存有多个已创建的任务条目,因此本发明可由用户根据已创建任务条目的任务ID自由选择所需复用的任务条目;在确定目标任务条目后,后端设备便会根据该条目的多表关联关系,有序地创建新任务条目,并将目标任务条目中的数据复制到新任务条目,换而言之,本发明可对已创建的任务条目进行复用,实现新任务条目的批量生成,进而有效简化人工操作并提升测试人员的测试效率,同时本发明还可根据目标任务条目的多表关联关系对新任务条目进行有序、准确的复制,进而能够确保新任务条目数据准确无误。

下面基于具体的例子介绍上述测试任务生成方法。请参考图2,图2为本发明实施例所提供的另一种测试任务生成方法的流程图。

A)在与后端设备的会话(Session)存在时,前端按照后端设备要求,通过Nginx以JSON格式(JavaScript Object Notation,JS对象简谱)将参数发送至后端提供的API接口,参数为Session(会话信息)以及taskid(任务ID);

后端设备利用request方法,从前端设备获取目标任务条目的taskid,并按如下命令赋值给变量id:

id=request.json.get("id")

B)后端设备利用变量id及如下数据库命令去数据库查询数据,获取目标任务条目的数据;

Select*from task where id=taskid

C)后端设备操作数据库,新增一条数据(insert into task),并将目标任务条目数据复制到新增数据中,完成任务的增生。复制顺序为:先生成主表数据,再生成从表数据,主从表根据新增数据的任务ID关联;

C1、如果前端传入的任务类型参数isTimeTask为0,则生成即时任务;

C2、如果前端传入的任务类型参数isTimeTask为1,则生成定时任务;

D)API接口向前端设备返回成功或者失败:

D1、操作成功,接口定义的code为0,返回成功的提示给前端;

D2、各种异常时,接口定义的code为10002,返回失败的提示给前端;

E)在复制过程中,利用如下命令启动Gunicorn服务的协程模式异步workers=gevent,监听多用例的任务复制,以确保复制程序不会卡死:

gunicorn-w4–worker-class=gevent。

下面对本发明实施例提供的测试任务生成装置、电子设备及存储介质进行介绍,下文描述的测试任务生成装置、电子设备及存储介质与上文描述的测试任务生成方法可相互对应参照。

请参考图3,图3为本发明实施例所提供的一种测试任务生成装置的结构框图,该装置包括:

参数接收模块301,用于在与前端设备建立会话后,接收前端设备发送的任务复制参数;

查询模块302,用于根据任务复制参数中的任务ID,在数据库中查询对应的目标任务条目;数据库保存有多个已创建的任务条目;

任务复制模块303,用于按照目标任务条目的多表关联关系在数据库中创建新任务条目,并将目标任务条目中的数据复制到新任务条目。

可选地,任务复制模块303,可以包括:

复制监听子模块,用于将目标任务条目中的数据复制到新任务条目,并监听复制状态;

成功响应子模块,用于当确定复制状态为成功时,向前端设备发送成功信息;

失败响应子模块,用于当确定复制状态为失败时,向前端设备发送失败信息。

可选地,复制监听子模块,可以包括:

Gunicorn服务单元,用于利用Gunicorn服务的协程模式监听复制状态。

可选地,任务复制模块303,可以包括:

任务类型参数读取子模块,用于读取任务复制参数中的任务类型参数;

第一创建子模块,用于当任务类型参数表示生成即时任务时,创建新即时任务条目;

第二创建子模块,用于当任务类型参数表示生成定时任务时,创建新定时任务条目。

可选地,该装置还可以包括:

用户ID提取模块,用于从会话中提取前端设备的用户ID;

相应的,该装置还可以包括:

用户ID插入模块,用于将用户ID插入新任务条目。

可选地,任务复制模块303,包括:

主从表确定子模块,用于确定目标任务条目归属的数据库主表和数据库从表;

第一复制子模块,用于在数据库主表中创建新任务ID及与新任务ID对应的第一任务条目,并将目标任务条目在数据库主表中的数据复制到第一任务条目;

第二复制子模块,用于在数据库从表中创建与新任务ID关联的第二任务条目,并将目标任务条目在数据库从表中的数据复制到第二任务条目。

本发明实施例还提供一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上述的测试任务生成方法的步骤。

由于电子设备部分的实施例与测试任务生成方法部分的实施例相互对应,因此电子设备部分的实施例请参见测试任务生成方法部分的实施例的描述,这里暂不赘述。

本发明实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的测试任务生成方法的步骤。

由于存储介质部分的实施例与测试任务生成方法部分的实施例相互对应,因此存储介质部分的实施例请参见测试任务生成方法部分的实施例的描述,这里暂不赘述。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的一种测试任务生成方法、装置、电子设备及存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

相关技术
  • 一种测试任务生成方法、装置、电子设备及存储介质
  • 一种测试任务的调度方法、装置、电子设备及存储介质
技术分类

06120113693686