一种分布式存储系统文件锁特性测试方法和装置与流程

文档序号:16516100发布日期:2019-01-05 09:38阅读:240来源:国知局
一种分布式存储系统文件锁特性测试方法和装置与流程

本申请涉及测试领域,特别是涉及一种分布式存储系统文件锁特性测试方法和装置。



背景技术:

在大数据运算时代,海量应用产生的海量数据多为非结构化数据,且数据量的数量级别,在以指数型趋势增长。在数据传输和存储方面传统存储的结构已经不能满足海量数据的存储需求,为此,分布式存储系统应运而生。尤其是分布式网络文件系统(networkfilesystem,简称nfs),不仅完美解决了海量数据存储的问题,还可以减少服务器自身存储空间的使用,使服务器更好的应用于数据处理等应用,解决了服务器应用问题。

然而,分布式存储系统nfs是通过客户端或文件协议的方式对外提供服务,可能存在大量用户同时希望访问nfs服务器以对其中同一文件进行编辑,例如,a用户通过进程对某个文件进行编辑并将编辑后的该文件保存,如果b用户通过进程也对该文件进行编辑并将编辑后的该文件保存,那么,a用户对该文件所做的编辑将丢失。因此,当一个用户在通过进程对某文件进行编辑时,该用户可以利用应用程序编程接口(applicationprogramminginterface,简称api)等方式对该文件加文件锁,使其他用户无法打开该文件或只能以只读的方式打开该文件,避免其他用户也通过进程对该文件进行编辑。所加的文件锁是否正确、文件锁释放后状态是否正确等决定多个用户能否有序对该文件进行编辑,而文件锁特性能够反映所加的文件锁是否正确、文件锁释放后状态是否正确等,因此,分布式存储系统nfs文件锁特性测试是十分必要的。

传统的文件锁测试方法主要是由测试人员进行人工测试。由于分布式存储系统nfs中包括大量集群节点,且每个集群节点所需的操作系统版本可能不同,客户端的兼容测试集合会相对庞大,从而导致人工测试的工作量会非常庞大,进而降低测试效率,甚至遗漏某些集群节点的测试,降低测试质量。



技术实现要素:

为了解决上述技术问题,本申请提供了一种分布式存储系统文件锁特性测试方法和装置,可以自动地进行分布式存储系统文件锁特性测试,从而提高测试效率,避免遗漏某些集群节点的测试,提高测试质量。

本申请实施例公开了如下技术方案:

第一方面,本申请实施例提供了一种分布式存储系统文件锁特性测试方法,预先构建自动化测试框架,所述自动化测试框架包括自动化测试节点和任务机池,所述自动化测试节点上至少设置有任务队列,所述任务机池中包括多台任务机,所述方法包括:

读取任务队列中的目标任务,所述目标任务为分布式存储系统文件锁特性测试任务中任一条未执行的任务,所述特性测试任务包括至少一条任务;

根据所述目标任务对应的自动化测试配置文件,从所述任务池中确定目标任务机,所述目标任务机包括多台任务机;

从所述目标任务机上获取目标测试脚本,并执行所述目标测试脚本,以完成所述分布式存储系统文件锁特性测试任务。

可选的,所述目标任务机用于作为集群节点和客户端。

可选的,所述预先构建自动化测试框架的方法包括:

创建所述任务机池,并为所述任务机池内的所述多个任务机安装对应的操作系统;其中,针对目标任务机,为所述目标任务机安装目标操作系统,所述目标任务机为所述多个任务机中任一台,所述目标操作系统为所述目标任务机对应的操作系统;

创建自动化控制节点。

可选的,所述多个任务机之间配置安全外壳协议公钥,以实现所述多个任务机之间无密码访问;

所述自动化控制节点与所述目标任务机之间配置所述安全外壳协议公钥,以实现所述自动化控制节点与所述目标任务机之间无密码访问。

可选的,在所述读取任务队列中的目标任务之前,所述方法还包括:

为所述多个任务机安装分布式存储系统文件锁特性安装包;

使用标记语言书写所述自动化测试配置文件,所述自动化测试配置文件指明自动化测试所需的任务机数量、目标测试脚本路径;

添加所述分布式存储系统文件锁特性测试任务到所述任务队列中。

可选的,所述目标测试脚本存储在远程测试脚本库中。

可选的,所述从所述目标任务机上获取目标测试脚本,并执行所述目标测试脚本,以完成所述分布式存储系统文件锁特性测试任务,包括:

从所述目标任务机上获取来自所述远程测试脚本库的测试脚本,所述测试脚本包括目标测试脚本和辅助测试脚本;

执行所述目标测试脚本,以完成所述分布式存储系统文件锁特性测试任务。

可选的,所述读取任务队列中的目标任务,包括:

启动所述自动化测试节点的执行脚本;

根据所述执行脚本,读取任务队列中的目标任务。

可选的,在所述从所述目标任务机上获取目标测试脚本,并执行所述目标测试脚本,以完成所述分布式存储系统文件锁特性测试任务之后,所述方法还包括:

将执行所述目标测试脚本生成的日志上传到指定路径下。

第二方面,本申请实施例提供了一种分布式存储系统文件锁特性测试装置,预先构建自动化测试框架,所述自动化测试框架包括自动化测试节点和任务机池,所述自动化测试节点上至少设置有任务队列,所述任务机池中包括多台任务机,所述装置包括读取单元、确定单元和执行单元:

所述读取单元,用于读取任务队列中的目标任务,所述目标任务为分布式存储系统文件锁特性测试任务中任一条未执行的任务,所述特性测试任务包括至少一条任务;

所述确定单元,用于根据所述目标任务对应的自动化测试配置文件,从所述任务池中确定目标任务机,所述目标任务机包括多台任务机;

所述执行单元,用于从所述目标任务机上获取目标测试脚本,并执行所述目标测试脚本,以完成所述分布式存储系统文件锁特性测试任务。

可选的,所述目标任务机用于作为集群节点和客户端。

可选的,所述装置还包括第一创建单元和第二创建单元:

所述第一创建单元,用于创建所述任务机池,并为所述任务机池内的所述多个任务机安装对应的操作系统;其中,针对目标任务机,为所述目标任务机安装目标操作系统,所述目标任务机为所述多个任务机中任一台,所述目标操作系统为所述目标任务机对应的操作系统;

所述第二创建单元,用于创建所述自动化控制节点。

可选的,所述多个任务机之间配置安全外壳协议公钥,以实现所述多个任务机之间无密码访问;

所述自动化控制节点与所述目标任务机之间配置所述安全外壳协议公钥,以实现所述自动化控制节点与所述目标任务机之间无密码访问。

可选的,所述装置还包括安装单元、书写单元和添加单元:

所述安装单元,用于为所述多个任务机安装分布式存储系统文件锁特性安装包;

所述书写单元,用于使用标记语言书写所述自动化测试配置文件,所述自动化测试配置文件指明自动化测试所需的任务机数量、目标测试脚本路径;

所述添加单元,用于添加所述分布式存储系统文件锁特性测试任务到所述任务队列中。

可选的,所述目标测试脚本存储在远程测试脚本库中。

可选的,所述执行单元用于从所述目标任务机上获取来自所述远程测试脚本库的测试脚本,所述测试脚本包括目标测试脚本和辅助测试脚本;执行所述目标测试脚本,以完成所述分布式存储系统文件锁特性测试任务。

可选的,所述读取单元用于启动所述自动化测试节点的执行脚本;根据所述执行脚本,读取任务队列中的目标任务。

可选的,所述装置还包括上传单元:

所述上传单元,用于将执行所述目标测试脚本生成的日志上传到指定路径下。

由上述技术方案可以看出,本申请实施例具有以下优点:

在进行分布式存储系统文件锁特性测试时,可以预先构建自动化测试框架,所述自动化测试框架包括自动化测试节点和任务机池,所述自动化测试节点上至少设置有任务队列,所述任务机池中包括多台任务机,在测试过程中仅进行构建一次自动化测试框架,通过自动化测试节点可以自动地读取任务队列中的目标任务,所述目标任务为分布式存储系统文件锁特性测试任务中任一条未执行的任务,所述特性测试任务包括至少一条任务;根据所述目标任务对应的自动化测试配置文件,从所述任务池中确定目标任务机,所述目标任务机包括多台任务机;从所述目标任务机上获取目标测试脚本,并执行所述目标测试脚本,以完成所述分布式存储系统文件锁特性测试任务。可见,通过自动构建自动化测试框架,进而自动化测试节点自动地进行分布式存储系统文件锁特性测试,可以提高测试效率,避免遗漏某些集群节点的测试,提高测试质量。

附图说明

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

图1为本申请实施例提供的一种分布式存储系统文件锁特性测试方法的流程图;

图2为本申请实施例提供的一种分布式存储系统文件锁特性自动化测试的系统架构图;

图3为本申请实施例提供的一种分布式存储系统文件锁特性测试装置的结构框图。

具体实施方式

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

传统的采用人工测试方法进行分布式存储系统文件锁特性测试时,由于测试工作量会非常庞大,导致人工测试的工作量会非常庞大,进而降低测试效率,甚至可能会遗漏某些集群节点的测试,降低测试质量。

为此,本申请实施例提供一种分布式存储系统文件锁特性测试方法,该方法可以自动地构建自动化测试框架,进而利用自动化测试框架中的自动化测试节点和任务机池,自动地进行分布式存储系统文件锁特性测试,从而提高测试效率,避免遗漏某些集群节点的测试,提高测试质量。

下面结合附图,详细说明本申请实施例提供的分布式存储系统文件锁特性测试方法。

在本实施例中,将以分布式存储系统nfs为例进行介绍。参见图1,图1为本申请实施例提供的一种分布式存储系统文件锁特性测试方法的流程图,在该方法中,预先构建自动化测试框架,所述自动化测试框架包括自动化测试节点和任务机池,所述自动化测试节点上至少设置有任务队列,所述任务机池中包括多台任务机,参见图2,图2示出了基于自动化测试框架进行分布式存储系统文件锁特性自动化测试的系统架构图。该系统架构图中包括自动化控制节点201和任务机池202。

所述方法包括:

s101、读取任务队列中的目标任务。

其中,所述目标任务为分布式存储系统文件锁特性测试任务中任一条未执行的任务,所述特性测试任务包括至少一条任务。

需要说明的是,如图2所示,测试人员可以在自动化控制节点上提交分布式存储系统nfs的文件锁特性测试任务,自动化控制节点在识别到任务提交命令后,可以将分布式存储系统nfs的文件锁特性测试任务添加到任务队列中,以待执行。

需要说明的是,自动化控制节点上除了设置有任务队列,还可以包括脚本库和yum(全称为yellowdogupdater,modified)源,yum源可以表示一个软件集合地。

需要说明的是,在一种实现方式中,预先构建自动化测试框架的方法包括:创建所述任务机池,并为所述任务机池内的所述多个任务机安装对应的操作系统;其中,针对目标任务机,为所述目标任务机安装目标操作系统,所述目标任务机为所述多个任务机中任一台,所述目标操作系统为所述目标任务机对应的操作系统;创建所述自动化控制节点。

在一种情况下,为了避免在自动化测试文件锁特性的过程中,多个任务机之间以及自动化控制节点与目标任务机之间需要输入密码才可以进行访问,保证自动化测试文件锁特性的流畅进行,在一种实现方式中,所述多个任务机之间配置安全外壳协议(secureshell,简称ssh)公钥,以实现所述多个任务机之间无密码访问;所述自动化控制节点与所述目标任务机之间配置所述安全外壳协议公钥,以实现所述自动化控制节点与所述目标任务机之间无密码访问。其中,所述安全外壳协议公钥可以用ssh-key表示,在创建ssh-key的同时可以设置免密信息,以便实现无密码访问。

在完成自动化测试框架的构建后,可以启动分布式存储系统nfs的文件锁特性编译构建任务,自动化任务会完成任务机针对分布式存储系统nfs的文件锁特性的更新安装。具体的,在所述读取任务队列中的目标任务之前,所述方法还包括:为所述多个任务机安装分布式存储系统文件锁特性安装包;使用标记语言书写所述自动化测试配置文件,所述自动化测试配置文件指明自动化测试所需的任务机数量、目标测试脚本路径;添加所述分布式存储系统文件锁特性测试任务到所述任务队列中,以便可以从任务队列中读取目标任务。

需要说明的是,在本实施例中,读取任务队列中的目标任务的一种实现方式可以是:启动所述自动化测试节点的执行脚本;根据所述执行脚本,读取任务队列中的目标任务。

s102、根据所述目标任务对应的自动化测试配置文件,从所述任务池中确定目标任务机。

其中,所述目标任务机包括多台任务机,图2以n台任务机为例。在从任务池中确定目标任务机时,具体可以首先从任务池中确定空闲任务机,然后,根据目标任务对应的自动化测试配置文件,从空闲任务机中确定目标任务机。

例如,任务池中包括10台任务机,自动化测试配置文件指明自动化测试所需的任务机数量为4台,其中,任务池中有5台任务机正在执行自动化测试任务,已经被占用,那么,可以根据自动化测试配置文件从其余5台任务机中选择4台,并锁定该4台任务机,将该4台任务机作为目标任务机。

根据分布式存储系统nfs的特征,分布式存储系统nfs一般包括节点集群和nfs客户端,因此,在本实施例中,所述目标任务机用于作为集群节点和客户端,在分布式存储系统nfs中,该客户端为nfs客户端,面向用户,以对外提供服务,目标任务机中哪台任务机作为集群节点,哪台任务机作为nfs客户端可以根据节点配置文件确定,节点配置文件是在提交分布式存储系统nfs的文件锁特性测试任务后生成的。

例如,参见图2,若从n台任务机中确定出4台任务机作为目标任务机,那么,在4台任务机中,根据节点配置文件可以确定前3台任务机可以作为集群节点,1台任务机可以作为nfs客户端。

可以理解的是,在确定出作为集群节点的任务机后,可以执行搭建分布式集群脚本,通过分布式集群脚本可以知晓集群节点的状态,如何搭建分布式集群等。

在确定出nfs客户端后,可以在nfs客户端上挂载分布式存储系统nfs的文件锁特性,并检测是否挂载成功,状态是否正常,以便在分布式存储系统nfs的文件锁特性挂载成功且状态正常后,执行s103。

s103、从所述目标任务机上获取目标测试脚本,并执行所述目标测试脚本,以完成所述分布式存储系统文件锁特性测试任务。

目标测试脚本可以位于测试脚本库中,测试脚本库可以位于每台任务机上,当然,为了避免对每台任务机上的测试脚本库进行维护和管理,方便对测试脚本库进行统一维护和管理,在一种实现方式中,测试脚本库可以位于远程测试脚本库中,即目标测试脚本位于远程测试脚本库中。

在这种情况下,所述从所述目标任务机上获取目标测试脚本,并执行所述目标测试脚本,以完成所述分布式存储系统文件锁特性测试任务的具体实现方式可以是:从所述目标任务机上获取来自所述远程测试脚本库的测试脚本,所述测试脚本包括目标测试脚本和辅助测试脚本,其中辅助测试脚本并非需要执行的测试脚本,可以是用于描述集群节点状态等特性的测试脚本,用于辅助执行目标测试脚本;执行所述目标测试脚本,从而完成目标任务的执行,进而完成所述分布式存储系统文件锁特性测试任务。

需要说明的是,为了便于后续分析和查看分布式存储系统nfs的文件锁特性测试的测试脚本执行结果等信息,在一种实现方式中,在s103之后,可以将执行所述目标测试脚本生成的日志上传到指定路径下。其中,该日志中可以体现所有测试脚本的执行结果,测试脚本数量,执行时间等信息。

在获得日志后,可以自动对日志进行分析,并生成测试报告,通过邮件自动发送该测试报告,以便测试人员可以了解分布式存储系统nfs的文件锁特性测试的测试结果。

需要说明的是,若以上步骤执行失败,均会进入失败流程,清理集群节点,上传日志,释放目标任务机。

在进行分布式存储系统文件锁特性测试时,可以预先构建自动化测试框架,所述自动化测试框架包括自动化测试节点和任务机池,所述自动化测试节点上至少设置有任务队列,所述任务机池中包括多台任务机,在测试过程中仅进行构建一次自动化测试框架,通过自动化测试节点可以自动地读取任务队列中的目标任务,所述目标任务为分布式存储系统文件锁特性测试任务中任一条未执行的任务,所述特性测试任务包括至少一条任务;根据所述目标任务对应的自动化测试配置文件,从所述任务池中确定目标任务机,所述目标任务机包括多台任务机;从所述目标任务机上获取目标测试脚本,并执行所述目标测试脚本,以完成所述分布式存储系统文件锁特性测试任务。可见,通过自动构建自动化测试框架,进而自动化测试节点自动地进行分布式存储系统文件锁特性测试,可以提高测试效率,避免遗漏某些集群节点的测试,提高测试质量。

基于前述实施例提供的分布式存储系统文件锁特性测试方法,本申请实施例提供了一种分布式存储系统文件锁特性测试装置,预先构建自动化测试框架,所述自动化测试框架包括自动化测试节点和任务机池,所述自动化测试节点上至少设置有任务队列,所述任务机池中包括多台任务机,所述装置包括读取单元301、确定单元302和执行单元303:

所述读取单元301,用于读取任务队列中的目标任务,所述目标任务为分布式存储系统文件锁特性测试任务中任一条未执行的任务,所述特性测试任务包括至少一条任务;

所述确定单元302,用于根据所述目标任务对应的自动化测试配置文件,从所述任务池中确定目标任务机,所述目标任务机包括多台任务机;

所述执行单元303,用于从所述目标任务机上获取目标测试脚本,并执行所述目标测试脚本,以完成所述分布式存储系统文件锁特性测试任务。

可选的,所述目标任务机用于作为集群节点和客户端。

可选的,所述装置还包括第一创建单元和第二创建单元:

所述第一创建单元,用于创建所述任务机池,并为所述任务机池内的所述多个任务机安装对应的操作系统;其中,针对目标任务机,为所述目标任务机安装目标操作系统,所述目标任务机为所述多个任务机中任一台,所述目标操作系统为所述目标任务机对应的操作系统;

所述第二创建单元,用于创建所述自动化控制节点。

可选的,所述多个任务机之间配置安全外壳协议公钥,以实现所述多个任务机之间无密码访问;

所述自动化控制节点与所述目标任务机之间配置所述安全外壳协议公钥,以实现所述自动化控制节点与所述目标任务机之间无密码访问。

可选的,所述装置还包括安装单元、书写单元和添加单元:

所述安装单元,用于为所述多个任务机安装分布式存储系统文件锁特性安装包;

所述书写单元,用于使用标记语言书写所述自动化测试配置文件,所述自动化测试配置文件指明自动化测试所需的任务机数量、目标测试脚本路径;

所述添加单元,用于添加所述分布式存储系统文件锁特性测试任务到所述任务队列中。

可选的,所述目标测试脚本存储在远程测试脚本库中。

可选的,所述执行单元用于从所述目标任务机上获取来自所述远程测试脚本库的测试脚本,所述测试脚本包括目标测试脚本和辅助测试脚本;执行所述目标测试脚本,以完成所述分布式存储系统文件锁特性测试任务。

可选的,所述读取单元用于启动所述自动化测试节点的执行脚本;根据所述执行脚本,读取任务队列中的目标任务。

可选的,所述装置还包括上传单元:

所述上传单元,用于将执行所述目标测试脚本生成的日志上传到指定路径下。

在进行分布式存储系统文件锁特性测试时,可以预先构建自动化测试框架,所述自动化测试框架包括自动化测试节点和任务机池,所述自动化测试节点上至少设置有任务队列,所述任务机池中包括多台任务机,在测试过程中仅进行构建一次自动化测试框架,通过自动化测试节点可以自动地读取任务队列中的目标任务,所述目标任务为分布式存储系统文件锁特性测试任务中任一条未执行的任务,所述特性测试任务包括至少一条任务;根据所述目标任务对应的自动化测试配置文件,从所述任务池中确定目标任务机,所述目标任务机包括多台任务机;从所述目标任务机上获取目标测试脚本,并执行所述目标测试脚本,以完成所述分布式存储系统文件锁特性测试任务。可见,通过自动构建自动化测试框架,进而自动化测试节点自动地进行分布式存储系统文件锁特性测试,可以提高测试效率,避免遗漏某些集群节点的测试,提高测试质量。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-onlymemory,缩写:rom)、ram、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

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