本申请涉及自动化测试技术领域,特别涉及一种分布式存储集群的测试方法、装置及设备。
背景技术:
随着分布式存储技术的不断发展与广泛应用,分布式存储集群的自动化测试越来越重要,同时,其测试的内容、测试用例的数量也越来越多。
由于分布式存储集群的集群特征千变万化,例如存储节点数量的变化、mon(monitor,监控节点)数量的变化、mds(metadataservice,元数据节点)数量的变化以及osd(objectstoragedevice,对象存储设备)数量的变化等,而不同的集群特征对应着不同的测试用例;并且,集群中的测试点的数量成千上万。由此可见,在对分布式存储集群进行测试时需要用到数量庞大的测试用例。而现有技术在进行测试时,所用的测试用例是技术人员根据以上所说的各种情况一一编写生成的,所以工作量巨大而效率较低。因此,如何有效地简化分布式存储集群大量的测试用例的生成过程以提高效率,进而优化分布式存储集群的测试过程,是本领域技术人员亟待解决的技术问题。
技术实现要素:
本申请的目的在于提供一种分布式存储集群的测试方法、装置及设备,以便有效地简化分布式存储集群大量的测试用例的生成过程以提高效率。
为解决上述技术问题,本申请提供一种分布式存储集群的测试方法,包括:
获取待测试功能的测试用例;
执行所述测试用例以便对分布式存储集群的待测试功能进行测试;
其中,所述测试用例是在从预创建的yaml配置文件集的各个子目录中提取yaml配置文件构成yaml配置文件组合,合并所述yaml配置文件组合中的yaml配置文件生成合并文件之后,利用代码生成工具根据所述合并文件预先生成的;所述yaml配置文件集的各个子目录中分别存储有对应于各类集群特征的yaml配置文件。
可选地,所述yaml配置文件集以第一标识符进行标识;每个所述子目录中的yaml配置文件为同一类集群特征的可替换配置文件;
所述从预创建的yaml配置文件集的各个子目录中提取yaml配置文件构成yaml配置文件组合包括:
从预创建的yaml配置文件集的各个子目录中分别提取一个yaml配置文件构成yaml配置文件组合。
可选地,所述yaml配置文件集以第二标识符进行标识;每个所述子目录中的yaml配置文件为同一类集群特征的不可替换配置文件;
所述从预创建的yaml配置文件集的各个子目录中提取yaml配置文件构成yaml配置文件组合包括:
从预创建的yaml配置文件集的各个子目录中提取全部的yaml配置文件构成yaml配置文件组合。
可选地,所述集群特征包括以下任意一项或者任意组合:
测试点标识、存储节点数量、mon数量、mds数量和osd数量。
本申请还提供了一种分布式存储集群的测试装置,包括:
获取模块:用于获取待测试功能的测试用例;
执行模块:用于执行所述测试用例以便对分布式存储集群的待测试功能进行测试;
生成模块:用于从预创建的yaml配置文件集的各个子目录中提取yaml配置文件构成yaml配置文件组合,合并所述yaml配置文件组合中的yaml配置文件生成合并文件,利用代码生成工具根据所述合并文件预先生成所述测试用例;所述yaml配置文件集的各个子目录中分别存储有对应于各类集群特征的yaml配置文件。
可选地,所述yaml配置文件集以第一标识符进行标识;每个所述子目录中的yaml配置文件为同一类集群特征的可替换配置文件;
所述生成模块具体用于:
从预创建的yaml配置文件集的各个子目录中分别提取一个yaml配置文件构成yaml配置文件组合。
可选地,所述yaml配置文件集以第二标识符进行标识;每个所述子目录中的yaml配置文件为同一类集群特征的不可替换配置文件;
所述生成模块具体用于:
从预创建的yaml配置文件集的各个子目录中提取全部的yaml配置文件构成yaml配置文件组合。
可选地,所述集群特征包括以下任意一项或者任意组合:
测试点标识、存储节点数量、mon数量、mds数量和osd数量。
本申请还提供了一种分布式存储集群的测试设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序以实现如以上所述的分布式存储集群的测试方法的步骤。
本申请所提供的分布式存储集群的测试方法包括:获取待测试功能的测试用例;执行所述测试用例以便对分布式存储集群的待测试功能进行测试;其中,所述测试用例是在从预创建的yaml配置文件集的各个子目录中提取yaml配置文件构成yaml配置文件组合,合并所述yaml配置文件组合中的yaml配置文件生成合并文件之后,利用代码生成工具根据所述合并文件预先生成的;所述yaml配置文件集的各个子目录中分别存储有对应于各类集群特征的yaml配置文件。
可见,相比于现有技术,本申请所提供的分布式存储集群的测试方法中,利用简单易编写的yaml语言生成yaml配置文件,通过对不同集群特征对应的yaml配置文件进行组合与合并,可以利用代码生成工具一次性生成多种测试情况下的测试用例。由此可见,本申请所提供的分布式存储集群的测试方法极大地简化了测试用例生成过程的工作量,提高了效率。本申请所提供的分布式存储集群的测试装置及设备可以实现上述分布式存储集群的测试方法,同样具有上述有益效果。
附图说明
为了更清楚地说明现有技术和本申请实施例中的技术方案,下面将对现有技术和本申请实施例描述中需要使用的附图作简要的介绍。当然,下面有关本申请实施例的附图描述的仅仅是本申请中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本申请的保护范围。
图1为本申请实施例所提供的一种分布式存储集群的测试方法的流程图;
图2为本申请实施例所提供的一种分布式存储集群的测试装置的结构框图。
具体实施方式
本申请的核心在于提供一种分布式存储集群的测试方法、装置及设备,以便有效地简化分布式存储集群大量的测试用例的生成过程以提高效率。
为了对本申请实施例中的技术方案进行更加清楚、完整地描述,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种分布式存储集群的测试方法的流程图,主要包括以下步骤:
步骤1:获取待测试功能的测试用例。
其中,测试用例是在从预创建的yaml配置文件集的各个子目录中提取yaml配置文件构成yaml配置文件组合,合并yaml配置文件组合中的yaml配置文件生成合并文件之后,利用代码生成工具根据合并文件预先生成的;yaml配置文件集的各个子目录中分别存储有对应于各类集群特征的yaml配置文件。
本申请中,测试用例的生成过程不同于现有技术,即,不是由本领域技术人员针对各种集群特征的变化情况一一进行编写,而是通过对预先创建的yaml配置文件进行组合、合并后,利用代码生成工具一次性生成多种集群特征情况下的测试用例。这里所说的集群特征是用来描述集群环境情况的,例如共有多少个存储节点、共有多少个mon、测试点分布位置等等。
yaml采用一种直观的能被电脑识别的数据序列化格式,是一个可读性高、容易和脚本语言交互的用来表达资料序列的编程语言。它类似于xml(一种标准通用标记语言)的数据描述语言,但语法比xml简单很多,可以作为配置文件使用。
在利用yaml配置文件生成测试用例时,首先可以创建yaml配置文件集,在该yaml配置文件集的各个子目录中分别存储对应于各类集群特征的yaml配置文件。这里所说的yaml配置文件集中的yaml配置文件的具体数量和内容,本领域技术人员可以自行选择并设置,本申请实施例对此并不进行限定。可以将同一个集群特征的所有情况下的yaml配置文件存放在同一个子目录中,例如,假设集群中有50个存储节点,可将50个存储节点各自对应的yaml配置文件存放在一个子目录中。
从各个子目录中取出yaml配置文件就可以构成yaml配置文件组合。yaml配置文件集的具体创建方法不同,可构成的yaml配置文件组合的数量和内容也不同。对于每个yaml配置文件组合,都可以通过合并生成一个合并文件,并通过预设的代码生成工具生成一个测试用例。这里所说的代码生成工具,可由本领域技术人员在自动化测试平台中自行编写设计实现,本申请实施例对此并不进行限定。
步骤2:执行测试用例以便对分布式存储集群的待测试功能进行测试。
可见,本申请实施例所提供的分布式存储集群的测试方法中,利用简单易编写的yaml语言进行配置,通过对不同集群特征对应的yaml配置文件进行组合与合并,利用代码生成工具一次性生成多种测试情况下的测试用例。由此可见,本申请所提供的分布式存储集群的测试方法极大地简化了测试用例生成过程的工作量,提高了效率。
本申请所提供的分布式存储集群的测试方法,在上述实施例的基础上:
作为一种优选实施例,yaml配置文件集以第一标识符进行标识;每个子目录中的yaml配置文件为同一类集群特征的可替换配置文件;
所述从预创建的yaml配置文件集的各个子目录中提取yaml配置文件构成yaml配置文件组合包括:
从预创建的yaml配置文件集的各个子目录中分别提取一个yaml配置文件构成yaml配置文件组合。
具体地,所说的第一标识符一般可以设为“%”标识符。另外,所说的可替换配置文件,意指可单独对该子目录所表示的集群特征进行配置的yaml配置文件。例如前文所说的例子中,对于存放有50个存储节点各自对应的yaml配置文件的子目录,其中的每个yaml配置文件都是一个可替换配置文件,即从该子目录中取出任何一个yaml配置文件都可以与其他子目录中的yaml配置文件构成yaml配置文件组合。
对于采用第一标识符进行标识的yaml配置文件集,其可以生成的yaml配置文件组合的数量为各个子目录中yaml配置文件数量的乘积。例如,对于yaml配置文件集suites/baz,其子目录suites/baz/a中有1个yaml配置文件a.yaml;子目录suites/baz/b中有2个yaml配置文件b1.yaml和b2.yaml;子目录suites/baz/c中有1个yaml配置文件c.yaml;子目录suites/baz/d中有2个yaml配置文件d1.yaml和d2.yaml;若其用第一标识符标识,则其一共可以得到4种yaml配置文件组合:
a.yaml、b1.yaml、c.yaml与d1.yaml;
a.yaml、b2.yaml、c.yaml与d1.yaml;
a.yaml、b1.yaml、c.yaml与d2.yaml;
a.yaml、b2.yaml、c.yaml与d2.yaml。
作为一种优选实施例,yaml配置文件集以第二标识符进行标识;每个子目录中的yaml配置文件为同一类集群特征的不可替换配置文件;
从预创建的yaml配置文件集的各个子目录中提取yaml配置文件构成yaml配置文件组合包括:
从预创建的yaml配置文件集的各个子目录中提取全部的yaml配置文件构成yaml配置文件组合。
具体地,所说的第二标识符一般可以设为“+”标识符。另外,所说的不可替换配置文件,意指无法单独对子目录所表示的集群特征进行配置的yaml配置文件。例如,子目录中存放有两个yaml配置文件,而这两个yaml配置文件均为第1个测试点的部分配置文件,两者须同时使用才能生成完整的测试用例,则两者为不可替换配置文件。对于前文中提到的yaml配置文件集suites/baz,如果其采用第二标识符进行标识,则其一共得到1种yaml配置文件组合:
a.yaml、b1.yaml、b2.yaml、c.yaml、d1.yaml与d2.yaml。
作为一种优选实施例,集群特征包括以下任意一项或者任意组合:
测试点标识、存储节点数量、mon数量、mds数量和osd数量。
下面对本申请实施例所提供的分布式存储集群的测试装置进行介绍。
请参阅图2,图2为本申请所提供的一种分布式存储集群的测试装置的结构框图;包括获取模块1、执行模块2和生成模块3:
获取模块1用于获取待测试功能的测试用例;
执行模块2用于执行测试用例以便对分布式存储集群的待测试功能进行测试;
生成模块3用于从预创建的yaml配置文件集的各个子目录中提取yaml配置文件构成yaml配置文件组合,合并yaml配置文件组合中的yaml配置文件生成合并文件,利用代码生成工具根据合并文件预先生成测试用例;yaml配置文件集的各个子目录中分别存储有对应于各类集群特征的yaml配置文件。
可见,本申请所提供的分布式存储集群的测试装置中,获取模块1所获取的测试用例,是生成模块3预先基于简单易编写的yaml配置文件生成的。并且,生成模块3具体是将对应于不同集群特征的yaml配置文件进行组合与合并,利用代码生成工具一次性生成多种测试情况下的测试用例。由此可见,本申请所提供的分布式存储集群的测试方法极大地简化了测试用例生成过程的工作量,提高了效率。
本申请所提供的分布式存储集群的测试装置,在上述实施例的基础上:
作为一种优选实施例,yaml配置文件集以第一标识符进行标识;每个子目录中的yaml配置文件为同一类集群特征的可替换配置文件;
生成模块3具体用于:
从预创建的yaml配置文件集的各个子目录中分别提取一个yaml配置文件构成yaml配置文件组合。
作为一种优选实施例,yaml配置文件集以第二标识符进行标识;每个子目录中的yaml配置文件为同一类集群特征的不可替换配置文件;
生成模块3具体用于:
从预创建的yaml配置文件集的各个子目录中提取全部的yaml配置文件构成yaml配置文件组合。
作为一种优选实施例,集群特征包括以下任意一项或者任意组合:
测试点标识、存储节点数量、mon数量、mds数量和osd数量。
本申请所提供的分布式存储集群的测试装置的具体实施方式与上文所描述的分布式存储集群的测试方法可相互对应参照,这里就不再赘述。
本申请还提供了一种分布式存储集群的测试设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行计算机程序以实现如上述实施例所述的分布式存储集群的测试方法的步骤。
本申请中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本申请所提供的技术方案进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。