操作系统性能自动化测试方法及装置与流程

文档序号:14175260阅读:413来源:国知局
操作系统性能自动化测试方法及装置与流程

本发明涉及计算机领域,特别是涉及一种操作系统性能自动化测试方法及装置。



背景技术:

操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统的性能测试是操作系统测试的一个重要方面,主要包括cpu、内存、io、网络等方面的测试。目前,针对操作系统的性能测试存在一些基础测试工具,如使用iozone测试io读写性能,使用netperf测试网络性能等。但这些工具都需要提前进行手动安装、单独进行测试,且生成的测试报告也是各种形式,没有对测试数据进行处理,可读性差,无法自动将不同测试工具的测试结果整理到一个测试报告中,也无法自动根据多个测试方案的测试结果生成对比测试报告,手动处理这些工作,耗时费力。



技术实现要素:

本发明提供了一种操作系统性能自动化测试方法及装置以克服上述问题或者至少部分地解决上述问题。

根据本发明的一个方面,提供了一种操作系统性能自动化测试方法,包括:

接收执行系统性能测试的执行命令,基于所述执行命令解析与所述测试相关的参数信息,并根据所述参数信息确定测试所需的配置文件;

获取预设的第一测试工具列表以及所述配置文件中的第二测试工具列表,基于所述参数信息在所述第二测试工具列表中筛选出符合预设条件的测试工具添加至所述第一测试工具列表;

基于所述第一测试工具列表创建测试任务,并确定所述测试任务的配置文件;

根据所述测试任务的配置文件执行所述测试任务。

可选地,获取预设的第一测试工具列表以及所述配置文件中的第二测试工具列表,基于所述参数信息在所述第二测试工具列表中筛选出符合预设条件的测试工具添加至所述第一测试工具列表,包括:

获取预设的第一测试工具列表以及所述配置文件中的第二测试工具列表,并将所述第一测试工具列表初始化为空列表;判断所述参数信息中的单个测试工具列表是否有值,若是,则说明执行命令中已指定测试工具;遍历所述单个测试工具列表,判断所述单个测试工具列表中的测试工具是否存在于所述第二测试工具列表中,若是,则将该测试工具添加至所述第一测试工具列表中;

判断所述参数信息中的测试工具集是否有值,若是,则说明执行命令中已指定测试工具集;遍历所述测试工具集,判断所述测试工具集中的测试工具是否存在于所述第二测试工具列表中,若是,则将该测试工具添加至所述第一测试工具列表中。

可选地,基于所述第一测试工具列表创建测试任务,并确定所述测试任务的配置文件,包括:初始化任一任务主节点,创建预设数据结构;获取系统当前时间,基于该系统当前时间为结果文件名称赋值;初始化任一任务子节点,将所述系统当前时间为任务标识,为所述任务子节点创建一个元素,内容为所述结果文件名称;遍历所述第一测试工具列表,初始化以所述第一测试工具列表中的测试工具为参数的测试工具子节点,将所述测试工具子节点添加到任务子节点中;获取该测试工具的参数,并将该测试工具的参数作为元素添加到所述测试工具子节点中;将所述任务子节点添加至所述任务主节点中,保存所述预设数据结构的测试任务配置文件。

可选地,根据所述测试任务的配置文件执行所述测试任务,包括:判断是否存在预设数据结构的测试任务配置文件,若是,则初始化以所述预设数据结构为参数的任务主节点;判断是否指定执行测试任务的任务标识,若是,则获取与该任务标识相应测试任务的任务子节点;若否,则获取最后一个任务子节点;基于所述任务子节点上没有执行的测试工具的子节点生成待测试工具列表;遍历所述待测试工具列表,清空系统缓存,运行所述待测工具列表中的各测试工具,测试完成之后设置所述测试工具的状态并保存所述预设数据结构的文件。

可选地,运行所述待测工具列表中的各测试工具,包括:判断所述待测工具列表中的各测试工具是否安装,若否,则解压所述测试工具的测试工具包到指定位置,进行编译和安装;获取所述测试工具的节点及测试参数,根据所述测试参数设置所述测试工具的测试命令,执行所述测试命令;测试完成之后生成测试结果,并将所述测试结果保存到结果文件中;清除测试环境,判断执行命令中是否已指定与清除测试环境相关的参数,若是,则删除所述测试工具的安装目录和可执行文件。

可选地,根据所述测试任务的配置文件执行所述测试任务之后,还包括:生成测试报告;所述生成测试报告进一步包括:判断指定的结果文件以及指定的报告存放目录是否有效;若是,则设置测试报告名称以及测试报告存储路径;获取结果文件中的测试工具列表;添加第一预设名称的电子表格,并在所述第一预设名称的电子表格中写入系统的信息以及遍历该测试工具列表所获取的测试工具的测试内容。

可选地,根据所述测试任务的配置文件执行所述测试任务之后,还包括:生成对比测试报告;所述生成测试报告进一步包括:根据所述参数信息设置结果文件列表,并设置对比名称列表以及对比测试报告存储路径;获取对比测试工具列表;添加第二预设名称的电子表格,并在所述第二预设名称的电子表格中写入系统信息以及遍历该对比测试工具列表所获取的测试工具的测试内容。

可选地,基于所述第一测试工具列表创建测试任务之后,还包括:查看测试任务;所述查看测试任务进一步包括:判断是否存在预设数据结构的测试任务配置文件,若是,则初始化以所述预设数据结构为参数的任务主节点,并获取各任务子节点;判断是否存在任务子节点;若是,则遍历各任务子节点,获取各任务子节点的元素内容;获取各任务子节点的所有测试工具子节点,获取测试工具列表及测试工具的执行状态;打印各任务子节点内容,包括任务标识、任务名称、测试结果文件名称、测试工具执行状态。

可选地,接收执行操作系统性能测试的执行命令,基于所述执行命令解析与所述测试相关的参数之后,还包括:基于所述参数信息更新日志设置;所述基于所述参数更新日志设置进一步包括:基于所述参数信息确定是否打印日志信息和/或设置日志级别。

可选地,所述操作系统性能自动化测试方法适用于linux操作系统。

根据本发明的另一个方面,还提供了一种操作系统性能自动化测试装置,包括:

配置管理模块,配置为接收执行系统性能测试的执行命令,基于所述执行命令解析与所述测试相关的参数信息,并根据所述参数信息确定测试所需的配置文件;

列表获取模块,配置为获取预设的第一测试工具列表以及所述配置文件中的第二测试工具列表,基于所述参数信息在所述第二测试工具列表中筛选出符合预设条件的测试工具添加至所述第一测试工具列表;

任务管理模块,配置为基于所述第一测试工具列表创建测试任务,并确定所述测试任务的配置文件;

执行管理模块,配置为根据所述测试任务的配置文件执行所述测试任务。

可选地,所述列表获取模块还配置为:

获取预设的第一测试工具列表以及所述配置文件中的第二测试工具列表,并将所述第一测试工具列表初始化为空列表;判断所述参数信息中的单个测试工具列表是否有值,若是,则说明执行命令中已指定测试工具;遍历所述单个测试工具列表,判断所述单个测试工具列表中的测试工具是否存在于所述第二测试工具列表中,若是,则将该测试工具添加至所述第一测试工具列表中;

判断所述参数信息中的测试工具集是否有值,若是,则说明执行命令中已指定测试工具集;遍历所述测试工具集,判断所述测试工具集中的测试工具是否存在于所述第二测试工具列表中,若是,则将该测试工具添加至所述第一测试工具列表中。

可选地,所述任务管理模块还配置为:

初始化任一任务主节点,创建预设数据结构;获取系统当前时间,基于该系统当前时间为结果文件名称赋值;初始化任一任务子节点,将所述系统当前时间为任务标识,为所述任务子节点创建一个元素,内容为所述结果文件名称;遍历所述第一测试工具列表,初始化以所述第一测试工具列表中的测试工具为参数的测试工具子节点,将所述测试工具子节点添加到任务子节点中;获取该测试工具的参数,并将该测试工具的参数作为元素添加到所述测试工具子节点中;将所述任务子节点添加至所述任务主节点中,保存所述预设数据结构的测试任务配置文件。

可选地,所述执行管理模块还配置为:

判断是否存在预设数据结构的测试任务配置文件,若是,则初始化以所述预设数据结构为参数的任务主节点;判断是否指定执行测试任务的任务标识,若是,则获取与该任务标识相应测试任务的任务子节点;若否,则获取最后一个任务子节点;基于所述任务子节点上没有执行的测试工具的子节点生成待测试工具列表;遍历所述待测试工具列表,清空系统缓存,运行所述待测工具列表中的各测试工具,测试完成之后设置所述测试工具的状态并保存所述预设数据结构的文件。

可选地,所述执行管理模块还配置为:

判断所述待测工具列表中的各测试工具是否安装,若否,则解压所述测试工具的测试工具包到指定位置,进行编译和安装;获取所述测试工具的节点及测试参数,根据所述测试参数设置所述测试工具的测试命令,执行所述测试命令;测试完成之后生成测试结果,并将所述测试结果保存到结果文件中;清除测试环境,判断执行命令中是否已指定与清除测试环境相关的参数,若是,则删除所述测试工具的安装目录和可执行文件。

可选地,上述装置还包括:

第一报告生成模块,配置为生成测试报告;

所述第一报告生成模块还配置为,判断指定的结果文件以及指定的报告存放目录是否有效;若是,则设置测试报告名称以及测试报告存储路径;获取结果文件中的测试工具列表;添加第一预设名称的电子表格,并在所述第一预设名称的电子表格中写入系统的信息以及遍历该测试工具列表所获取的测试工具的测试内容。

可选地,上述装置还包括:

第二报告生成模块,配置为生成对比测试报告:

所述第二报告生成模块还配置为,根据所述参数信息设置结果文件列表,并设置对比名称列表以及对比测试报告存储路径;获取对比测试工具列表;添加第二预设名称的电子表格,并在所述第二预设名称的电子表格中写入系统信息以及遍历该对比测试工具列表所获取的测试工具的测试内容。

可选地,上述装置还包括:

查看模块,配置为查看测试任务;

所述查看模块还配置为,判断是否存在预设数据结构的测试任务配置文件,若是,则初始化以所述预设数据结构为参数的任务主节点,并获取各任务子节点;判断是否存在任务子节点,若是,则遍历各任务子节点,获取各任务子节点的元素内容;获取各任务子节点的所有测试工具子节点,获取测试工具列表及测试工具的执行状态;打印各任务子节点内容,包括任务标识、任务名称、测试结果文件名称、测试工具执行状态。

可选地,上述装置还包括:

日志管理模块,配置为基于所述参数更新日志设置;

所述日志管理模块还配置为,基于所述参数信息确定是否打印日志信息和/或设置日志级别。

根据本发明实施例提供的操作系统性能自动化测试方法及装置,可基于执行命令解析测试过程中相关的参数信息,并基于解析出的参数信息确定测试所需要的配置文件,基于配置文件确定待测试工具列表后进行测试任务的创建及执行。基于本发明实施例提供的操作系统性能自动化测试方法,整个过程中不需要人工干预即可实现测试方案的定制、测试工具的确定以及相关测试任务的创建及执行,可以在提高测试效率的同时降低人工成本。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是根据本发明实施例的操作系统性能自动化测试方法流程示意图;

图2是根据本发明优选实施例的设置测试工具列表方法流程示意图;

图3是根据本发明优选实施例的创建测试任务方法流程示意图;

图4是根据本发明优选实施例的执行测试任务方法流程示意图;

图5是根据本发明优选实施例的运行测试工具方法流程示意图;

图6是根据本发明优选实施例的获取待测工具列表方法流程示意图;

图7是根据本发明优选实施例的生成测试报告方法流程示意图;

图8是根据本发明优选实施例的测试报告写入测试工具的测试内容流程示意图;

图9是根据本发明优选实施例的生成对比测试报告方法流程示意图;

图10是根据本发明优选实施例的对比测试报告写入测试工具的测试内容流程示意图;

图11是根据本发明优选实施例的查看测试任务方法流程示意图;

图12是根据本发明优选实施例的操作系统性能自动化测试方法流程示意图;

图13是根据本发明优选实施例的操作系统性能自动化测试工具结构示意图;

图14是根据本发明实施例的操作系统性能自动化测试装置结构示意图;

图15是根据本发明优选实施例的操作系统性能自动化测试装置结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1是根据本发明实施例的操作系统性能自动化测试方法流程示意图,如图1所示,根据本发明实施例的操作系统性能自动化测试方法包括:

步骤s102,接收执行系统性能测试的执行命令,基于上述执行命令解析与测试相关的参数信息,并根据上述参数信息确定测试所需的配置文件;

步骤s104,获取预设的第一测试工具列表以及配置文件中的第二测试工具列表,基于上述参数信息在第二测试工具列表中筛选出符合预设条件的测试工具添加至第一测试工具列表;

步骤s106,基于第一测试工具列表创建测试任务,并确定测试任务的配置文件;

步骤s108,根据测试任务的配置文件执行测试任务。

根据本发明实施例提供的操作系统性能自动化测试方法,可基于执行命令解析测试过程中相关的参数信息,并基于解析出的参数信息确定测试所需要的配置文件,基于配置文件确定待测试工具列表后进行测试任务的创建及执行。基于本发明实施例提供的操作系统性能自动化测试方法,整个过程中不需要人工干预即可实现测试方案的定制、测试工具的确定以及相关测试任务的创建及执行,可以在提高测试效率的同时降低人工成本。本发明实施例提供的操作系统性能自动化测试方法尤其适用于linux操作系统。

在本发明实施例中,执行操作系统性能自动化测试时,测试入口可以为test.py,根据上述步骤s102中根据执行命令所解析出的预测试相关的参数信息丰富,可以包括常规选项、任务相关选项、运行相关选项、报告相关选项,执行方式灵活。下面分别对各参数进行举例说明。

1.常规选项

--version显示该测试工具的版本信息

-h,--help显示该测试工具的帮助信息

-v,--verbose打印日志信息

-q,--quite不打印日志信息

-llevel,--levellevel日志级别:debug,info,warning,error,critical

-ttool,--tool=tool指定测试工具

-gtools,--group=tools指定测试工具集

2.任务相关选项

--create使用-t或-g指定的测试工具创建测试任务

-njobname,--name=jobname指定测试任务名称

-pconf,--parameter=conf指定配置文件

-fjobsdb,--file=jobsdb指定测试任务配置文件

-ijobid,--id=jobid指定测试任务id

-l,--list显示所有测试任务

3.运行相关选项

--run执行测试任务

--clean测试完成后清除测试环境

4.报告相关选项

-fformat指定测试报告格式,如txt、xls等

-rname指定测试报告名称

-ddir指定测试报告存放目录

--report根据结果文件创建测试报告

-rxml指定结果文件

--compare根据指定的结果文件列表生成对比测试报告

-xresultsxml,--xml=resultsxml指定对比的结果文件列表

-nnames,--names=names指定对比测试报告名称

根据执行命令解析出参数信息之后,可与根据解析的参数信息确定测试所需的配置文件,即可以根据解析的参数设置配置文件的名称。其可对应到执行命令中的“-p”参数,如果执行命令中指定了“-p”参数,且指定的文件存在,则设置配置文件为指定的文件,否则使用默认的配置文件。

除此之外,根据执行命令解析出参数信息之后,还可以根据解析的参数信息更新日志设置,包括基于参数信息确定是否打印日志信息和/或设置日志级别。

其中,基于参数信息确定是否打印日志信息,对应到执行命令中的“-q”和“-v”参数。如果执行命令中指定了“-q”参数,则不打印日志信息;如果执行命令中指定了“-v”参数,则打印日志信息,默认打印日志信息;基于参数信息设置日志级别,对应的执行命令中的“-l”参数,日志级别设置为debug、info、warn、error、critical,默认日志级别为info。在本发明实施例中提供的不同级别的日志信息,能够提供测试执行过程的日志信息和各基础测试工具执行过程的日志信息,便于问题定位。

可选地,测试之前还需获取第一测试列表以及第二测试列表。其中,第一测试工具列表为在执行操作系统性能自动化测试之前所设置的测试工具列表,该第一测试工具列表为定制的测试方案时需要执行测试的测试工具列表。获取到第一测试工具列表之后,可将第一测试工具列表初始化为空列表,以有效实现测试方案的定制。第二测试工具列表为根据配置文件所获取的配置文件中的测试工具列表。当解析出参数信息之后,可以基于参数信息在第二测试工具列表中筛选出符合预设条件的测试工具添加至第一测试工具列表中。进一步地,在本发明实施例中,可以集成常用的性能基础测试工具,包括lmbench、unixbench、iozone、pingpong、stream、bonnie++和netperf等,针对操作系统的cpu、内存、io、网络等开展性能测试。通过剖析不同基础测试工具的测试指标,把基础测试工具的具体运行参数抽象成易理解的可配置参数,支持用户自定义测试工具集和测试方案,使用灵活。

优选地,基于参数信息在第二测试工具列表中筛选出符合预设条件的测试工具添加至第一测试工具列表中可以进一步包括:判断参数信息中的单个测试工具列表是否有值,若是,则说明执行命令中已指定测试工具;

遍历上述单个测试工具列表,判断单个测试工具列表中的测试工具是否存在于第二测试工具列表中,若是,则将该测试工具添加至第一测试工具列表中。

此外,还可以判断参数信息中的测试工具集是否有值,若是,则说明执行命令中已指定测试工具集;

遍历上述测试工具集,判断该测试工具集中的测试工具是否存在于第二测试工具列表中,若是,则将该测试工具添加至第一测试工具列表中。

在实际应用中,可根据执行命令中所解析出的“-t”和“-g”参数进行判断,命令行中的“-t”参数用来指定单个的测试工具,“-g”参数用来指定测试工具集。如果指定了“-t”或“-g”参数,则第一测试工具列表等于指定的测试工具或测试工具集与配置文件中的测试工具集的交集。

图2是根据本发明优选实施例的设置测试工具列表方法流程示意图,如图2所示,根据本发明实施例的设置测试工具列表方法包括:

步骤s2-1,初始化测试工具列表self.tools_list为空列表;

步骤s2-2,获取配置文件中的测试工具列表tool_list;

步骤s2-3,将既存在于解析器中又存在于配置文件的工具列表中的测试工具添加到测试工具列表中;解析的参数涉及到两个,一个是单个测试工具的设置opts.tools_list,一个是测试工具集的设置opts.tools_group;

步骤s2-3-1,判断解析参数中的opts.tools_list是否有值,如果opts.tools_list有值,说明执行命令中已指定测试工具。遍历opts.tools_list,判断tool是否存在于tools_list,如果存在,则将tool追加到测试工具列表self.tools_list中;

步骤s2-3-2,判断解析参数中的opts.tools_group是否有值,如果opts.tools_group有值,说明执行命令中已指定测试工具集;遍历opts.tools_group,判断tool是否存在于tools_list,如果存在,则将tool追加到测试工具列表self.tools_list中。

当设置好测试工具列表之后,即可基于该测试工具列表创建测试任务,并确定测试任务的配置文件,进而根据测试任务的配置文件执行测试任务。

本发明实施例还提供了一种创建测试任务方法,包括:

1.初始化任一任务主节点,创建预设数据结构;

2.获取系统当前时间,基于该系统当前时间为结果文件名称赋值;

3.初始化任一任务子节点,将系统当前时间为任务标识,为任务子节点创建一个元素,内容为结果文件名称;

4.遍历第一测试工具列表,初始化以第一测试工具列表中的测试工具为参数的测试工具子节点,将测试工具子节点添加到任务子节点中;

5.获取该测试工具的参数,并将该测试工具的参数作为元素添加到测试工具子节点中;

6.将任务子节点添加至任务主节点中,保存预设数据结构的测试任务配置文件。

图3是根据本发明优选实施例的创建测试任务方法流程示意图,如图3所示,根据本发明优选实施例的创建测试任务方法包括:

步骤3-1,初始化一个任务主节点,创建jobs.xml结构。

步骤3-2,根据测试工具列表创建jobs.xml结构。

步骤3-2-1,获取系统当前时间datestring,时间格式为:yymmddhhmmss,如:170913150455;

步骤3-2-2,结果文件名称赋值,文件名称格式为:results_<datestring>.xml,如:results_170913150455.xml;

步骤3-2-3,初始化一个任务子节点,任务的id为当前时间,如:170913150455;

步骤3-2-4,为任务子节点创建一个元素“resultsdb”,内容为结果文件名称,如:results_170913150455.xml;

步骤3-2-5,遍历测试工具列表,进行如下操作:1)初始化一个以测试工具为参数的测试工具子节点;2)将测试工具子节点添加到任务子节点中;3)获取该测试工具的参数;4)将测试工具参数作为元素添加到测试工具子节点中。

步骤3-2-6,将任务子节点添加到任务主节点中;

步骤3-2-7,保存job.xml测试任务配置文件。

生成的job.xml举例如下:

创建好测试任务之后,即可基于创建的测试任务进行执行测试任务。在本发明实施例中,执行测试任务时,可以包括以下步骤:

1.判断是否存在预设数据结构的测试任务配置文件,若是,则初始化以预设数据结构为参数的任务主节点;

2.判断是否指定执行测试任务的任务标识,若是,则获取与该任务标识相应测试任务的任务子节点;若否,则获取最后一个任务子节点;

3.基于任务子节点上没有执行的测试工具的子节点生成待测试工具列表;

4.遍历待测试工具列表,清空系统缓存,运行待测工具列表中的各测试工具,测试完成之后设置测试工具的状态并保存预设数据结构的文件。

图4是根据本发明优选实施例的执行测试任务方法流程示意图。

执行测试任务的命令如下:

#./test.py--run-tstream-fdb/jobs.xml-i170420170021--clean

如图4所示,根据本发明优选实施例的执行测试任务方法包括:

步骤s4-1,判断是否存在job.xml测试任务配置文件,如果不存在,退出,结束执行测试任务操作,如果存在,则继续;

步骤s4-2,初始化一个以job.xml为参数的任务主节点;

步骤s4-3,判断是否指定了任务id,如果指定了任务id,获取指定id的任务子节点;如果没有指定,则获取最后一个任务子节点;

步骤s4-4,获取待测试工具列表;

步骤s4-5,遍历待测试工具列表;1)清空缓存;在不同基础测试工具执行之间增加了清空缓存操作,避免了不同基础测试工具之间的相互影响;2)运行测试工具;3)设置测试工具状态,标记为已测试;4)最后保存job.xml文件。

上文提及,在执行测试任务过程中,会运行待测工具列表中的各测试工具,如图5所示,根据本发明优选实施例的运行测试工具方法可以包括:

步骤s5-1,判断所待测工具列表中的各测试工具是否安装,若否,则解压测试工具的测试工具包到指定位置,进行编译和安装;若是,则不需要再进行安装;

步骤s5-2,获取测试工具的节点及测试参数,根据测试参数设置测试工具的测试命令,执行测试命令;

步骤s5-3,测试完成之后生成测试结果,并将测试结果保存到结果文件中;

步骤s5-4,清除测试环境,判断执行命令中是否已指定与清除测试环境相关的参数,若是,则删除测试工具的安装目录和可执行文件;对应到执行命令中的参数为,如果执行命令中指定了“--clean”参数,则清除测试环境,删除测试工具的安装目录和可执行文件;否则,不需要清除测试环境。

优选地,上述步骤s5-3在生成测试结果时,可以读取临时结果文件中的测试数据;生成测试项和测试数据对应的字典;对每个测试项的测试数据进行求平均;生成测试项和测试数据平均值对应的字典;生成结果列表,列表的每个元素包含两个列表:一个列表为属性字典(包括执行模式、迭代次数等);一个列表为测试数据字典。

结果列表举例如下:

生成测试结果之后,可以将测试结果保存到结果文件中,结果文件的名称为创建测试任务时设置的results_<datestring>.xml。

如图6所示,获取待测工具列表可以包括:

步骤s6-1,获取job节点上没有执行的测试工具子节点列表(no_exec_tools_nodes_list);

步骤s6-2,如果没有执行的测试工具子节点列表为空(该job中的所有测试工具都执行测试了),则抛出testok异常,退出;否则继续。

步骤s6-3,获取没有执行的测试工具列表(no_exec_tools)。

步骤s6-4,生成测试工具列表(test_tools)

判断是否指定了测试工具列表(tools_list),对应执行命令中的“-t”/“-g”参数。如果没有指定,则将没有执行的测试工具列表作为待测试工具列表(test_tools);

否则,遍历没有执行的测试工具列表(no_exec_tools)

判断tool是否在于tools_list,如果存在,则将tool追加到待测试工具列表(test_tools)中。

可选地,测试任务运行完成之后,还可以生成测试报告,具体可包括:

1.判断指定的结果文件以及指定的报告存放目录是否有效;若是,则设置测试报告名称以及测试报告存储路径;

2.获取结果文件中的测试工具列表;

3.添加第一预设名称的电子表格,并在第一预设名称的电子表格中写入系统的信息以及遍历该测试工具列表所获取的测试工具的测试内容。

图7是根据本发明优选实施例的生成测试报告方法流程示意图,如图7所示,根据本发明优选实施例的生成测试报告方法包括:

步骤s7-1,参数有效性检查;1)判断指定的结果文件是否有效,如果没有指定结果文件或指定的结果文件不存在,抛出异常;否则继续;2)判断指定的报告存放目录是否有效,如果指定了测试报告存放目录,但指定的目录不存在,抛出异常;否则继续;

步骤s7-2,设置测试报告的名称和路径;

步骤s7-2-1,设置测试报告名称;

如果指定了测试报告名称,对应执行命令中的“-r”参数,测试报告的名称为指定的名称;否则,测试报告的名称为:testresult_%s.%s"%(datetime.datetime.now().strftime('%y%m%d%h%m%s'),format),如:testresult_170913150258.xls;

步骤s7-2-2,设置测试报告路径;1)如果指定了测试报告存放目录,对应执行命令中的“-d”参数,测试报告存放的目录为指定的目录,否则,为默认的目录;2)测试报告路径为测试报告存放目录+测试报告名称;

步骤s7-3,获取结果文件中的测试工具列表,如果测试工具列表为空,抛出异常,结束;否则继续;

步骤s7-4,添加以“osinfo”为名称的电子表格;

步骤s7-5,写入系统的信息,包括cpu、内存、磁盘、网络和操作系统版本等信息;包括:写系统信息标题,系统信息包括两级标题,如表1所示;以及写系统信息标题对应的内容;

表1

步骤s7-6,遍历测试工具列表,写测试工具的测试内容;主要包括:设置测试报告形式(水平/垂直);判断是否存在该测试工具的结果节点;如果不存在,则抛出valueerror异常,退出;否则,继续;添加以测试工具名为名称的电子表格;写入该测试工具的测试结果,写入该测试工具的测试结果流程如图8所示,写入测试结果的流程包括:

步骤s8-1,写测试标题;步骤s8-2,写测试工具描述,测试工具的描述来自测试工具静态描述配置文件;步骤s8-3,写测试工具测试指标,测试工具的测试指标来自测试工具静态描述配置文件;步骤s8-4,写测试参数;步骤s8-5,写测试数据;步骤s8-6,调整格式;步骤s8-7,保存测试报告。

本发明实施例能够获取详细的系统信息,并根据各种类型的测试数据生成统一的xml测试结果文件和xls格式的测试报告,生成的测试报告支持多种展现方式,同时,对测试数据进行了处理,可读性好,便于后续的开发使用。

另外,本发明优选实施例提供的方法还可以通过如下方式自动生成对比测试报告,实现了多个测试方案的测试结果对比:

1.根据参数信息设置结果文件列表,并设置对比名称列表以及对比测试报告存储路径;

2.获取对比测试工具列表;

3.添加第二预设名称的电子表格,并在第二预设名称的电子表格中写入系统信息以及遍历对比测试工具列表所获取的测试工具的测试内容。

实际应用中,生成对比测试报告的命令可以如下:

#./test.py--compare-tstream-x./db/result1.xml,./db/result2.xml-rcompare_result-nresult1,result2-dresultdir

如图9所示,根据本发明优选实施例的生成对比测试报告方法可以如下:

步骤s9-1,根据解析的参数,设置结果文件列表;

步骤s9-2,根据解析的参数,设置对比名称列表;

步骤s9-3,设置对比测试报告路径;

步骤s9-3-1,设置对比测试报告名称;

如果指定了对比测试报告名称,对应执行命令中的“-r”参数,对比测试报告的名称为指定的名称;否则,对比测试报告的名称为:testcmpresult_%s.%s"%(datetime.datetime.now().strftime('%y%m%d%h%m%s'),format),如:testcmpresult_170913150312.xls;

步骤s9-3-2,设置对比测试报告路径;1)如果指定了对比测试报告存放目录,对应执行命令中的“-d”参数,对比测试报告存放的目录为指定的目录,否则,为默认的目录;2)对比测试报告路径为对比测试报告存放目录+对比测试报告名称。

步骤s9-4,获取对比测试工具列表,如果对比测试工具列表为空,抛出异常,结束;否则继续。

步骤s9-5,添加以“osinfo”为名称的电子表格。

步骤s9-6,写入系统的信息,包括cpu、内存、磁盘、网络和操作系统信息;包括:写系统信息标题,系统信息包括两级标题,如表1所示;遍历结果文件列表,写系统信息标题对应的内容。

步骤s9-7,遍历对比测试工具列表,写测试工具的测试内容;包括:设置对比测试报告形式(水平/垂直);添加以测试工具名为名称的电子表格;写入该测试工具的测试结果;

步骤s9-8,保存对比测试报告。

如图10所示,对比测试报告写入测试工具的测试内容方法可以包括:

步骤s10-1,写测试标题;

步骤s10-2,写测试工具描述,测试工具的描述来自测试工具静态描述配置文件;

步骤s10-3,写测试工具测试指标,测试工具的测试指标来自测试工具静态描述配置文件;

步骤s10-4,遍历结果文件列表,进入如下操作:写该测试工具的测试参数;写该测试工具的测试数据;

步骤s10-5,调整格式。

进一步地,在创建好测试任务之后的任意测试阶段,还可以对所创建的测试任务进行查看,查看测试任务的方法可以如下:

1.判断是否存在预设数据结构的测试任务配置文件,若是,则初始化以预设数据结构为参数的任务主节点,并获取各任务子节点;

2.判断是否存在任务子节点;若是,则遍历各任务子节点,获取各任务子节点的元素内容;

3.获取各任务子节点的所有测试工具子节点,获取测试工具列表及测试工具的执行状态;

4.打印各任务子节点内容,包括任务标识、任务名称、测试结果文件名称、测试工具执行状态。

实际应用中,查看测试任务的命令可以如下:

#./test.py–l

如图11所示,查看测试任务的具体步骤可以包括:

步骤s11-1,判断是否存在jobs.xml测试任务配置文件,如果不存在,退出,结束查询操作;否则,继续。

步骤s11-2,初始化一个以job.xml为参数的任务主节点,获取所有任务子节点。

步骤s11-3,判断是否存在任务子节点,如果不存在,退出,结束查询操作;如果存在,则遍历所有任务子节点,进行如下操作:

获取该任务子节点的resultsdb元素内容:结果文件名称;获取该任务子节点的所有测试工具子节点;获取测试工具列表及测试工具的执行状态;打印任务子节点内容,包括任务id、任务名称、测试结果文件名称、测试工具执行状态。

查看测试任务的结果举例如下所示:

图12示出了根据本发明优选实施例提供的总体测试流程图,如图12所示,开始测试时,解析参数返回opts、更新日志设置并设置配置文件、获取配置文件中的测试工具列表tools_list、设置测试工具列表self.tools_list之后,即可进行:创建测试任务、查看测试任务、运行测试任务、生成测试报告和生成对比测试报告。

1.如果解析参数中的opts.mode==0,对应执行命令中的“--create”参数,则创建测试任务;

2.如果解析参数中的opts.mode==1,对应执行命令中的“--run”参数,则执行测试任务;

3.如果解析参数中的opts.mode==2,对应执行命令中的“--report”参数,则生成测试报告;

4.如果解析参数中的opts.mode==3,对应执行命令中的“--compare”参数,则生成对比测试报告;

5.对应执行命令中的“-l”参数,查看测试任务。

基于上述各实施例提供的测试方法,本发明实施例还提供了一种测试工具。如图13所示,本发明实施例提供的测试工具测试入口为test.py,功能模块主要可以包括:配置管理、任务管理、工具管理、执行管理、日志管理和报告管理。

配置管理包括全局配置和基础测试工具配置。全局配置主要包括是否打印日志信息的配置、日志级别配置等;基础测试工具配置包括基础测试工具静态描述配置和运行参数配置。

任务管理主要是根据执行参数创建测试任务,生成job.xml测试任务配置文件。

工具管理包括存放基础测试工具安装包、管理基础测试工具解压安装和管理基础测试工具安装后生成的可执行文件。

执行管理是根据测试任务配置文件执行各基础测试工具,对测试结果进行处理,根据各种测试数据生成统一的xml测试结果文件。

日志管理包括该测试工具执行过程的日志信息和各基础测试工具执行过程的日志信息。

报告管理包括各基础测试工具执行结束后生成的各自的测试数据或报告,以及该测试工具根据xml测试结果文件生成的xls格式的测试报告和对比测试报告。

基于同一发明构思,本发明实施例还提供了一种操作系统性能自动化测试装置,如图14所示,本发明实施例提供的操作系统性能自动化测试装置可以包括:配置管理模块10,配置为接收执行系统性能测试的执行命令,基于执行命令解析与测试相关的参数信息,并根据参数信息确定测试所需的配置文件;

列表获取模块20,配置为获取预设的第一测试工具列表以及配置文件中的第二测试工具列表,基于参数信息在第二测试工具列表中筛选出符合预设条件的测试工具添加至第一测试工具列表;

任务管理模块30,配置为基于第一测试工具列表创建测试任务,并确定测试任务的配置文件;

执行管理模块40,配置为根据测试任务的配置文件执行测试任务。

在本发明一个优选实施例中,列表获取模块20还可以配置为:获取预设的第一测试工具列表以及配置文件中的第二测试工具列表,并将第一测试工具列表初始化为空列表;判断参数信息中的单个测试工具列表是否有值,若是,则说明执行命令中已指定测试工具;遍历单个测试工具列表,判断单个测试工具列表中的测试工具是否存在于第二测试工具列表中,若是,则将该测试工具添加至第一测试工具列表中;判断参数信息中的测试工具集是否有值,若是,则说明执行命令中已指定测试工具集;遍历测试工具集,判断测试工具集中的测试工具是否存在于第二测试工具列表中,若是,则将该测试工具添加至第一测试工具列表中。

在本发明一个优选实施例中,任务管理模块30还可以配置为:初始化任一任务主节点,创建预设数据结构;获取系统当前时间,基于该系统当前时间为结果文件名称赋值;初始化任一任务子节点,将系统当前时间为任务标识,为任务子节点创建一个元素,内容为结果文件名称;遍历第一测试工具列表,初始化以第一测试工具列表中的测试工具为参数的测试工具子节点,将测试工具子节点添加到任务子节点中;获取该测试工具的参数,并将该测试工具的参数作为元素添加到测试工具子节点中;将任务子节点添加至任务主节点中,保存上述预设数据结构的测试任务配置文件。

在本发明一个优选实施例中,执行管理模块40还可以配置为:判断是否存在预设数据结构的测试任务配置文件,若是,则初始化以预设数据结构为参数的任务主节点;判断是否指定执行测试任务的任务标识,若是,则获取与该任务标识相应测试任务的任务子节点;若否,则获取最后一个任务子节点;基于任务子节点上没有执行的测试工具的子节点生成待测试工具列表;遍历待测试工具列表,清空系统缓存,运行待测工具列表中的各测试工具,测试完成之后设置测试工具的状态并保存预设数据结构的文件。

在本发明一个优选实施例中,执行管理模块40还可以配置为:待测工具列表中的各测试工具是否安装,若否,则解压测试工具的测试工具包到指定位置,进行编译和安装;获取测试工具的节点及测试参数,根据测试参数设置测试工具的测试命令,执行测试命令;测试完成之后生成测试结果,并将测试结果保存到结果文件中;清除测试环境,判断执行命令中是否已指定与清除测试环境相关的参数,若是,则删除测试工具的安装目录和可执行文件。

在本发明一个优选实施例中,如图15所示,上述装置还可以包括:第一报告生成模块50,配置为生成测试报告;

第一报告生成模块50还可以配置为,判断指定的结果文件以及指定的报告存放目录是否有效;若是,则设置测试报告名称以及测试报告存储路径;获取结果文件中的测试工具列表;添加第一预设名称的电子表格,并在第一预设名称的电子表格中写入系统的信息以及遍历该测试工具列表所获取的测试工具的测试内容。

在本发明一个优选实施例中,如图15所示,上述装置还可以包括:第二报告生成模块60,配置为生成对比测试报告:

第二报告生成模块60还可以配置为,根据参数信息设置结果文件列表,并设置对比名称列表以及对比测试报告存储路径;获取对比测试工具列表;添加第二预设名称的电子表格,并在第二预设名称的电子表格中写入系统信息以及遍历该对比测试工具列表所获取的测试工具的测试内容。

在本发明一个优选实施例中,如图15所示,上述装置还可以包括:查看模块70,配置为查看测试任务;

查看模块70还可以配置为,判断是否存在预设数据结构的测试任务配置文件,若是,则初始化以预设数据结构为参数的任务主节点,并获取各任务子节点;判断是否存在任务子节点,若是,则遍历各任务子节点,获取各任务子节点的元素内容;获取各任务子节点的所有测试工具子节点,获取测试工具列表及测试工具的执行状态;打印各任务子节点内容,包括任务标识、任务名称、测试结果文件名称、测试工具执行状态。

在本发明一个优选实施例中,如图15所示,上述装置还可以包括:日志管理模块80,配置为基于参数更新日志设置;

日志管理模块80还可以配置为,基于参数信息确定是否打印日志信息和/或设置日志级别。

本发明实施例提供的操作系统性能自动化测试装置尤其适用于linux操作系统。

根据本发明实施例提供的操作系统自动化测试方法及装置,通过剖析不同测试工具的测试指标,把测试工具的具体运行参数抽象成易理解的可配置参数,实现测试方案的定制、测试工具的自动化安装和执行、测试结果收集、自动化生成测试报告和对比测试报告。本发明实施例提供的方法还支持用户自定义测试工具集和测试方案,提供通用接口,方便集成其他基础测试工具,使用灵活、可扩展性强。进一步地,基于本发明实施例提供的方法不仅可以实现创建测试任务、运行测试任务,还可以实现查看测试任务,能够根据各种类型的测试数据生成统一的xml测试结果文件和xls格式的测试报告,且生成的测试报告支持多种展现方式,同时,对测试数据进行了处理,可读性好。

另外,基于本发明实施例提供的方法及装置还可以自动生成对比测试报告,实现了多个测试方案的测试结果对比。本测试工具能够提供不同级别的日志信息,便于问题跟踪。执行过程中不需要人工干预,能够实现测试工具的自动安装、执行、结果处理和清除测试环境,能够自动生成测试报告和对比测试报告,提高了测试效率,降低了人工成本。

在此处所提供的说明书中,说明了大量具体细节。然而能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的操作系统性能自动化测试装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。

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