测试任务自动化管理方法、装置、设备及存储介质与流程

文档序号:13876236阅读:163来源:国知局
测试任务自动化管理方法、装置、设备及存储介质与流程

本发明涉及软件自动化测试技术领域,特别涉及一种自动化测试任务管理方法、装置、设备及存储介质。



背景技术:

通常测试任务的执行都是人工触发的,测试时需要执行哪一些测试包也是人工临时定义的,该种方式容易导致疏漏,而且在人工触发的时候不会对测试环境和测试机器做验证,测试结果很容易受到测试环境的影响。并且测试包在执行之前也很难有全面的检查,容易在测试执行后发现测试包版本不对,导致测试重跑。由于自动化测试包的执行一般都需要很长的时间,因此上述缺陷会造成很多的人力浪费。



技术实现要素:

本发明的目的在于提供一种测试任务自动化管理方法、装置、设备及存储介质,能够实现在执行测试任务之前对测试包进行更新以及对测试环境进行验证,节约人力资源。

本发明是这样实现的,本发明第一方面提供一种自动化测试任务管理方法,所述自动化测试任务管理方法包括:

获取即将执行的测试任务,并根据所述测试任务获取其对应的测试包;

根据系统中新增的代码对测试包中的代码进行更新以获取最新版本的测试包;

验证执行测试任务的测试环境,当确定测试环境满足测试条件时,根据所述最新版本的测试包执行测试任务。

本发明第二方面提供一种自动化测试任务管理装置,所述自动化测试任务管理装置包括:

测试包获取模块,获取即将执行的测试任务,并根据所述测试任务获取其对应的测试包;

测试包更新模块,根据系统中新增的代码对测试包中的代码进行更新以获取最新版本的测试包;

测试环境验证模块,验证执行测试任务的测试环境,当确定所述测试环境满足测试条件时,根据所述最新版本的测试包执行测试任务。

本发明第三方面提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明第一方面所述方法的步骤。

本发明第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本发明第一方面所述方法的步骤。

本发明实施例提供一种自动化测试任务管理方法、装置、设备及存储介质,根据获取的测试任务获取相应的测试包,根据系统中新增的代码对测试包中的代码进行更新以获取最新测试包,验证执行测试任务的测试环境,当测试环境满足测试条件时,根据最新测试包执行测试任务,避免测试包版本不对以及测试环境被改变带来的测试不准确的问题,提高了测试效率,合理有效的安排了测试机的使用,节约了人力资源。

附图说明

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

图1是本发明一种实施例提供的一种测试任务自动化管理方法的流程图;

图2是本发明一种实施例提供的一种测试任务自动化管理方法中的步骤s20的一种实施方式提供的具体流程图;

图3是本发明一种实施例提供的一种测试任务自动化管理方法中的步骤s30的一种实施方式提供的具体流程图;

图4是本发明一种实施例提供的一种测试任务自动化管理方法中的步骤s30的另一种实施方式提供的具体流程图;

图5是本发明另一种实施例提供的一种测试任务自动化管理装置的结构示意图;

图6是本发明另一种实施例提供的一种测试任务自动化管理装置中的测试包更新模块的一种实施方式提供的具体结构示意图;

图7是本发明另一种实施例提供的终端设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

为了说明本发明的技术方案,下面通过具体实施例来进行说明。

本发明实施例提供一种自动化测试任务管理方法,如图1所示,该自动化测试任务管理方法包括步骤s10、步骤s20以及步骤s30,每个步骤的具体内容如下:

步骤s10.获取即将执行的测试任务,并根据测试任务获取其对应的测试包。

在步骤s10中,测试机在执行测试任务时可以根据用户的指令进行测试,也可以根据时间顺序执行测试,例如,测试机目前处于使用状态,待测试机执行完当前测试后即执行下一个测试,在执行每个测试任务前,通过测试任务获取测试任务的环境信息和测试包,可以通过读取测试任务的配置文件进行获取。

步骤s20.根据系统中新增的代码对测试包中的代码进行更新以获取最新版本的测试包。

在步骤s20中,对于测试包的更新,可以通过检测系统中是否新增代码进行检测,检测是否新增代码通常通过检测软件包的更新状态以及是否增加可人工写入的代码获得。例如,利用带有补丁包版本号的补丁包对相应的软件包进行更新,就可以根据补丁包版本号筛选出已更新的软件包,还可以是人工修改软件包后记录下来的代码,对测试包进行更新。

作为一种实施方式,如图2所示,步骤s20具体包括步骤s201、步骤s202以及步骤s203,每个步骤的具体内容如下:

步骤s201.当检查到代码服务器写入代码或者下载新的补丁包时,获取所写入或者新的补丁包中的代码。

步骤s202.根据所获取的代码重新编译测试包。

在步骤s202中,当检测到用户对测试包进行更新时,例如具有新的补丁包时,根据补丁包对测试包重新编译,以对测试包进行更新。

步骤s203.确定重新编译的测试包为最新版本的测试包。

在步骤s203中,通过对测试包进行重新编译后,获取最新版本的测试包,采用该最新版本的测试包进行测试。

本步骤中是对测试包进行更新,更新途径包括下载补丁包和合入代码服务器上的代码,避免了因测试包版本不对导致的测试失败。

步骤s30.验证执行测试任务的测试环境,当测试环境满足测试条件时,根据最新版本的测试包执行测试任务。

在步骤s30中,当测试环境和测试包验证通过后,根据最新测试包执行测试任务。在执行测试过程中有发送功能。例如,当测试出错时,给用户发送警报信息。当测试完成时,发送测试结果给用户。

本发明实施例提供一种自动化测试任务管理方法,根据获取的测试任务获取相应的测试包,根据系统中新增的代码对测试包中的代码进行更新以获取最新测试包,验证执行测试任务的测试环境,当测试环境满足测试条件时,根据最新测试包执行测试任务。避免测试代码版本不对的问题,尽早发现环境问题提高效率,合理地安排测试机的使用。

对于上述实施例中的步骤s30,作为一种实施方式,如图3所示,当测试环境和测试包验证通过后,根据最新测试包执行测试任务,包括:

步骤s301.验证执行测试任务的硬件设备、网络状态以及软件版本是否满足测试条件,是,则执行步骤s303,否,则执行步骤s302,

在步骤s301中,测试环境验证可以是基本的验证,例如,测试机是否空闲,cpu使用状态、内存使用状态、磁盘空间状态、网络状况,软件版本也可以作为基本验证点。除了基本验证,还可以调用,测试包中的验证脚本,对测试包需要的前置条件进行验证。例如,要执行一个包含登录的测试包,可以验证一下用来登录的用户是否存在。

步骤s302.发出报警信息时获取所述报警信息所对应的级别代码,根据级别代码获取处理优先级,并根据所述处理优先级转入相应级别代码下的自动响应处理流程,并返回执行步骤s301。

在步骤s302中,报警信息是指根据出现的异常对应的报警信号信息,即根据该报警信号信息可以明确得知出现的异常为何种异常,具体可以通过级别代码了解该报警信息的内容,根据级别代码获取处理优先级是指根据级别代码获取优先级标志代码,根据该标志代码优先处理级别较高的优先级,自动响应处理流程是指根据级别代码可以获取发生异常的具体问题,针对该具体问题执行的处理方案,执行处理方案后再返回步骤s301重新进行检测。

步骤s303.验证测试包,判定即将执行的测试任务对应的测试包与正在执行的测试任务对应的测试包是否存在冲突,是则执行步骤s304,否则执行步骤s305。

在步骤s303中,测试包冲突是指将要执行的测试包有一些步骤可能和现在正在执行的测试包的步骤有影响,会导致正在执行的测试包出错或执行失败或对其验证结果产生干扰。

步骤s304,管理冲突的测试包,并返回执行步骤s303。

在步骤s304中,对冲突的管理是由测试脚本管理系统来管理的。例如,测试包可以通过脚本管理系统来增加、修改或删除排斥的测试包。

步骤s305.验证通过后,根据最新版本的测试包执行任务。

本实施方式对测试环境、测试包进行验证,能够避免因为外部因素和测试包本身因素导致的测试失败。

对于上述实施例中的步骤s30,作为另一种实施方式,如图4所示,根据所述最新测试包执行测试任务,之后还包括:

步骤s3021.在测试机上执行测试任务时,根据测试任务的执行状态为所述测试机设置操作完成标志,其中,当执行完成测试任务时,将操作完成标志置1,当未完成测试任务时,将操作完成标志置0。

步骤s3022.当优先级别高于当前测试任务的高优先级别测试任务访问测试机时,查询所述测试机操作完成标志是否被置1,如果是,则执行步骤s3023,如果否,则执行步骤s3024。

在步骤s3022中,在执行测试任务时,每个测试任务均对应优先级别,可以通过查表的方式查询测试任务的优先级别,当高优先级别的测试任务访问时,通过查询操作完成标志判断测试机是否正在执行任务,如果正在执行任务,则中断当前任务,执行高级别测试任务。

步骤s3023.访问测试机,执行高级别测试任务并将操作完成标志清0。

在步骤s3023中,当操作完成标志被置1时,说明测试机正处于空闲状态,测试可以直接执行新的测试任务,并且在执行测试任务时,将操作完成标志清0,说明此时正处于执行测试任务状态。

步骤s3024.打断当前测试任务并访问测试机,并将访问冲突标志置1。

在步骤s3024中,对当前测试任务进行中断后,执行新的高优先级测试任务时,将访问冲突标志置1,访问冲突标志置1是指正在执行测试任务,不再接收中断指令,由于已经中断一次测试任务,为避免等待任务过多,将访问冲突标志置1,执行完成当前测试任务再执行其他测试任务。

步骤s3025.当所述高优先级别测试任务完成时,继续执行中断的测试任务,并将所述访问冲突标志置0。

在步骤s3025中,将所述访问冲突标志置0是指可以进行中断,即在执行该测试任务时仍然可以继续被中断。

本实施方式是对测试包存在冲突时的一种具体的冲突管理,在测试机上执行测试时,为测试机设置访问冲突标志,当低优先级任务访问测试机,并循环查询测试机操作完成标志是否被置1时,中断服务例程或高优先级任务打断低优先级任务并访问测试机,在查询到测试机操作完成标志被置1后,将其清0,并将访问冲突标志置1,随着中断返回或任务重新调度,低优先级任务继续执行,会检测到测试机操作完成标志为0,但访问冲突标志为1,则退出循环查询,重试访问测试机。通过这种管理,可有效避免测试包冲突导致的测试失败。

对于上述实施例中的步骤s30,作为另一种实施方式,当测试环境和测试包的最新版本验证通过后,根据最新测试包执行测试任务,在执行测试过程中发生测试出错时向用户进行报警,可以对测试包中的代码进行测试获取有问题的代码,并在对用户报警中将有问题的代码进行标识,使用户可以快速修改有问题的代码,具体测试过程如下:

将当前版本与最近一次运行成功版本的代码进行对比;具体的,针对某个运行失败的测试脚本,测试脚本中的代码主要是一些类方法的代码,方法之间存在树型的层次调用关系,所有方法可形成一棵方法调用关系树,在测试脚本的运行过程中,每次运行到要进入一个方法前,输出标志将这个方法与其他方法的调用关系进行记录,通过该方式,就记录下了测试脚本中所有方法之间的调用关系,最终形成方法调用层次,根据方法调用的层次关系对文件中的方法进行对比,例如,有三个记录了当前版本类方法代码的文件,分别是文件a1、文件b1、文件c1,此时还需要得到这三个文件在最近一次运行成功的版本代码,如文件a2、文件b2、文件c2,然后根据每个文件中的层次关系将a1与a2、b1与b2、c1与c2进行两两对比,找出两个版本中的代码是否有变更。将对比发现的变化代码进行标记,并将标记的代码定位为运行失败的原因。

进一步的,将上述经过标记后的代码形成代码集,由于上述方法对变化的代码进行标记的地方可能有多处,通过依次减少代码集中的标记的代码对代码集进行重复测试,设置从代码集中移除一处标记的代码,对剩下的代码进行测试,如果通过测试则对移除的代码进行标识,如果没有通过,则再移除下一处标记的代码,直至代码集中剩余的代码通过测试,例如,测试1)移除代码集中的第一处标记的代码,通过测试则标识该第一处标记的代码,未通过则进入测试2)移除代码集中的第二处标记的代码,通过测试则标识该第二处标记的代码,依次类推直至代码集中剩余的代码通过测试。

通过对代码集中标记的变化的代码分别进行移除,可以准确标记代码集中有问题的代码。

本发明另一种实施例提供一种测试任务自动化管理装置40,如图5所示,测试任务自动化管理装置40包括:

测试包获取模块401,获取即将执行的测试任务,并根据所述测试任务获取其对应的测试包;

测试包更新模块402,根据系统中新增的代码对测试包中的代码进行更新以获取最新版本的测试包;

测试环境验证模块403,验证执行测试任务的测试环境,当测试环境满足测试条件时,根据最新版本的测试包执行测试任务。

进一步的,如图6所示,作为一种实施方式,测试包更新模块402包括:

代码获取模块410,当检查到代码服务器写入代码或者下载新的补丁包时,获取所写入或者新的补丁包中的代码;

代码编译模块420,根据所获取的代码重新编译测试包;

测试包确认模块430,确定重新编译的测试包为最新测试包。

所测试环境验证模块401验证执行所述测试任务的测试环境,确定所述测试环境满足测试条件,包括:

验证执行所述测试任务的硬件设备、网络状态以及软件版本满足测试条件时,确定所述测试环境满足测试条件;

或者,验证执行所述测试任务的硬件设备、网络状态以及软件版本满足测试条件时,并判定即将执行的测试任务对应的测试包与正在执行的测试任务对应的测试包不存在冲突时,确定所述测试环境满足测试条件。

上述终端设备中模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本发明另一种实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的自动化测试任务管理方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现上述实施例中测试任务自动化管理装置中各模块/单元的功能,为避免重复,这里不再赘述。

图7是本实施例中终端设备的示意图。如图7所示,终端设备6包括处理器60、存储器61以及存储在存储器61中并可在处理器60上运行的计算机程序62。处理器60执行计算机程序62时实现上述实施例中测试任务自动化管理方法的各个步骤,例如图1所示的步骤s10、s20和s30。或者,处理器60执行计算机程序62时实现上述实施例中自动化测试任务管理装置各模块/单元的功能,如图6所示测试包获取模块401、测试包更新模块402、测试环境验证模块403的功能。

示例性的,计算机程序62可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器61中,并由处理器60执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序62在终端设备6中的执行过程。例如,计算机程序62可以被分割成同步模块、汇总模块、获取模块、返回模块(虚拟装置中的模块)。

该终端设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图7仅仅是终端设备6的示例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器60可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器61可以是终端设备6的内部存储单元,例如终端设备6的硬盘或内存。存储器61也可以是终端设备6的外部存储设备,例如终端设备6上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器61还可以既包括终端设备6的内部存储单元也包括外部存储设备。存储器61用于存储计算机程序以及终端设备所需的其他程序和数据。存储器61还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1