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

测试用例生成方法、装置、存储介质及处理器

文献发布时间:2024-01-17 01:18:42


测试用例生成方法、装置、存储介质及处理器

技术领域

本发明涉及软件测试技术领域,具体地涉及一种测试用例生成方法、一种测试用例生成装置、一种机器可读存储介质及一种处理器。

背景技术

软件测试软件生命周期中比不缺少的部分,而实现软件测试需要进行测试用例的设计。当前在执行测试用例时,需要修改设置较多参数,比如:在进行对磁盘进行压力测试和验证时,主要采用FIO测试工具完成,但FIO测试工具在执行每一条测试用例时,需要修改设置较多参数,包括不同的读写方式,不同的读写块大小等等。当测试量较大时,人工操作需要耗费大量的时间,测试人员需要设置测试用例、等待测试结果以及统计测试结果,此过程还可能存在测试时间不明确,工作时长不确定的问题。因此,解决这类问题对提高测试效率十分重要。

因此,现有的测试用例生成方法存在修改测试用例繁琐、效率低的问题。

发明内容

本发明实施例的目的是提供一种测试用例生成方法、一种测试用例生成装置、一种机器可读存储介质及一种处理器,该测试用例生成方法无需人工修改测试用例参数,在提高了测试效率的同时避免了人工修改参数导致测试用例遗漏的问题,极大地减轻了测试工作人员的工作负担。

为了实现上述目的,本申请第一方面提供一种测试用例生成方法,包括:

获取多种参数的多个属性值,所述参数为待生成测试用例所涉及的参数;

将所述多种参数的多个属性值进行排列组合,得到多组参数值组合;

分别将各组参数值组合传入到预置的基础测试用例中,生成可执行的测试用例。

在本申请实施例中,所述将所述多种参数的多个属性值进行排列组合,得到多组参数值组合,包括:

构建多个列表;

分别将各种参数的属性值放入对应的列表中,得到多个属性值列表;

利用多层for循环分别遍历所述多个属性值列表,得到多组参数值组合。

在本申请实施例中,在生成可执行的测试用例之后,还包括:

执行所述可执行的测试用例,生成测试结果。

在本申请实施例中,在生成测试结果之后,还包括:

将所述多组参数值组合写入表格,得到测试表格;

将所述测试结果写入所述测试表格,得到测试结果表格;

其中,所述测试表格用于根据所述表格中的参数值组合存放对应的测试结果。

在本申请实施例中,所述分别将各组参数值组合传入到预置的基础测试用例中,生成可执行的测试用例,包括:

创建Python脚本;

将所述预置的基础测试用例写入所述Python脚本中;

分别将各组参数值组合传入到所述Python脚本中的基础测试用例中,生成可执行的测试用例。

在本申请实施例中,所述分别将各组参数值组合传入到所述Python脚本中的基础测试用例中,生成可执行的测试用例,包括:

将所述Python脚本中基础测试用例的参数值用变量替代;

分别将每一组参数值组合中的各个属性值替换对应的变量,得到可执行的测试用例。

在本申请实施例中,还包括:

在所述Python脚本中调用测试工具运行所述可执行的测试用例,得到测试结果。

本申请第二方面提供一种测试用例生成装置,包括:

获取模块,用于获取多种参数的多个属性值,所述参数为待生成测试用例所涉及的参数;

组合模块,用于将所述多种参数的多个属性值进行排列组合,得到多组参数值组合;

生成模块,用于分别将各组参数值组合传入到预置的基础测试用例中,生成可执行的测试用例。

本申请第三方面提供一种处理器,被配置成执行上述的测试用例生成方法。

本申请第四方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被处理器执行时使得所述处理器被配置成执行上述的测试用例生成方法。

本发明的有益效果:

通过获取多种参数的多个属性值,所述参数为待生成测试用例所涉及的参数,将所述多种参数的多个属性值进行排列组合,得到多组参数值组合;再分别将各组参数值组合传入到预置的基础测试用例中,生成可执行的测试用例。将测试用例需要修改的所有参数组合起来实现自动生成测试用例,整个测试用例生成过程无需人工修改测试用例参数,在提高了测试效率的同时避免了人工修改参数导致测试用例遗漏的问题,极大地减轻了测试工作人员的工作负担。

本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:

图1示意性示出了根据本申请实施例的一种测试用例生成方法的流程示意图;

图2示意性示出了根据本申请实施例的测试过程流程图;

图3示意性示出了根据本申请实施例的一种测试用例生成装置的结构框图;

图4示意性示出了根据本申请实施例的计算机设备的内部结构图。

其中,410-获取模块;420-组合模块;430-生成模块;A01-处理器;A02-网络接口;A03-内存储器;A04-显示屏;A05-输入装置;A06-非易失性存储介质;B01-操作系统;B02-计算机程序。

具体实施方式

以下将参照附图和优选实施例来说明本发明的实施方式,本领域技术人员可由本说明书中所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。应当理解,优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围。

以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。

需要说明,若本申请实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

请参看图1,图1示意性示出了根据本申请实施例的一种测试用例生成方法的流程示意图。

本实施例提供一种测试用例生成方法,包括以下步骤:

步骤210:获取多种参数的多个属性值,所述参数为待生成测试用例所涉及的参数;

在本实施例中,所述参数是在设计测试用例时所涉及的参数,比如,对于磁盘FIO性能测试,上述参数可以是读写块大小、读写方式等多种参数,所述属性值是指各个参数在测试时的取值。比如:读写块大小的属性值包括2K,4K,8K,16K,32K。

步骤220:将所述多种参数的多个属性值进行排列组合,得到多组参数值组合;

在本实施例中,排列组合的方式可以是随机,也可以按照一定的顺序,为了保证测试的准确性,应历遍所有的排列组合。比如:参数包括读写方式和块大小,读写方式的属性值包括读read、写write;块大小的属性值包括2K、4K,则进行排列组合得到的参数值组合包括:(读read,2K),(读read,4K),(写write,2K)和(写write,4K)。

在一些实施例中,为了便于进行排列组合,可以采用列表的方式进行组合,具体为:所述将所述多种参数的多个属性值进行排列组合,得到多组参数值组合包括以下步骤:

首先,构建多个列表;

然后,分别将各种参数的属性值放入对应的列表中,得到多个属性值列表;比如:可以构建列表list1,列表list2,列表list3将读写块大小、读写方式参数的属性值分别放入各列表中,比如读写方式rw(read,write,randread,randwrite)放入list1,块大小bs(2K,4K,8K,16K,32K)放入list2,direct io/buffer io(0,1)放入list3。

最后,利用多层for循环分别遍历所述多个属性值列表,得到多组参数值组合。在本实施例中,利用多层for循环分别遍历上述多个列表生成排列组合结果,该结果中的每一个组合即为不同测试用例的需要的具体参数值。比如在上述例子中,生成的参数值组合包括(read,2k,1),(write,8k,0)等。

上述实现过程中,通过将各种参数的属性值放入列表中,然后采用for循环遍历属性值列表,从而可以更加便捷地得到参数值组合,同时也可以避免参数值组合遗漏,提高了参数值组合的准确性。

步骤230:分别将各组参数值组合传入到预置的基础测试用例中,生成可执行的测试用例。

在本实施例中,上述基础测试用例是指根据测试需求设计的一个初始测试用例,基础测试用例中包含有各种参数的属性值。上述传入到预置的基础测试用例中是指将各组参数值组合中的属性值分别替换基础测试用例中对应参数的属性值,从而得到新的一条测试用例,得到的新的测试用例可以运行得到测试结果。

在一些实施例中,可以将生成可执行的测试用例的过程放在脚本中进行,比如Python脚本。所述分别将各组参数值组合传入到预置的基础测试用例中,生成可执行的测试用例,包括:

首先,创建Python脚本;在本实施例中,可以根据现有的开源Python工具设置Python脚本。

然后,将所述预置的基础测试用例写入所述Python脚本中;

相应地,在采用列表的方式进行组合得到多组参数值组合时,可以是在Python脚本中构建多个列表,比如:列表list1,列表list2,列表list3,然后将读写块大小、读写方式参数的属性值分别放入各列表中。然后利用多层for循环分别遍历上述多个列表生成排列组合结果,该结果中的每一个组合即为不同测试用例的需要的具体参数值。

最后,分别将各组参数值组合传入到所述Python脚本中的基础测试用例中,生成可执行的测试用例。其中,为了便于更快得到可执行的测试用例,可以采用变量的方式进行传入,具体包括以下步骤:

第一步,将所述Python脚本中基础测试用例的参数值用变量替代;

第二步,分别将每一组参数值组合中的各个属性值替换对应的变量,得到可执行的测试用例。

在本实施例中,可以在上述Python脚本中根据测试工具写入基础测试用例,其中每次运行时修改的参数用不同的变量代替。例如读写方式、块大小、direct的参数值分别用var1、var2、var3表示。再次利用for循环依次取上述多组参数值组合的一个组合,将组合中的第一位值利用上述测试用例中的变量传入测试用例中需要的第一位参数位置,第二个,第三个等参数同理传入对应位置。例如,将上述例子(read,2k,1)中的第一个参数read传入上述变量var1,第二个参数2k传入var2,第三个参数1传入var3,以此生成一条测试用例。

需要说明的是,上述是以Python脚本来说明生成可执行的测试用例的过程,在具体实施过程中,可以根据需要采用不同的脚本实现,本实施例不做限定,其实现与采用Python脚本的过程相同,在此就不再赘述。

上述实现过程中,通过获取多种参数的多个属性值,所述参数为待生成测试用例所涉及的参数,将所述多种参数的多个属性值进行排列组合,得到多组参数值组合;再分别将各组参数值组合传入到预置的基础测试用例中,生成可执行的测试用例。将测试用例需要修改的所有参数组合起来实现自动生成测试用例,整个测试用例生成过程无需人工修改测试用例参数,在提高了测试效率的同时避免了人工修改参数导致测试用例遗漏的问题,极大地减轻了测试工作人员的工作负担。

其中,在生成可执行的测试用例之后,还包括:执行所述可执行的测试用例,生成测试结果。

相应地,可以在所述Python脚本中调用测试工具运行所述可执行的测试用例,得到测试结果。

上述实现过程中,通过运行Python脚本,就可以自动执行测试并记录测试结果,方便进行测试,进一步提高了测试效率,减少了测试工作人员的工作负担。

在一些实施例中,为了便于查看测试结果,在生成测试结果之后,还包括以下步骤:

首先,将所述多组参数值组合写入表格,得到测试表格;其中,所述测试表格用于根据所述表格中的参数值组合存放对应的测试结果。

然后,将所述测试结果写入所述测试表格,得到测试结果表格;

在本实施例中,可以将上述生成的排列组合结果,即多组参数值组合,横向写入excel,测试结果将根据此表格内容来存入。执行可执行的测试用例之后,可以将测试结果写入excel。相应地,可以是运行Python脚本,自动执行测试并记录测试结果到上述excel表格中。通过将测试结果写入测试表格,便于查看测试结果。

下面以采用该方法实现基于Python脚本语言自动生成FIO测试的测试用例为例,具体说明本方法。请参看图2,图2示意性示出了根据本申请实施例的测试过程流程图。该测试过程包括设置Python自动化脚本、在Python脚本中生成测试用例、运行Python自动化脚本以及输出记录测试结果。具体步骤如下:

步骤一:首先根据现有的开源Python工具设置Python脚本;

步骤二:在Python脚本中构建多个列表,list1,list2,……将读写块大小、读写方式等多种参数的属性值分别放入各列表中。例如,读写方式rw(read,write,randread,randwrite)放入list1,块大小bs(2K,4K,8K,16K,32K)放入list2,direct io/buffer io(0,1)放入list3;

步骤三:利用多层for循环分别遍历上述多个列表生成排列组合结果,该结果中的每一个组合即为不同测试用例的需要的具体参数值。例如,(read,2k,1),(write,8k,0)等;

步骤四:将上述生成的排列组合结果横向写入excel,测试结果将根据此表格内容来存入;

步骤五:在上述Python脚本中根据fio测试工具写入测试用例,其中每次运行时修改的参数用不同的变量代替。例如读写方式、块大小、direct的参数值分别用var1、var2、var3表示;

步骤六:再次利用for循环依次取上述排列组合结果的一个组合,将组合中的第一位值利用上述测试用例中的变量传入测试用例中需要的第一位参数位置,第二个和第三个参数同理传入对应位置。例如,将上述例子(read,2k,1)中的第一个参数read传入上述变量var1,第二个参数2k传入var2,第三个参数1传入var3,以此生成一条测试用例;

步骤七:上述配置完成,运行Python脚本,自动执行测试并记录测试结果到上述excel表格中。

图1为实施例中测试用例生成方法的流程示意图。应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图3所示,图3示意性示出了根据本申请实施例的一种测试用例生成装置的结构框图。提供了一种测试用例生成装置,包括获取模块410、组合模块420和生成模块430;其中:

获取模块410,用于获取多种参数的多个属性值,所述参数为待生成测试用例所涉及的参数;

组合模块420,用于将所述多种参数的多个属性值进行排列组合,得到多组参数值组合;

生成模块430,用于分别将各组参数值组合传入到预置的基础测试用例中,生成可执行的测试用例。

所述测试用例生成装置包括处理器和存储器,上述获取模块410、组合模块420和生成模块430等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序模块中实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现避免人工修改测试用例参数,提高测试效率。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

本发明实施例提供了一种机器可读存储介质,其上存储有程序,该程序被处理器执行时实现所述测试用例生成方法。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述测试用例生成方法。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器A01、网络接口A02、显示屏A04、输入装置A05和存储器(图中未示出)。其中,该计算机设备的处理器A01用于提供计算和控制能力。该计算机设备的存储器包括内存储器A03和非易失性存储介质A06。该非易失性存储介质A06存储有操作系统B01和计算机程序B02。该内存储器A03为非易失性存储介质A06中的操作系统B01和计算机程序B02的运行提供环境。该计算机设备的网络接口A02用于与外部的终端通过网络连接通信。该计算机程序被处理器A01执行时以实现一种测试用例生成方法。该计算机设备的显示屏A04可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置A05可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的测试用例生成装置可以实现为一种计算机程序的形式,计算机程序可在如图4所示的计算机设备上运行。计算机设备的存储器中可存储组成该测试用例生成装置的各个程序模块,比如,图3所示的获取模块410、组合模块420和生成模块430。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的测试用例生成方法中的步骤。

图4所示的计算机设备可以通过如图3所示的测试用例生成装置中的获取模块410执行步骤210。计算机设备可通过组合模块420执行步骤220,计算机设备可通过生成模块430执行步骤230。

本申请实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:

获取多种参数的多个属性值,所述参数为待生成测试用例所涉及的参数;

将所述多种参数的多个属性值进行排列组合,得到多组参数值组合;

分别将各组参数值组合传入到预置的基础测试用例中,生成可执行的测试用例。

在一个实施例中,所述将所述多种参数的多个属性值进行排列组合,得到多组参数值组合,包括:

构建多个列表;

分别将各种参数的属性值放入对应的列表中,得到多个属性值列表;

利用多层for循环分别遍历所述多个属性值列表,得到多组参数值组合。

在一个实施例中,在生成可执行的测试用例之后,还包括:

执行所述可执行的测试用例,生成测试结果。

在一个实施例中,在生成测试结果之后,还包括:

将所述多组参数值组合写入表格,得到测试表格;

将所述测试结果写入所述测试表格,得到测试结果表格;

其中,所述测试表格用于根据所述表格中的参数值组合存放对应的测试结果。

在一个实施例中,所述分别将各组参数值组合传入到预置的基础测试用例中,生成可执行的测试用例,包括:

创建Python脚本;

将所述预置的基础测试用例写入所述Python脚本中;

分别将各组参数值组合传入到所述Python脚本中的基础测试用例中,生成可执行的测试用例。

在一个实施例中,所述分别将各组参数值组合传入到所述Python脚本中的基础测试用例中,生成可执行的测试用例,包括:

将所述Python脚本中基础测试用例的参数值用变量替代;

分别将每一组参数值组合中的各个属性值替换对应的变量,得到可执行的测试用例。

在一个实施例中,还包括:

在所述Python脚本中调用测试工具运行所述可执行的测试用例,得到测试结果。

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

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

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

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

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

以上实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。

相关技术
  • 测试用例生成方法、装置及计算机可读存储介质
  • 接口测试用例生成方法、装置、计算机设备和存储介质
  • 接口测试用例生成方法、装置、电子设备、存储介质
  • 生成网络拓扑的方法、装置、存储介质和处理器
  • 一种服务端测试用例集的生成方法、终端设备及存储介质
  • 测试用例生成方法、测试用例生成装置以及存储介质
  • 测试用例的生成方法、测试用例的生成装置及存储介质
技术分类

06120116123153