一种面向分布式存储集群的测试方法及装置与流程

文档序号:12309457阅读:174来源:国知局
一种面向分布式存储集群的测试方法及装置与流程

本发明涉及测试技术领域,特别涉及一种面向分布式存储集群的测试方法及装置。



背景技术:

目前,大数据运算时代所产生的海量数据多为非结构化数据,且数据的数量级别以指数型趋势增长。

为满足海量数据的存储需求,分布式存储系统应运而生。分布式存储系统的功能可以解决海量数据存储和服务器应用的问题,其将存储重新纳入服务器内,将传统服务器使用方式重新激活,常规服务器在担任计算角色的同时,也担任数据存储角色。

但是,分布式存储系统是横向扩展的,多个服务器之间同时要依赖复杂的网络拓扑,形成存储集群。分布式存储系统通过相关算法提供数据读写及落盘功能。因此,分布式存储集群的测试需要考虑多方因素,进而导致难度较大,且现有技术中还没有针对分布式存储集群的测试方法。



技术实现要素:

本发明的目的是提供一种面向分布式存储集群的测试方法及装置,目的在于解决现有分布式存储集群测试难以实现的问题。

为解决上述技术问题,本发明提供一种面向分布式存储集群的测试方法,该方法包括:

运行预搭建的自动化控制节点的执行脚本读取任务队列,获取待执行任务信息,所述待执行任务信息为包括任务信息、集群配置信息、测试脚本信息及测试用例信息的信息;

从任务机池选取所需的虚拟机节点;

根据所述集群配置信息,基于所述虚拟机节点,执行搭建分布式集群脚本,搭建分布式集群;

根据所述测试脚本信息,通过所述虚拟机节点获取脚本库的测试脚本;

根据所述测试用例信息,在所述虚拟机节点执行所述测试脚本,得出测试结果。

可选地,在所述根据所述测试用例信息,在所述虚拟机节点执行所述测试脚本,得出测试结果之后还包括:

根据所述测试结果及测试过程中的测试信息,生成测试日志。

可选地,在所述根据所述测试结果及测试过程中的测试信息,生成测试日志之后还包括:

分析所述测试日志,生成测试报告;

以预设发送方式,将所述测试报告自动发送至预设地址。

可选地,在所述根据所述测试用例信息,在所述虚拟机节点执行所述测试脚本,得出测试结果之后还包括:

清理所述分布式集群,释放所述虚拟机节点。

可选地,所述自动化控制节点的搭建过程具体为:

创建ssh-key,并设置ssh免密信息;

配置所述脚本库、yum源及所述任务队列;

将所述任务机池的各个虚拟机节点信息写入数据库;

获取预编写的自动化测试配置文件。

此外,本发明还提供了一种面向分布式存储集群的测试装置,该装置包括:

待执行任务信息获取模块,用于运行预搭建的自动化控制节点的执行脚本读取任务队列,获取待执行任务信息,所述待执行任务信息为包括任务信息、集群配置信息、测试脚本信息及测试用例信息的信息;

节点选取模块,用于从任务机池选取所需的虚拟机节点;

集群搭建模块,用于根据所述集群配置信息,基于所述虚拟机节点,执行搭建分布式集群脚本,搭建分布式集群;

测试脚本获取模块,用于根据所述测试脚本信息,通过所述虚拟机节点获取脚本库的测试脚本;

测试模块,用于根据所述测试用例信息,在所述虚拟机节点执行所述测试脚本,得出测试结果。

可选地,还包括:

日志生成模块,用于根据所述测试结果及测试过程中的测试信息,生成测试日志。

可选地,还包括:

测试报告生成模块,用于分析所述测试日志,生成测试报告;

自动发送模块,用于以预设发送方式,将所述测试报告自动发送至预设地址。

可选地,还包括:

清理模块,用于清理所述分布式集群,释放所述虚拟机节点。

可选地,还包括:

创建模块,用于创建ssh-key,并设置ssh免密信息;

配置模块,用于配置所述脚本库、yum源及所述任务队列;

写入模块,用于将所述任务机池的各个虚拟机节点信息写入数据库;

配置文件获取模块,用于获取预编写的自动化测试配置文件。

本发明所提供的一种面向分布式存储集群的测试方法及装置,通过运行预搭建的自动化控制节点的执行脚本读取任务队列,获取待执行任务信息,上述待执行任务信息为包括任务信息、集群配置信息、测试脚本信息及测试用例信息的信息;从任务机池选取所需的虚拟机节点;根据集群配置信息,基于虚拟机节点,执行搭建分布式集群脚本,搭建分布式集群;根据测试脚本信息,通过虚拟机节点获取脚本库的测试脚本;根据测试用例信息,在虚拟机节点执行测试脚本,得出测试结果。本申请通过分布式集群的自动化搭建,功能测试的自动化,实现了分布式存储集群的自动化测试;且测试执行效率较高,可以覆盖人工测试容易忽略的测试点,测试覆盖度较高,进而使得测试效率和测试质量较高。

附图说明

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

图1为本发明实施例提供的面向分布式存储集群的测试方法的一种具体实施方式的流程示意图;

图2为本发明实施例提供的面向分布式存储集群的自动化测试方法的示意图;

图3为本发明实施例提供的面向分布式存储集群的测试装置的结构示意图。

具体实施方式

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

请参考图1,图1为本发明实施例提供的面向分布式存储集群的测试方法的一种具体实施方式的流程示意图,该方法包括以下步骤:

步骤101:运行预搭建的自动化控制节点的执行脚本读取任务队列,获取待执行任务信息,所述待执行任务信息为包括任务信息、集群配置信息、测试脚本信息及测试用例信息的信息。

可以理解,上述待执行任务信息至少可以包括任务信息、集群配置信息、测试脚本信息及测试用例信息,其具体可以通过读取提交至任务队列中的测试任务的任务配置文件获取,而该任务配置文件可以为使用标记语言编写的自动测试配置文件。当然,上述待执行任务信息还可以包括其它信息,在此不作限定。

上述任务信息可以具体为测试任务的相关信息,例如,任务id;上述集群配置信息可以具体为分布式集群配置文件存储路径等相关信息,该分布式集群配置文件可以为预先根据集群配置信息生成的配置文件;上述测试脚本信息可以具体为脚本库地址信息和测试脚本地址信息等;上述测试用例信息可以具体为测试用例的存储地址信息等。

上述自动化控制节点可以是预先搭建好的,也可以不是预先搭建好,此时,可以先搭建好自动化控制节点,再执行相应的测试任务。

故在本发明的一些实施例中,上述自动化控制节点的搭建过程可以具体为:创建ssh-key,并设置ssh免密信息;配置所述脚本库、yum源及所述任务队列;将所述任务机池的各个虚拟机节点信息写入数据库;获取预编写的自动化测试配置文件。

在搭建自动化控制节点之前,可以先使用虚拟机方式,创建任务机池,即任务机池中包括多个用于执行测试任务的虚拟机节点;且为各个任务机安装所需操作系统,该操作系统可以为待测软件包的基础操作系统;各个任务机操作系统之间可以配置ssh无密码访问。

接着创建自动化控制节点,设置ssh免密信息,即自动化控制节点与任务机池内的各个虚拟机节点同样配置ssh无密码访问;在自动化控制节点设置任务队列,搭建脚本库(git/svn)以及yum源,该yum源上存储有rpm包;然后,将任务机池的各个任务机信息写入轻量级数据库中;接收使用标记语言编写的自动化测试配置文件,其中,自动化测试配置文件可以包括预先设置的任务节点数量、测试脚本存储路径等相关信息;最后,可以将所需测试任务提交至任务队列。

步骤102:从任务机池选取所需的虚拟机节点。

可以理解,上述任务机池可以有多个任务机节点即虚拟机节点,执行一次测试任务时,可以根据需要选择虚拟机节点个数,例如,某一次测试任务所需的虚拟机节点个数为3个,而当前空闲同一类型操作系统的虚拟机节点数大于3个,此时,可以任意选取3个虚拟机节点即可;而当空闲同一类型操作系统的虚拟机节点小于3个时,则等待至有3个虚拟机节点。

步骤103:根据所述集群配置信息,基于所述虚拟机节点,执行搭建分布式集群脚本,搭建分布式集群。

选取出所需的虚拟机节点后,可以根据集群配置信息,将选取出的多个虚拟机节点搭建成一个分布式集群。

步骤104:根据所述测试脚本信息,通过所述虚拟机节点获取脚本库的测试脚本。

上述测试脚本信息可以包括脚本库地址信息和测试脚本地址信息,此时,基于所搭建的分布式集群中的虚拟机节点,先根据脚本库地址信息将脚本库复制至本地,该脚本库地址信息可以具体表现为目录,而测试脚本地址信息相对于目录的子目录,接着根据测试脚本地址信息远程到脚本库,从脚本库中读取对应的测试脚本至虚拟机节点。

步骤105:根据所述测试用例信息,在所述虚拟机节点执行所述测试脚本,得出测试结果。

分布式存储集群中的虚拟机节点获取到相应的测试脚本后,可以在该虚拟机节点上执行所获取的测试脚本。具体地,执行相应的测试脚本之后,可以根据测试用例存储地址等相关信息,读取到测试用例,并运行该测试用例,进而得出测试结果。

上述测试脚本可以具体为shell脚本,也可以为其它类型的脚本,在此不作限定。

在得出测试结果后,可以生成相应的测试日志,以便后续的查看和分析。故在本发明的一些实施例中,在上述根据所述测试用例信息,在所述虚拟机节点执行所述测试脚本,得出测试结果之后还可以包括:根据所述测试结果及测试过程中的测试信息,生成测试日志。

上述测试信息可以是指测试过程中的脚本数量及执行时间等相关信息,根据测试结果和测试信息生成测试日志,即测试日志可以包括测试结果、脚本数量及执行时间等相关信息。

可以理解,每一条功能测试脚本有其对应的测试日志。而生成测试日志后,虚拟机节点可以将测试日志上传至指定节点的指定路径下,便于后续的日志的读取。

为使得测试结果直观可见,可以对测试日志进行分析,生成测试包括,故在本发明的一些实施例中,在上述根据所述测试结果及测试过程中的测试信息,生成测试日志之后还可以包括:分析所述测试日志,生成测试报告;以预设发送方式,将所述测试报告自动发送至预设地址。

具体地,可以通过日志分析脚本读取指定路径下的测试日志,对其进行分析,生成测试报告。该测试报告具体可以表现为测试表,该表中可以包括一些预先设定的测试项,例如,脚本执行数量、执行成功数量及失败数量等。

上述预设发送方式可以具体为邮件,也可以为短信等其它形式,在此不作限定。上述预设地址可以具体是指测试人员的邮件地址、手机地址等。

可以看出,通过日志的自动化分析,自动化生成测试报告,可以使得测试结果清晰直观,且使得测试人员及时了解相应的测试情况,同时,也可以提高一定的测试效率。

为合理使用系统资源,且便于后续的系统配置工作的进行,可以在一次测试完成后,释放相应资源,避免资源的长期被占用。故在本发明的一些实施例中,在上述根据所述测试用例信息,在所述虚拟机节点执行所述测试脚本,得出测试结果之后还可以包括:清理所述分布式集群,释放所述虚拟机节点。

可以理解,在一次测试完成后,可以同时进行测试日志的读取、测试报告生成和资源释放。且在测试失败时,也会进行相应的资源释放。

为使本发明实施例的方案更直观,下面将结合图2进行介绍,图2为本发明实施例提供的面向分布式存储集群的自动化测试方法的示意图。

如图2所示,提交测试任务至任务队列后,执行任务队列中的任务,从包括n个任务机的任务机池中选取任务机1、任务机2及任务机3搭建成一个集群,并从yum源中获取rpm包安装在集群节点上,然后任务机1从测试脚本库中获取所需的测试脚本,任务机1执行所获取的测试脚本,测试完成上传测试日志,然后分析测试日志可以生成测试报告,并将该测试报告以邮件方式进行自动发送。

本实施例所提供的面向分布式存储集群的测试方法,通过运行预搭建的自动化控制节点的执行脚本读取任务队列,获取待执行任务信息,上述待执行任务信息为包括任务信息、集群配置信息、测试脚本信息及测试用例信息的信息;从任务机池选取所需的虚拟机节点;根据集群配置信息,基于虚拟机节点,执行搭建分布式集群脚本,搭建分布式集群;根据测试脚本信息,通过虚拟机节点获取脚本库的测试脚本;根据测试用例信息,在虚拟机节点执行测试脚本,得出测试结果。该方法通过分布式集群的自动化搭建,功能测试的自动化,实现了分布式存储集群的自动化测试;且测试执行效率较高,可以覆盖人工测试容易忽略的测试点,测试覆盖度较高,进而使得测试效率和测试质量较高。

下面对本发明实施例提供的一种面向分布式存储集群的测试装置进行介绍,下文描述的一种面向分布式存储集群的测试装置与上文描述的一种面向分布式存储集群的测试方法可相互对应参照。

请参考图3,图3为本发明实施例提供的面向分布式存储集群的测试装置的结构示意图,该装置包括:

待执行任务信息获取模块31,用于运行预搭建的自动化控制节点的执行脚本读取任务队列,获取待执行任务信息,上述待执行任务信息为包括任务信息、集群配置信息、测试脚本信息及测试用例信息的信息;

节点选取模块32,用于从任务机池选取所需的虚拟机节点;

集群搭建模块33,用于根据集群配置信息,基于虚拟机节点,执行搭建分布式集群脚本,搭建分布式集群;

测试脚本获取模块34,用于根据测试脚本信息,通过虚拟机节点获取脚本库的测试脚本;

测试模块35,用于根据测试用例信息,在虚拟机节点执行测试脚本,得出测试结果。

在本发明的一些实施例中,上述装置还可以包括:

日志生成模块,用于根据测试结果及测试过程中的测试信息,生成测试日志。

在本发明的一些实施例中,上述装置还可以包括:

测试报告生成模块,用于分析测试日志,生成测试报告;

自动发送模块,用于以预设发送方式,将测试报告自动发送至预设地址。

在本发明的一些实施例中,上述装置还可以包括:

清理模块,用于清理分布式集群,释放虚拟机节点。

在本发明的一些实施例中,上述装置还可以包括:

创建模块,用于创建ssh-key,并设置ssh免密信息;

配置模块,用于配置脚本库、yum源及任务队列;

写入模块,用于将任务机池的各个虚拟机节点信息写入数据库;

配置文件获取模块,用于获取预编写的自动化测试配置文件。

本实施例所提供的面向分布式存储集群的测试装置,该装置通过分布式集群的自动化搭建,功能测试的自动化,实现了分布式存储集群的自动化测试;且测试执行效率较高,可以覆盖人工测试容易忽略的测试点,测试覆盖度较高,进而使得测试效率和测试质量较高。

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

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

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

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

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