本申请涉及存储系统技术领域,特别涉及一种存储系统的功能测试方法,还涉及一种存储系统的功能测试装置、功能测试系统以及计算机可读存储介质。
背景技术:
在大数据时代,海量应用产生的海量数据多为非结构化数据,且数据量的数量级别在以指数型趋势增长,在数据传输和存储方面,传统存储的结构已经不能满足海量数据的存储需求。因此,统一存储服务器产品应运而生,其功能完美解决了海量数据的存储问题。
统一存储服务系统是一个能在单一设备上运行和管理文件和应用程序的存储系统,通过存储服务器加后端盘阵的方式组成统一产品形态,统一存储服务器在担任计算角色的同时,也担任了数据存储机头角色。因此,为保证统一存储服务系统的正常运行,其用户管理等相关功能特性的测试也成为重中之重。
在已有技术中,统一存储系统的功能测试都是基于人工测试实现的,即人工手动对系统中的各个功能模块进行性能测试。然而,统一存储产品是纵向扩展的,其功能模块繁多,且随着应用数据量的急速增长,其存储数据量极大,因此,基于人工实现系统的功能测试,效率极低,并且很容易出现测试点被忽略、被遗漏的情况,难以达到全面测试,为系统的正常运行带来了安全隐患,因此,现有的人工测试方法已无法满足统一存储系统的测试需求。
因此,如何在有效提高功能测试效率的同时,达到对存储系统的全面测试,从而保证系统的正常运行是本领域技术人员亟待解决的问题。
技术实现要素:
本申请的目的是提供一种存储系统的功能测试方法,该功能测试方法在有效提高功能测试效率的同时,达到了对存储系统的全面测试,进一步保证了系统的正常运行;本申请的另一目的是提供一种存储系统的功能测试装置、功能测试系统以及计算机可读存储介质,也具有上述有益效果。
为解决上述技术问题,本申请提供了一种存储系统的功能测试方法,所述存储系统的功能测试方法包括:
主控制任务机根据接收到的测试指令对任务队列进行读取,获得待执行任务信息;
根据所述待执行任务信息在任务机池中锁定对应的执行任务机;
将所述待执行任务信息发送至所述执行任务机,以使所述执行任务机根据所述待执行任务信息在测试脚本库中调取对应的测试脚本,并执行所述测试脚本。
优选的,所述将所述待执行任务信息发送至所述执行任务机包括:
通过ssh远程访问协议将所述待执行任务信息发送至所述执行任务机。
优选的,所述功能测试方法还包括:
所述执行任务机获取测试结果,并将所述测试结果返回至所述主控制任务机;
所述主控制任务机将所述测试结果发送至显示终端。
优选的,所述功能测试方法还包括:
所述执行任务机基于日志自动化分析生成日志测试报告,并将所述日志测试报告返回至所述主控制任务机;
所述主控制任务机将所述日志测试报告发送至显示终端。
优选的,所述功能测试方法还包括:
所述主控制任务机将所述日志测试报告发送至存储器进行保存。
优选的,所述执行所述测试脚本之后,还包括:
自动清除所述测试脚本。
为解决上述技术问题,本申请提供了一种存储系统的功能测试装置,所述存储系统的功能测试装置包括:
任务信息确定模块,用于根据接收到的测试指令对任务队列进行读取,获得待执行任务信息;
任务机锁定模块,用于根据所述待执行任务信息在任务机池中锁定对应的执行任务机;
任务信息下发模块,用于将所述待执行任务信息发送至所述执行任务机,以使所述执行任务机根据所述待执行任务信息在测试脚本库中调取对应的测试脚本,并执行所述测试脚本。
优选的,所述任务信息下发模块具体用于通过ssh远程访问协议将所述待执行任务信息发送至所述执行任务机。
为解决上述技术问题,本申请提供了一种功能测试设备,所述功能测试设备包括:
主控制任务机,用于根据接收到的测试指令对任务队列进行读取,获得待执行任务信息;根据所述待执行任务信息在任务机池中锁定对应的执行任务机;将所述待执行任务信息发送至所述执行任务机;
执行任务机,用于根据所述待执行任务信息在测试脚本库中调取对应的测试脚本,并执行所述测试脚本。
为解决上述技术问题,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种存储系统的功能测试方法的步骤。
本申请所提供的一种存储系统的功能测试方法,包括主控制任务机根据接收到的测试指令对任务队列进行读取,获得待执行任务信息;根据所述待执行任务信息在任务机池中锁定对应的执行任务机;将所述待执行任务信息发送至所述执行任务机,以使所述执行任务机根据所述待执行任务信息在测试脚本库中调取对应的测试脚本,并执行所述测试脚本。
可见,本申请所提供的存储系统的功能测试方法,预先将待执行任务信息上传于任务队列,将待执行任务对应的测试脚本设置于脚本库,通过任务机根据待执行任务信息实现对相应测试脚本的调用,由此,即可通过整个平台的运行,以任务机为控制节点完成对统一存储系统相关功能特性的自动化测试。通过该种功能测试方法,无需人工手动进行,节省了测试人员和开发人员的时间,极大地提高了测试执行效率;同时,由于是通过测试脚本进行覆盖测试,因此,还可以覆盖一些人工测试过程中的易遗漏点和易忽略点,从而有效提高测试质量,达到存储系统的全面测试。此外,基于该自动化测试方法,还可以帮助开发人员提高代码提交频度和产品发版频度,有效地缩短了反馈时间。
本申请所提供的一种存储系统的功能测试装置、功能测试系统以及计算机可读存储介质,也具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请所提供的一种存储系统的功能测试方法的流程示意图;
图2为本申请所提供的一种存储系统的功能测试结构框架图;
图3为本申请所提供的一种存储系统的功能测试装置的结构示意图;
图4为本申请所提供的一种功能测试系统的结构示意图。
具体实施方式
本申请的核心是提供一种存储系统的功能测试方法,该功能测试方法在有效提高功能测试效率的同时,达到了对存储系统的全面测试,进一步保证了系统的正常运行;本申请的另一核心是提供一种存储系统的功能测试装置、功能测试系统以及计算机可读存储介质,也具有上述有益效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在已有技术中,统一存储系统的功能测试都是基于人工测试实现的,然而,由于统一存储产品是纵向扩展的,其功能模块繁多,且随着应用数据量的急速增长,其存储数据量极大,因此,基于人工实现系统的功能测试,效率极低,并且很容易出现测试点被忽略、被遗漏的情况,难以达到全面测试,为系统的正常运行带来了安全隐患。因此,为解决上述问题,本申请提供了一种存储系统的功能测试方法,该功能测试方法无需人工手动进行,节省了测试人员和开发人员的时间,极大地提高了测试执行效率;同时,由于是通过测试脚本进行覆盖测试,因此,还可以覆盖一些人工测试过程中的易遗漏点和易忽略点,从而有效提高测试质量,达到存储系统的全面测试。此外,基于该自动化测试方法,还可以帮助开发人员提高代码提交频度和产品发版频度,有效地缩短了反馈时间。
请参考图1,图1为本申请所提供的一种存储系统的功能测试方法的流程示意图,该功能测试方法可以包括:
s101:主控制任务机根据接收到的测试指令对任务队列进行读取,获得待执行任务信息;
具体的,本申请所提供的功能测试方法可基于任务机实现,首先,可创建任务机池,从中选取一个任务机作为自动化控制节点,即上述主控制任务机;进一步,测试人员可通过该主控制任务机提交待测试任务信息至任务队列进行存储,以便于后续功能测试的实现。
当对存储系统进行功能测试时,可由测试人员基于操作终端发送相应的测试指令至上述主控制任务机,由该主控制任务机根据该测试指令对存储系统进行功能测试。具体而言,主控制任务机在接收到测试指令后,即可对上述任务队列进行读取,从而获得对应的待执行任务信息。其中,由于该待执行任务都是基于任务机池中的各个任务机实现的,因此,上述待执行任务信息的具体内容可包括对应待执行任务的类型信息以及对应任务机的相关配置信息等,当然,待执行任务信息的具体内容并不唯一,本申请对此不做限定。
s102:根据待执行任务信息在任务机池中锁定对应的执行任务机;
如上所述,各个待执行任务均是基于任务机池中对应的任务机执行的,因此,当主控制任务机获得待执行任务信息后,即可根据该待执行任务信息在任务机池中锁定用于执行该待执行任务的任务机,即上述执行任务机。
需要说明的是,上述主控制任务机与上述执行任务机在本质上没有任何区别,同处于上述任务机池,且均可用于实现待执行任务的执行。其中,主控制任务机是从任务机池中任意选取的,也就是说,主控制任务机是从众多执行任务机中随机选取的。此外,各个任务机之间也可实现互相访问以及相关信息的互相传输,如后续功能测试过程中主控制任务机与执行任务机之间待执行任务信息的传输等。
s103:将待执行任务信息发送至执行任务机,以使执行任务机根据待执行任务信息在测试脚本库中调取对应的测试脚本,并执行测试脚本。
具体的,主控制任务机在锁定待执行任务信息对应的执行任务机后,即可将该待执行任务信息发送至该执行任务机,并由该执行任务机执行该待执行任务。具体而言,执行任务机在获得上述待执行信息后,即可根据该待执行任务信息在测试脚本库中调取对应的测试脚本并执行,从而完成存储系统的功能测试。
其中,上述测试脚本库主要用于存储各个待测试任务对应的测试脚本,可由测试人员预先设置并上传至测试脚本库,由其对应的执行任务机调用并执行。
当然,上述各个测试脚本在对应执行任务机中的执行过程是相互独立、互不干扰的,因此,多个待执行任务可同时执行,也即多个执行任务机可同时运行,如存储系统中的各个功能模块可进行并行测试等,由此,即有效保证存储系统的功能测试效率。
优选的,上述将待执行任务信息发送至执行任务机可以包括通过ssh(secureshell)远程访问协议将待执行任务信息发送至执行任务机。
如上所述,各个任务机之间可进行相关信息的互相传输,而对于上述待执行信息由主控制任务机到执行任务机的具体传输过程,本申请提供了一种较为具体的实现方式,即通过上述ssh远程协议实现。ssh远程协议是专为远程登录会话和其他网络服务提供安全性的协议,在数据传输的过程中,可对其传输的数据进行加密,从而有效防止远程管理过程中的信息泄露问题。此外,基于ssh远程协议所传输的数据是经过压缩的,因此,其数据传输速度较快,效率较高。
作为一种优选实施例,上述执行测试脚本之后,还可以包括自动清除测试脚本。
具体的,当各个执行任务机完成测试脚本的运行后,可自动将其当前运行的测试脚本进行清除,以便于接收下一待测试任务,并执行其对应的测试脚本,进一步提高了存储系统的功能测试效率。此外,如若上述当前测试脚本在执行过程中出现错误,同样也可以对处理环境进行清理,并重新获取测试脚本进行测试。
需要说明的是,由于在以上整个存储系统的功能测试系统中,任务机池中可以存在多台任务机,因此,本申请所提供的功能测试方法,不仅可针对一套统一存储系统的多个功能模块进行并行测试,还可以适用于多套统一存储系统的并行自动化测试,具有极高的测试效率。
本申请所提供的存储系统的功能测试方法,预先将待执行任务信息上传于任务队列,将待执行任务对应的测试脚本设置于脚本库,通过任务机根据待执行任务信息实现对相应测试脚本的调用,由此,即可通过整个平台的运行,以任务机为控制节点完成对统一存储系统相关功能特性的自动化测试。通过该种功能测试方法,无需人工手动进行,节省了测试人员和开发人员的时间,极大地提高了测试执行效率;同时,由于是通过测试脚本进行覆盖测试,因此,还可以覆盖一些人工测试过程中的易遗漏点和易忽略点,从而有效提高测试质量,达到存储系统的全面测试。此外,基于该自动化测试方法,还可以帮助开发人员提高代码提交频度和产品发版频度,有效地缩短了反馈时间。
在上述实施例的基础上,
作为一种优选实施例,该功能测试方法还可以包括:执行任务机获取测试结果,并将测试结果返回至主控制任务机;主控制任务机将测试结果发送至显示终端。
具体的,执行任务机在完成待执行任务对应测试脚本的运行后,将获得相应的测试结果,为便于测试人员的查看,可将该测试结果统一反馈至主控制任务机,并由该主控制任务机进行汇总整理,进一步发送至显示终端。
其中,对于上述测试结果由执行任务机到主控制任务机的反馈过程,可在各个执行任务机执行完当前测试脚本后直接将测试结果进行反馈,也可在所有执行任务机执行完各自接收的测试脚本后,统一进行反馈,本申请对此不做具体限定。当然,上述测试结果的反馈过程也可不经由主控制任务机转发,由执行任务机直接反馈至显示终端即可,其具体实现方式,并不影响本技术方的实施。
作为一种优选实施例,该功能测试方法还可以包括:执行任务机基于日志自动化分析生成日志测试报告,并将日志测试报告返回至主控制任务机;主控制任务机将日志测试报告发送至显示终端。
具体的,执行任务机在对测试脚本的执行过程中,还可进一步基于日志的自动化分析生成相应的日志测试报告,该日志测试报告中可包括整个功能测试过程的相关信息,如各个测试脚本的执行时间、测试结果,实现整个存储系统功能测试所调用测试脚本的数量信息、测试过程中所出现的故障信息等;进一步,执行任务机在完成测试脚本的执行后,即可将该日志测试报告返回至主控制任务机,并由主控制任务机发送至显示终端进行显示,以便于测试人员的查看。当然,上述日志测试报告的反馈过程可参照上一方法实施例中测试结果的反馈过程,本申请在此不再赘述。
此外,本申请实施例中涉及到的日志测试报告的显示过程,与上述方法实施例中的测试结果的显示过程并不冲突,二者可同时进行,如可通过不同的显示终端进行显示等,也可不分先后顺序的进行。而对于二者的具体显示方式,本申请不做限定,可通过短信、微信等发送至测试人员的移动终端,也可以邮件的形式发送至测试人员的电脑邮箱等。
需要说明的是,上述日志测试报告的获取方式并不限于执行任务机,对于主控制任务机也同样适用,对于存储系统功能测试的整个测试过程,均可实现对应日志的记录。
优选的,该功能测试方法还可以包括主控制任务机将日志测试报告发送至存储器进行保存。
具体的,在获得日志测试报告后,还可进一步对其进行保存,以便于后期测试人员对存储系统的功能测试过程进行对比分析等。当然,对于上述日志测试报告的显示过程与保存过程,其具体执行顺序并不影响本技术方案的实施。
基于上述各方法实施例,本申请提供了一种更为具体的实现方式。请参考图2,图2为本申请所提供的一种存储系统的功能测试结构框架图。
首先,测试人员可使用虚拟机方式创建任务机池,并为任务机安装所需的操作系统,此操作系统为待测软件包的基础操作系统,然后对任务机操作系统之间配置ssh无密码访问。进一步,创建自动化控制节点,即上述主控制任务机,并在该主控制任务机上设置任务队列、测试脚本库、yum源。由此,测试人员即可在该主控制任务机上提交待测试任务,即对应于上述待测试任务信息;进一步,在后续的功能测试过程中,主控制任务机在接收到测试指令后将会到任务队列中读取待执行任务信息,然后到任务机池中根据节点配置锁定执行任务机并发送待执行任务信息。进一步,执行任务机根据待执行任务信息在测试脚本库中获取测试脚本并执行,执行结束后将生成对应的日志测试报告上传到指定节点的指定路径下,完成此条任务的执行。其中,一条待执行任务对应的是一条测试脚本,且对应于一项功能测试,也均存在对应的执行日志。
基于上述描述,本申请所提供的存储系统的功能测试方法中,其主控制任务机的搭建主要可包括以下步骤:
(1)创建ssh-key并设置免密信息;
(2)搭建测试脚本库(git/svn)、yum源,配置任务队列;
(3)将各个任务机的相关信息写入轻量级数据库中;
(4)使用标记语言书写自动化测试配置文件,指明待执行任务所需的执行任务机数量、测试脚本路径等;
(5)提交待执行任务到任务队列中,以待执行。
进一步,执行本申请所提供的存储系统的功能测试方法主要可包括以下步骤:
(1)启动主控制任务机的执行脚本;
(2)执行脚本读取任务队列,获取到待执行任务信息;
(3)从任务机池中获取对应的执行任务机并锁定;
(4)执行搭建自动化测试环境脚本,其中,自动化环境角色配置可从任务配置文件中获取;
(5)执行任务机在测试脚本库中获取测试脚本;
(6)根据任务配置文件,由执行任务机执行指定的测试脚本,以完成对存储系统的功能测试;
(7)测试脚本执行完毕,上传日志。
其中,若以上任一步骤执行失败,均会进入失败流程,清理环境,上传日志,并释放任务机。
本申请实施例所提供的存储系统的功能测试方法,无需人工手动进行,节省了测试人员和开发人员的时间,极大地提高了测试执行效率;同时,由于是通过测试脚本进行覆盖测试,因此,还可以覆盖一些人工测试过程中的易遗漏点和易忽略点,从而有效提高测试质量,达到存储系统的全面测试。此外,基于该自动化测试方法,还可以帮助开发人员提高代码提交频度和产品发版频度,有效地缩短了反馈时间。
为解决上述问题,请参考图3,图3为本申请所提供的一种存储系统的功能测试装置的结构示意图,该功能测试装置可包括:
任务信息确定模块1,用于根据接收到的测试指令对任务队列进行读取,获得待执行任务信息;
任务机锁定模块2,用于根据待执行任务信息在任务机池中锁定对应的执行任务机;
任务信息下发模块3,用于将待执行任务信息发送至执行任务机,以使执行任务机根据待执行任务信息在测试脚本库中调取对应的测试脚本,并执行测试脚本。
作为一种优选实施例,上述任务信息下发模块3可具体用于通过ssh远程访问协议将待执行任务信息发送至执行任务机。
对于本申请提供的装置的介绍请参照上述方法实施例,本申请在此不做赘述。
为解决上述问题,请参考图4,图4为本申请所提供的一种功能测试系统的结构示意图,该功能测试系统可包括:
主控制任务机10,用于根据接收到的测试指令对任务队列进行读取,获得待执行任务信息;根据待执行任务信息在任务机池中锁定对应的执行任务机20;将待执行任务信息发送至执行任务机20;
执行任务机20,用于根据待执行任务信息在测试脚本库中调取对应的测试脚本,并执行测试脚本。
作为一种优选实施例,上述执行任务机20还用于获取测试结果,并将测试结果返回至主控制任务机10;则上述主控制任务机10还用于将测试结果发送至显示终端。
作为一种优选实施例,上述执行任务机20还用于基于日志自动化分析生成日志测试报告,并将日志测试报告返回至主控制任务机10;则上述主控制任务机10还用于将日志测试报告发送至显示终端。
作为一种优选实施例,上述主控制任务机10还用于将日志测试报告发送至存储器进行保存。
作为一种优选实施例,上述执行任务机20还用于自动清除测试脚本。
对于本申请提供的系统的介绍请参照上述方法实施例,本申请在此不做赘述。
为解决上述问题,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下骤:
主控制任务机根据接收到的测试指令对任务队列进行读取,获得待执行任务信息;根据待执行任务信息在任务机池中锁定对应的执行任务机;将待执行任务信息发送至执行任务机,以使执行任务机根据待执行任务信息在测试脚本库中调取对应的测试脚本,并执行测试脚本。
该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的存储系统的功能测试方法、装置、功能测试系统以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围要素。