一种集群式自动化测试方法与流程

文档序号:12719282阅读:270来源:国知局
一种集群式自动化测试方法与流程

本发明涉及一种集群式自动化测试方法,适用于任何业务的存储设备,属于计算机存储技术领域。



背景技术:

大数据时代的来临,存储设备的应用越来越广泛,对存储设备的稳定性、可靠性的要求越来越严苛,亟需一种验证存储设备稳定性、可靠性的通用型框架。

多节点测试一直是验证存储设备稳定性、可靠性的一个重要方法。当节点达到成百上千台规模时,手动配置已然成为测试的瓶颈,既耗费大量时间及人力成本,且配置过程极易出错。很多时候需要多节点协同操作,而人工操作难以把握正确的时间点。因为节点数量众多,所以仅靠人工监控系统的工作负载、资源使用情况,几乎是不可能完成的工作。最后测试结果也极难收集,在测试过程中如果出现异常情况,也无法进行追踪分析。这必然导致存储设备在稳定性、可靠性方面的测试不够充分,不能及时发现可能导致系统故障的因素。

综上所述,手动配置多节点测试既费时又费力,效率低下,难以进行多节点协同操作,无法有效监控工作负载、资源使用,极难收集测试结果,无法在测试过程中追踪异常日志,给存储设备留下隐患。



技术实现要素:

本发明的目的是提出一种集配置、控制、检测、测试执行、监控、日志数据的收集整理等功能于一体的集群式自动化测试方法,应用于存储设备测试。

本发明的思路是(1)通过一台控制台设备的分发脚本自动分发测试配置文件、参数文件到多台测试客户端及存储设备,自动完成存储设备、节点的配置工作;(2)自动配置时间同步;(3)在测试前进行测试环境检查,当环境不满足测试条件时,会将错误提示反馈到控制台设备,提醒测试人员正确的处理方法;(4)当满足测试条件时,控制台设备会自动根据配置文件远程启动客户端的测试脚本对存储设备测试,实时监控系统负载、服务和进程,并将测试中日志全部记录在指定的位置;(5)测试结束后,自动收集测试数据,并进一步分析测试数据,将测试的实际结果与期望结果进行对比,把与期望结果不符的测试结果放在显著的位置,以便分析故障原因。

本发明的目的是通过以下技术方案实现的:

一种集群式自动化测试方法,包括以下步骤:

步骤一、通过脚本配置控制台、客户端、存储设备间免密码访问;

作为优选,在控制台生成SSH秘钥对,将公共秘钥通过SCP命令传到所有节点及存储设备,再将公共秘钥追加到授权的key里面,修改授权key的权限。

步骤二、控制台自动分发测试配置文件、参数文件、初始化脚本到客户端及存储设备并配置测试环境;

作为优选,控制台通过基于expect工具的自动化脚本,配置当前测试环境,包括使用分发脚本自动通过管理网络scp测试配置文件、参数文件到客户端及存储设备;并根据分发到客户端的测试配置文件、参数文件启动客户端的初始化脚本配置测试环境。

步骤三、控制台自动配置并启动时间同步服务;

作为优选,控制台通过单独使用NTP服务器或者集群内部署时间同步服务实现。

作为优选,控制台通过同时使用NTP服务器或者集群内部署时间同步服务实现,当NTP服务正常时使用NTP进行时间同步,当其异常时使用后者进行时间同步。

作为优选,所述集群内部署时间同步服务为控制台启动包括Master和Agent的时间服务程序,Agent位于客户端,负责定期检测、记忆本节点和本节点相关存储设备的时间,并向Master汇报,在接到Master通知后修正本节点及存储设备的时间;Master位于控制台,负责接收节点和存储设备上的时间信息并与本地时间比较,若节点、存储设备的时间异常,则通知节点、存储设备与Master时间同步。

步骤四、控制台自动检查当前测试环境,并在测试环境不满足测试条件情况下告知测试人员进行修正,并在测试人员修正后重复本步骤,直到测试环境满足测试条件;;

作为优选,所述检查当前测试环境,检查内容包括但不局限于以下内容:

(1)挂载设备是否异常;

(2)账户权限是否异常;

(3)相关依赖软件是否未安装;

步骤五、控制台根据测试文件的测试内容生成测试预期结果、自动分发并启动客户端的测试文件;

作为优选,所述自动分发并启动客户端的测试文件为控制台通过收发命令脚本实现,使用收发命令脚本可以对客户端、存储设备进行不限于如下的更好的控制:(1)实现在任意一个节点部署测试脚本,所有的节点可进行协同测试;(2)实现在不同的节点进行不同的测试;(3)实现对节点实施更准确的监控和日志记录。

作为优选,所述启动客户端的测试文件通过以下过程完成:启动客户端的相关的服务进程;若所有客户端服务均正常,控制台启动客户端的测试脚本,开始测试,并保存测试结果数据。

步骤六、监控测试过程,判断测试是否正常;在异常情况下通知测试人员进行修正,并在测试人员修正后返回步骤五,在正常情况下完成以下工作:

实时监控并记录监控信息;

测试结束后收集各客户端的实际测试结果,并将实测结果与预期结果进行对比,把与预期结果相符的测试结果和不符的测试结果分别存储,以便测试人员关注与预期结果不符的测试结果;

测试结束后收集各客户端的测试过程日志并存储。

作为优选,所述判断测试是否正常的标准包括但不限于如下:

(1)所有客户端无异常中断,运行正常;

(2)存储设备运行正常

通过上述过程,测试工作人员即可在控制台集中控制完成集群的测试,并得到测试所关注的监控信息、与测试预期结果不符的数据及过程日志,以便相关技术人员根据这些结果查找问题以及问题原因。

有益效果

对比现有技术,本发明具有以下特点:

1.大量节约人力成本,缩短配置测试环境时间,从而大幅提高测试效率;

2.将重复性的配置工作自动化及测试过程自动化,无需人工干预,提高配置及测试结果的准确性;

3.自动收集测试结果及异常系统日志信息,便于研发人员后续进行结果分析及异常解析;

4.有效保证存储设备的稳定性、可靠性和健壮性。

附图说明

图1为本发明的一种集群式的自动化测试方法处理流程图;

图2为本发明的一种集群式的自动化测试方法拓扑结构图。

具体实施方式

本发明提出一种集群式的自动化测试方法,应用于存储设备测试,图2为集群式的自动化测试方法拓扑结构图,控制台、NTP服务器、客户端、存储设备连接至管理交换设备组成管理网络,客户端和存储设备连接至业务交换设备组成业务网络,该拓扑结构中使用的设备配置信息如下表所示:

表1:设备配置信息:

下面以图2所示测试环境为例,来详细说明本发明的具体测试方法,如图1所示,步骤如下:

步骤一,通过脚本配置控制台、客户端、存储设备间免密码访问;

基于本实施例所述环境,使用SSH免密码访问设置。如图2所示,控制台通过通用以太网管理交换机,即图中的管理交换设备,与所有客户端及存储设备连接组成管理网络。在控制台使用ssh-keygen命令生成秘钥对,通过SCP命令将公共秘钥id_rsa.pub拷贝到客户端及存储设备的/root目录下,在客户端及存储设备将公共秘钥追加到授权的key里面,即author ized_keys文件中,修改该文件的使用权限为600。在控制台进行SSH免密连接测试:ssh“客户端或存储设备ip”,即可免密码登陆到客户端或存储设备。

对于不同的系统环境,同理可使用其它的协议或者修改某些文件配置控制台与客户端、存储设备之间的免密访问,只要能够使控制台拥有对客户端的远程文件拷贝及执行文件权限即可。

步骤二,控制台自动分发测试配置文件、参数文件、初始化脚本到客户端及存储设备并配置测试环境;

本实施例中,如图2所示,控制台首先通过基于expect工具的分发脚本自动将客户端和存储设备各自的配置文件、参数文件、初始化脚本scp(全名为secure copy,译为安全拷贝,是Linux系统常用的远程文件拷贝程序,本实施环境下使用scp命令)到客户端和存储设备的对应目录/test/conf/、/test/parameter/、/test/initialization/。本实施例中设置的客户端数目N为100。

然后,控制台根据前面步骤配发的存储设备上的配置文件、参数文件和初始化脚本stor_init.sh配置存储资源(RAID/池/卷等)和应用(NAS/IP-SAN/FC-SAN等);本实施例中,配置了2个池、100个卷和100个NAS;

接下来,控制台根据前面步骤配发的100个客户端上的配置文件、参数文件和初始化脚本clientN_init.sh自动将100个NAS挂载到100台客户端;

上述初始化脚本stor_init.sh和clientN_init.sh均为基于expect工具编写的脚本。

步骤三,控制台自动配置并启动时间同步服务

如图2所示,首先,控制台通过一个自己开发的自动化脚本sync.sh,配置100个客户端、存储设备的时间与NTP服务器的时间每五分钟同步一次,以保证测试期间客户端、存储设备的时间的同步。

此外,为了能够对时间点要求精确的节点协同测试,以及在NTP服务器失效情况下依然不影响集群的协同测试,本实施例还配有一个备选的时间服务程序:自己开发的时间服务程序,当然也可直接选用现存的任何时间同步工具,只要其能够在主时间同步工具(NTP服务器)有效情况下休眠,在其失效情况下接管时间同步工作即可。本实施例使用的时间服务程序分为Master和Agent两部分。Agent位于客户端,负责定期检测、记忆并向Master上报本节点或存储设备的时间,在接到Master通知后修正本节点及存储设备的时间;Master位于控制台,负责接收节点和存储设备上的时间信息并与本地时间比较,若节点、存储设备的时间异常,则通知节点、存储设备与Master同步时间。

然后,控制台启动Master组件sync-master,接着通过ssh远程启动所有客户端以及存储设备的Agent组件sync-agent。

步骤四,控制台自动检查当前测试环境,并在测试环境不满足测试条件情况下告知测试人员进行修正,并在测试人员修正后重复本步骤,直到测试环境满足测试条件;

如图2所示,控制台通过管理交换网络启动位于自身的环境检测脚本,远程检查客户端、存储设备、NTP服务器的测试环境。若不满足测试条件,控制台显示未满足条件的具体设备和未满足的具体条件,并根据未满足条件告知测试人员正确的处理方法,当测试人员进行处理后重复本步骤继续监测当前环境;若满足测试条件,则进入步骤五。

本例中满足测试的条件为:

所有的NAS目录正确挂载;

登录账户为管理员账户且对测试脚本有执行权限。

根据不同的测试环境以及测试要求,本领域技术人员可根据实际情况增减上述测试条件。

步骤五,控制台根据测试文件的测试内容生成测试预期结果、自动分发并启动客户端的测试文件;

控制台自动分发并启动客户端的测试文件;该文件为控制台通过收发命令脚本实现,使用收发命令脚本可以对客户端、存储设备进行不限于如下的更好的控制:(1)实现在任意一个节点部署测试脚本,所有的节点可进行协同测试;(2)实现在不同的节点进行不同的测试;(3)实现对节点实施更准确的监控和日志记录。

本实施例中,如图2所示,在IP地址为192.168.0.25的客户端部署测试脚本;控制台通过管理交换设备使用ssh远程启动100个客户端的rpc(全名为Remote Procedure Call Protocol,译为远程过程调用,一种通用的网络协议)服务,待确认服务正常后在控制台/test/expect目录下生成测试的预期结果。启动前面步骤配发到192.168.0.25客户端的测试文件开始协同测试,保存测试数据至客户端的/test/data目录。

本例中的测试内容为100个客户端通过业务交换设备对存储设备上100个NAS协同进行IO读写测试。

步骤六,监控测试过程,判断测试是否正常,在异常情况下通知测试人员进行修正,并在测试人员修正后返回步骤五,在正常情况下完成以下工作:

实时监控并记录监控信息;

测试结束后收集各客户端的实际测试结果,并将实测结果与预期结果进行对比,把与预期结果相符的测试结果和不符的测试结果分别存储,以便测试人员关注与预期结果不符的测试结果;

测试结束后收集各客户端的测试过程日志并存储。

本实施例中判断测试是否正常的判断标准如下:

(1)所有客户端无异常中断,运行正常;

(2)存储设备运行正常。

当然,根据实际测试环境,本领域技术人员可以对上述条件进行增减,以满足实际测试要求。

如图2所示,控制台通过管理交换设备实时地监控收集100个客户端、存储设备的负载信息,如CPU使用率、可用内存大小、磁盘IO,并将监控信息保存至自身的/test/monitor/目录。如步骤五所述,测试前,控制台的/test/expect目录保存有预期测试结果。测试结束后,控制台收集客户端/test/data目录中的测试数据,保存至控制台的的/test/fact测试结果目录。控制台将得到的测试结果与预期结果进行对比,将测试结果与预期一致的结果保存至控制台的/test/summary目录,将测试结果与预期结果不同的测试详细信息保存至控制台的/test/error目录,收集测试过程中生成的日志log至控制台的/test/log目录,以便分析故障原因。

上述实施例以一定环境为例示例了本发明方法的实施过程,本领域技术人员不难同理推出在不同环境下如何实施本发明,以及所述存储目录亦可根据实际情况变化。

以上对本发明实施例所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明实施例的原理以及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本发明实施例的原理;同时,对于本领域的一般技术人员,依据本发明实施例,在具体实施方式、时间同步程序、有关脚本、有关服务进程以及应用范围可能会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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