CN108984419B - 一种存储软件测试方法、装置及设备 - Google Patents
一种存储软件测试方法、装置及设备 Download PDFInfo
- Publication number
- CN108984419B CN108984419B CN201810977751.7A CN201810977751A CN108984419B CN 108984419 B CN108984419 B CN 108984419B CN 201810977751 A CN201810977751 A CN 201810977751A CN 108984419 B CN108984419 B CN 108984419B
- Authority
- CN
- China
- Prior art keywords
- test
- script
- software
- test script
- remote
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种存储软件测试方法,在该方法中,由终端设备控制远程设备启动存储软件,远程设备监控进程并持续向终端设备反馈进程状态信息,以告知进程在线或者挂掉,使得终端设备根据进程的真实状态,自动依次控制测试脚本的执行;若进程挂掉,远程设备自动备份进程挂掉时正在执行的测试脚本的转储dump文件和日志log文件,并尝试重启进程;终端设备在进程挂掉时,创建标记文件并等待进程重启,再进行执行下一个测试脚本,直到针对存储软件的所有测试脚本都执行完毕时,则结束此次测试。可见,利用该方法能够实现对存储软件的自动化测试,不需要人工参与控制,降低人力成本,避免出现人为失误,且能够极大地提高了测试效率。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种存储软件测试方法、装置及设备。
背景技术
存储软件是指能够提供数据的查看、上传、下载等与数据存储相关服务的软件,其既能够为网络上的应用提供丰富、快捷、遍历的存储资源,又能够共享存储资源,提高资源利用率,其已被应用于各个应用领域中。
为了适应于各个应用领域,开发人员需要不断地开发存储软件,而软件测试在整个开发过程中占据非常重要的地位,是保障软件质量提高软件可靠性的关键。随着软件规模的增加,存储软件的测试过程已经是一项非常繁琐并且复杂度较高的工作。
目前软件测试主要是依赖于纯人工来实现,其主要是由开发人员通过测试工具手动控制整个测试过程,在一个测试用例结束之后,手动触发下一个用例测试,依次控制所有的测试用例执行完毕。
但这种纯人工的测试方式一方面容易出现人为的失误,例如出现代码版本执行错误、I/O脚本执行错误、测试结果文件覆盖之前的文件、漏掉应该备份的测试结果文件等错误,而这些失误的出现导致软件存在的问题被漏掉,另一方面这种纯人工的测试方式,需要开发人员全程监控且手动控制,而测试过程往往需要十几或者几十小时,有时甚至更长的时间,而人工方式无法连续工作长时间,因此这种纯人工方式极大地限制了软件测试的效率。
发明内容
本申请实施例提供了一种存储软件测试方法,该方法提出了远程设备和终端设备两端控制分离的设计,通过终端设备远程控制远程设备两者相互通信以实现对配置于该远程设备中的存储软件进行自动化的输入输出I\O测试,该方法无需开发人员全程监控测试过程,能够节省人力资源,避免人为失误,更重要的是,该方法能够提高测试效率,以缩短存储软件的开发周期。
本申请第一方面提供了一种存储软件测试方法,该方法应用于终端设备,该方法包括:
登录远程设备,所述远程设备中配置有存储软件和外壳shell脚本;所述shell脚本用于启动并配置所述存储软件;
执行所述shell脚本,以启动所述存储软件;
执行死循环脚本,所述死循环脚本用于持续接收所述远程设备发送的进程状态消息,所述进程状态消息用于表征进程在线或者挂掉;
若进程状态消息表征所述进程在线,则根据测试列表中记录的测试脚本标识依次从测试脚本队列中读取对应的测试脚本,并执行该测试脚本;其中,所述测试脚本队列用于存储测试所述存储软件的各测试脚本;
若进程状态消息表征所述进程挂掉,则创建标记文件且当在接收到进程状态消息表征所述进程在线时,删除所述标记文件从所述测试脚本队列中读取下一个测试脚本,并执行该测试脚本,直到所述测试脚本队列中的测试脚本执行完毕,其中,所述标记文件用于标记在所述进程挂掉时正在执行的测试脚本。
可选的,所述登录远程设备,包括:
通过本地配置的安全外壳协议SSH客户端以加密和认证的方式与所述远程设备中配置的SSH服务端建立通信连接,以登录所述远程设备。
可选的,所述方法还包括:
当所述测试脚本队列中的所有测试脚本都执行完毕时,自动关闭所述主机。
本申请第二方面提供了一种存储软件测试方法,该方法应用于远程设备,该远程设备中配置有存储软件和外壳shell脚本,所述shell脚本用于启动所述存储软件,该方法包括:
与主机建立远程连接,运行所述shell脚本,以启动并配置所述存储软件;
执行死循环脚本,所述死循环脚本用于监控进程状态,并持续向主机发送的进程状态消息,所述进程状态消息用于表征进程在线或者挂掉;
若进程状态消息表征所述进程挂掉,则备份所述进程挂掉时正在执行的测试脚本对应的转储dump文件和日志log文件,并且重新启动所述进程。
可选的,所述配置所述存储软件,包括:
创建池、卷以及映射磁盘至主机。
可选的,所述与主机建立远程连接,包括:
通过本地配置的安全外壳协议SSH服务端与所述主机中配置的SSH客户端建立通信连接。
可选的,所述方法还包括:
接收针对所述存储软件测试结果的查看指令,向主机返回所述dump文件和所述log文件。
本申请第三方面提供了一种终端设备,该终端设备包括:
处理器以及存储器;
所述存储器用于存储可执行指令,并将所述可执行指令传输给所述处理器;
所述处理器用于根据所述可执行指令执行上述第一方面提供的存储软件测试方法。
本申请第四方面提供了一种远端设备,该远端设备包括:
机柜、控制器、以及磁盘;
所述控制器和所述磁盘通过插槽部署在所述机柜中;
所述控制器用于控制所述磁盘,且所述控制器中内置有存储软件、外壳shell脚本以及可执行指令,且用于根据所述可执行指令执行上述第二方面提供的存储软件测试方法。
本申请第五方面提供了一种存储软件测试系统,该系统包括:
上述第三方面提供的终端设备和上述第四方面提供的远端设备;
该终端设备与该远端设备建立远程连接,以实现对所述远程设备中配置的存储软件进行输入输出I/O测试。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,提供了一种存储软件测试方法,该方法不再依赖于纯人工全程监控测试过程,而是通过终端设备和远程设备两种之间相互通信以共同配合自动完成对存储软件的I\O测试,具体的,终端设备控制远程设备启动并配置位于远程设备中的存储软件,以使该存储软件做好参与此次测试的准备,对应的,远程设备监控进程并持续向终端设备反馈进程状态信息,以告知进程在线或者挂掉,使得终端设备根据进程的真实状态,自动依次控制测试脚本的执行;若进程挂掉,则远程设备自动备份进程挂掉时正在执行的测试脚本的转储dump文件和日志log文件,并尝试重启进程,以便快速继续进行测试;对应的,终端设备在接收到进程挂掉的信息时,创建标记文件,并等待进程重启,直到确定进程重启成功后,再进行执行下一个测试脚本,直到针对存储软件的所有测试脚本都执行完毕时,则结束此次测试。可见,利用该方法能够实现对存储软件的自动化测试,不需要人工参与控制,降低人力成本,避免出现人为失误,且能够极大地提高了测试效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种存储软件测试系统的结构图;
图2为本申请实施例提供的一种远程设备的结构图。
图3为本申请实施例提供的一种终端设备的结构图;
图4为本申请实施例提供的一种存储软件测试方法的流程图;
图5为本申请实施例提供的一种存储软件测试方法的流程图;
图6为本申请实施例提供的一种存储软件测试方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解本申请,下面先对本申请提供的一种存储软件测试系统进行解释说明。
参见图1,图1为本申请实施例提供的一种存储软件测试系统的结构图,如图1所示,该存储软件测试系统100包括:远程设备200和终端设备300;远程设备200和终端设备300之间通过网络通信;其中,远程设备200中配置有存储软件,该存储软件是需要被测试I\O性能的软件。
在具体实现时,终端设备300与远程设备200通过Python的全平台特性,结合实现了SSH协议的Paramiko库与Shell脚本,可以实现本申请实施例提供的存储软件测试系统,能够针对存储软件进行自动化测试,可以极大地提高开发的效率,降低人力成本。
在具体实现时,终端设备300是指面向用户的,能够执行可执行指令的设备,例如其可以为台式机、笔记本、手机等设备,而本申请提供的存储软件测试方法可以以软件如客户端的形式运行于该终端设备300中,以使该终端设备300能够实现存储软件测试功能,而关于终端设备300的具体结构以及功能,将在下文中进行详细介绍,此处暂不详述。
在具体实现时,远程设备200是指能够存储并且运行存储软件的设备,例如其可以为机柜式通信设备,具体的,可以为机柜式服务器,而本申请提供的存储软件测试方法可以以软件如服务端的形式运行于该远程设备200中,以使得该远程设备200能够实现存储软件测试功能,而关于远程设备200的具体结构以及功能,将在下文中进行详细介绍,此处暂不详述。
在具体实现时,需要被测试的存储软件可以是任一一种存储软件,本申请对此不作具体限定。即只要开发人员开发出一款存储软件即可利用图1所示的存储软件测试系统来针对所开发的存储软件进行I\O测试,从而能够根据测试结果进一步优化存储软件,以提高软件开发效率。对于开发人员来讲,在利用该存储软件测试系统时,其只需要利用部署在本地的终端设备300,通过该终端设备300配置测试存储软件时所需要的所有测试脚本以及对应的测试列表,该测试列表能够表征测试脚本的执行顺序,同时,还需要配置该终端设备300的通信对象即远程设备200的IP,即确定对哪个远程设备上的存储软件进行测试,开发人员完成这些准备工作之后,触发终端设备300执行本申请提供的存储软件测试方法以实现对远程设备200中的存储软件进行自动化的I\O测试。
在具体实现时,远程设备负责在测试过程中保持进程在线,若程序进程挂掉,则自动备份当前测试用例的dump和日志信息,同时向主机端即终端设备发送进程状态消息以告知进程在线与否;而主机端负责测试脚本的IO测试流程,若远程设备的进程一直在线,则主机端一次完成针对存储软件的所有测试脚本,即完成针对存储软件的此次测试;若在测试过程中,远程设备中的进程挂掉,则关闭当前测试,等待远程设备进程重新上线,然后再接着自动测试下一个用例。
利用本申请实施例提供的存储软件测试系统,只需要配置好针对存储软件的测试脚本队列即可自动化完成测试,自动保存测试记录,并在远程设备出错时自动备份dump和日志文件,这样不仅能够减少开发人员的人力投入,还能够提高测试效率。
下面对本申请提供一种远程设备的结构和功能进行介绍。参见图2,图2示出了本申请提供的一种远程设备的结构图,如图2所示,该远程设备200为机柜式通信设备,该机柜式通信设备包括机柜201、控制器202和磁盘203;其中,机柜201提供多个槽位,以使得控制器磁盘都可以插入机柜提供的槽位,以固定在机柜中实现其功能。其中,控制器202也被称为控制板,其用于控制磁盘,实现对磁盘的读写;磁盘203可以理解为是用于存储数据的载体,其能够支持多次读写操作。
在具体实现时,需要被测试的存储软件预先存储在该控制器中,且本申请提供的存储软件测试方法可以以软件例如服务端的形式存储在该控制器中,以便该远程设备通过运行该服务端以实现对存储软件的自动化I\O测试。该服务端可以理解为是用于实现本申请提供的存储软件测试方法的一系列可执行指令。而关于本申请提供的存储软件测试方法将在下文中进行详细说明,此处暂时说明。
在具体实现时,该远程设备可以包括多个控制器,例如2个或者4个控制器,也可以包括多个磁盘以形成磁盘阵列,从而提高数据存储性能。但本申请并不限定该远程设备中所包括的控制器和磁盘的具体个数,其可以根据实际业务需求而设定。
需要说明的是,本申请提供的存储软件测试系统中所采用的远程设备可以如图2所示的结构,也可以采用其他结构,例如该远程设备可以为服务器,服务器中包括存储器和处理器,存储器中存储有可执行指令和需要测试的存储软件,处理器通过执行可执行指令以实现对该存储软件的I\O测试。
下面对本申请请提供的一种终端设备的结构和功能进行介绍。参见图3,图3示出了本申请提供的一种终端设备的结构图,如图3所示,该终端设备300包括:处理器301和存储器302,其中,该存储器用于存储可执行指令,并将所述可执行指令传输给所述处理器;所述处理器用于根据所述可执行指令执行本申请提供的存储软件测试方法。而关于本申请提供的存储软件测试方法将在下文中进行详细说明,此处暂时说明。在某些情况下,该终端设备也可以被称为本地主机,即在用户本地部署的主机。
在具体实现时,该终端设备是面向用户的,其还可以包括显示器,以便用户基于该显示器实施相关操作以为存储软件的测试做好准备,该显示器可以为可触摸的显示器,以便用户通过触控操作实施相关配置处理,当然,用户可以通过该终端设备的外设例如键盘、鼠标等来进行操作。
下面对本申请提供的存储软件测试方法进行介绍。
参见图4,图4示出了本申请实施例提供的存储软件测试方法的流程图,该流程图描述的是,参与测试的本地主机和远程设备的交互流程图,如图4所示,该方法包括:
S401:本地主机登录远程设备;
即,本地主机与远程设备建立远程连接,具体的,终端设备通过本地配置的安全外壳协议SSH客户端以加密和认证的方式与所述远程设备中配置的SSH服务端建立通信连接,以登录所述远程设备。将此过程可以称之为建立SSH连接。
S402:本地主机执行远程设备的进程启用shell脚本,以启动以及配置存储软件,该shell脚本用于启动进程以及配置存储软件;其中,所述远程设备中配置有存储软件和外壳shell脚本;其中,配置所述存储软件可以理解为是创建池、卷、映射磁盘到本地主机,可以使用互联网小型计算机系统接口(Internet Small Computer System Interface,iSCSI)或光纤通道接口(Fibre Channel,FC)映射磁盘到本地主机。
S403:远程设备执行死循环脚本,所述死循环脚本用于监控进程状态,并持续向本地主机发送的进程状态消息,所述进程状态消息用于表征进程在线或者挂掉;
具体的,远程设备可以按照预设时间周期,周期性地向本地主机发送进程状态消息,例如时间周期为5秒,则远程设备每隔5秒向终端设备发送一次进程状态消息。
S404:终端设备执行死循环脚本,所述死循环脚本用于持续接收所述远程设备发送的进程状态消息,所述进程状态消息用于表征进程在线或者挂掉;
需要说明的是,S303和S304可以是同步执行的。
S405:若进程状态消息表征所述进程在线,则根据测试列表中记录的测试脚本标识依次从测试脚本队列中读取对应的测试脚本,例如vdbench脚本,并执行该测试脚本;其中,所述测试脚本队列用于存储测试所述存储软件的各测试脚本;
S406:若监控到进程挂掉,则远程设备备份进程挂掉时正在执行的测试脚本对应的转储dump文件和日志log文件,并且重新启动所述进程;
S407:若进程状态消息表征进程挂掉,则本地主机创建标记文件,等待接收进程重启,当再次在接收到进程状态消息表征所述进程在线时,删除所述标记文件从所述测试脚本队列中读取下一个测试脚本,并执行该测试脚本,直到所述测试脚本队列中的测试脚本执行完毕,其中,所述标记文件用于标记在所述进程挂掉时正在执行的测试脚本。
下面对应用于远程设备的存储软件测试方法进行说明。
参见图5,图5示出了本申请实施例提供的存储软件测试方法的流程图,该流程图描述的是远程设备参与软件测试的方法流程,所述远程设备中配置有需要被测试的存储软件,如图5所示,该方法包括:
S501:与主机建立远程连接,运行所述shell脚本,以启动并配置所述存储软件;
在具体实现时,通过本地配置的安全外壳协议SSH服务端与所述主机中配置的SSH客户端建立通信连接。
具体的,配置存储软件包括创建池、卷以及映射磁盘至主机。
S502:执行死循环脚本,所述死循环脚本用于监控进程状态,并持续向主机发送的进程状态消息,所述进程状态消息用于表征进程在线或者挂掉;
S503:若进程状态消息表征所述进程挂掉,则备份所述进程挂掉时正在执行的测试脚本对应的转储dump文件和日志log文件,并且重新启动所述进程。
其中,dump文件是进程的内存镜像。远程设备可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开,比如使用WinDbg打开。
其中,log文件是指对已完成的测试过程的记录,以便开发人员以此作参考来优化存储软件。
在具体实现时,开发人员需要根据测试结果来进一步优化存储软件,因此,在上述方法的基础上,还可以进一步为开发人员提供测试结果查看服务,具体的,在上述步骤的基础上,还可以增加如下步骤:
接收针对所述存储软件测试结果的查看指令,向主机返回所述dump文件和所述log文件。
可以理解的是,用户可以通过终端设备触发针对存储软件测试结果的查看操作,则终端设备生成针对存储软件测试结果的查看指令,远程设备响应于该查看指令返回在测试阶段备份的dump文件和log文件。
下面对应用于终端设备的存储软件测试方法进行说明。
参见图6,图6示出了本申请实施例提供的存储软件测试方法的流程图,该流程图描述的是终端设备参与软件测试的方法流程,所述终端设备中配置有需要被测试的存储软件,如图6所示,该方法包括:
S601:登录远程设备,所述远程设备中配置有存储软件和外壳shell脚本;所述shell脚本用于启动并配置所述存储软件;
通过本地配置的安全外壳协议SSH客户端以加密和认证的方式与所述远程设备中配置的SSH服务端建立通信连接,以登录所述远程设备。
S602:执行所述shell脚本,以启动所述存储软件;
S603:执行死循环脚本,所述死循环脚本用于持续接收所述远程设备发送的进程状态消息,所述进程状态消息用于表征进程在线或者挂掉;
S604:若进程状态消息表征所述进程在线,则根据测试列表中记录的测试脚本标识依次从测试脚本队列中读取对应的测试脚本,并执行该测试脚本;其中,所述测试脚本队列用于存储测试所述存储软件的各测试脚本;
对于终端设备而言,其按照测试列表中记录的测试脚本的顺序依次读取每一个测试脚本,在进程在线时,依次执行所读取的测试脚本,直到测试脚本队列中的所有测试脚本执行完毕,但是在执行过程中,一旦终端设备接收到进程状态信息表征进程状态挂掉时,当前正在执行的测试脚本就会终止,同时会触发windows error2错误,在这种情况下,终端设备就执行S605。
S605:若进程状态消息表征所述进程挂掉,则创建标记文件且当在接收到进程状态消息表征所述进程在线时,删除所述标记文件从所述测试脚本队列中读取下一个测试脚本,并执行该测试脚本,直到所述测试脚本队列中的测试脚本执行完毕,其中,所述标记文件用于标记在所述进程挂掉时正在执行的测试脚本。
在具体实现时,可以当所述测试脚本队列中的所有测试脚本都执行完毕时,则认为针对存储软件的此次测试已结束,此时终端设备可以自动关闭,以节省电量。
通过上述实施例可知,本申请提供的存储软件测试方法,不再依赖于纯人工全程监控测试过程,而是通过终端设备和远程设备两种之间相互通信以共同配合自动完成对存储软件的I\O测试,具体的,终端设备控制远程设备启动并配置位于远程设备中的存储软件,以使该存储软件做好参与此次测试的准备,对应的,远程设备监控进程并持续向终端设备反馈进程状态信息,以告知进程在线或者挂掉,使得终端设备根据进程的真实状态,自动依次控制测试脚本的执行;若进程挂掉,则远程设备自动备份进程挂掉时正在执行的测试脚本的转储dump文件和日志log文件,并尝试重启进程,以便快速继续进行测试;对应的,终端设备在接收到进程挂掉的信息时,创建标记文件,并等待进程重启,直到确定进程重启成功后,再进行执行下一个测试脚本,直到针对存储软件的所有测试脚本都执行完毕时,则结束此次测试。可见,利用该方法能够实现对存储软件的自动化测试,不需要人工参与控制,降低人力成本,避免出现人为失误,且能够极大地提高了测试效率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (9)
1.一种存储软件测试方法,其特征在于,应用于终端设备,包括:
登录远程设备,所述远程设备中配置有存储软件和外壳shell脚本;所述shell脚本用于启动并配置所述存储软件;所述配置所述存储软件,包括:创建池、卷以及映射磁盘至终端设备;所述远程设备,包括:控制器,所述存储软件预先存储在所述控制器中;
所述终端设备执行所述shell脚本,以启动所述存储软件;
所述终端设备执行死循环脚本,所述死循环脚本用于持续接收所述远程设备发送的进程状态消息,所述进程状态消息用于表征进程在线或者挂掉;
若进程状态消息表征所述进程在线,则根据测试列表中记录的测试脚本标识依次从测试脚本队列中读取对应的测试脚本,并执行该测试脚本;其中,所述测试脚本队列用于存储测试所述存储软件的各测试脚本;
若进程状态消息表征所述进程挂掉,则创建标记文件,并等待所述进程重启,且当在接收到进程状态消息表征所述进程在线时,删除所述标记文件从所述测试脚本队列中读取下一个测试脚本,并执行该测试脚本,直到所述测试脚本队列中的测试脚本执行完毕,其中,所述标记文件用于标记在所述进程挂掉时正在执行的测试脚本。
2.根据权利要求1所述方法,其特征在于,所述登录远程设备,包括:
通过本地配置的安全外壳协议SSH客户端以加密和认证的方式与所述远程设备中配置的SSH服务端建立通信连接,以登录所述远程设备。
3.根据权利要求1所述方法,其特征在于,所述方法还包括:
当所述测试脚本队列中的所有测试脚本都执行完毕时,自动关闭所述终端设备。
4.一种存储软件测试方法,其特征在于,应用于远程设备,所述远程设备中配置有存储软件和外壳shell脚本,所述shell脚本用于启动所述存储软件,所述方法包括:
与终端设备建立远程连接,运行所述shell脚本,以启动并配置所述存储软件;所述配置所述存储软件,包括:创建池、卷以及映射磁盘至终端设备;所述远程设备,包括:控制器,所述存储软件预先存储在所述控制器中;
所述远程设备执行死循环脚本,所述死循环脚本用于监控进程状态,并持续向终端设备发送的进程状态消息,以使终端设备根据所述进程状态消息,控制测试脚本的执行,包括:若进程状态消息表征所述进程在线,则终端设备根据测试列表中记录的测试脚本标识依次从测试脚本队列中读取对应的测试脚本,并执行该测试脚本;其中,所述测试脚本队列用于存储测试所述存储软件的各测试脚本;若进程状态消息表征所述进程挂掉,则终端设备创建标记文件,并等待所述进程重启,且当在接收到进程状态消息表征所述进程在线时,删除所述标记文件从所述测试脚本队列中读取下一个测试脚本,并执行该测试脚本,直到所述测试脚本队列中的测试脚本执行完毕,其中,所述标记文件用于标记在所述进程挂掉时正在执行的测试脚本;所述进程状态消息用于表征进程在线或者挂掉;
若进程状态消息表征所述进程挂掉,则所述远程设备备份所述进程挂掉时正在执行的测试脚本对应的转储dump文件和日志log文件,并且重新启动所述进程。
5.根据权利要求4所述方法,其特征在于,所述与终端设备建立远程连接,包括:
通过本地配置的安全外壳协议SSH服务端与所述终端设备中配置的SSH客户端建立通信连接。
6.根据权利要求4所述方法,其特征在于,所述方法还包括:
接收针对所述存储软件测试结果的查看指令,向终端设备返回所述dump文件和所述log文件。
7.一种终端设备,其特征在于,所述终端设备包括:
处理器以及存储器;
所述存储器用于存储可执行指令,并将所述可执行指令传输给所述处理器;
所述处理器用于根据所述可执行指令执行权利要求1-3任一项所述的存储软件测试方法。
8.一种远端设备,其特征在于,所述远端设备包括:
机柜、控制器、以及磁盘;
所述控制器和所述磁盘通过插槽部署在所述机柜中;
所述控制器用于控制所述磁盘,且所述控制器中内置有存储软件、外壳shell脚本以及可执行指令,且用于根据所述可执行指令执行权利要求4至6中任一项所述的存储软件测试方法。
9.一种存储软件测试系统,其特征在于,所述系统包括:
如权利要求7所述的终端设备和如权利要求8所述的远端设备;
所述终端设备与所述远端设备建立远程连接,以实现对所述远端 设备中配置的存储软件进行输入输出I/O测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810977751.7A CN108984419B (zh) | 2018-08-23 | 2018-08-23 | 一种存储软件测试方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810977751.7A CN108984419B (zh) | 2018-08-23 | 2018-08-23 | 一种存储软件测试方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108984419A CN108984419A (zh) | 2018-12-11 |
CN108984419B true CN108984419B (zh) | 2022-11-04 |
Family
ID=64547670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810977751.7A Active CN108984419B (zh) | 2018-08-23 | 2018-08-23 | 一种存储软件测试方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108984419B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109639514A (zh) * | 2019-01-30 | 2019-04-16 | 深圳市恒扬数据股份有限公司 | 一种设备的检测方法、检测装置及终端设备 |
CN110895510A (zh) * | 2019-11-19 | 2020-03-20 | 通号城市轨道交通技术有限公司 | 一种软件测试方法、装置、电子设备及存储介质 |
CN111124787B (zh) * | 2019-12-25 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种mcs多节点并发转储稳定性的验证方法、系统及设备 |
CN111198758B (zh) * | 2020-01-08 | 2024-02-13 | 深圳忆联信息系统有限公司 | 基于SSH的Windows软件启动方法、装置和计算机设备 |
CN111475414A (zh) * | 2020-04-03 | 2020-07-31 | 深圳市吉祥腾达科技有限公司 | 模拟多个ap客户端实现在服务端产品上线的方法及系统 |
CN111966565A (zh) * | 2020-08-27 | 2020-11-20 | 中电科仪器仪表有限公司 | 一种基于消息队列的自动测试系统的远程监控方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107704398A (zh) * | 2017-11-01 | 2018-02-16 | 网易(杭州)网络有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100447753C (zh) * | 2005-03-31 | 2008-12-31 | 联想(北京)有限公司 | 计算机测试方法 |
CN101645808B (zh) * | 2009-05-15 | 2012-01-04 | 天津七一二通信广播有限公司 | 采用模拟反馈框架测试通信终端的方法 |
CN101727390A (zh) * | 2009-12-28 | 2010-06-09 | 金蝶软件(中国)有限公司 | 一种性能测试脚本的调试方法和装置 |
CN101894066B (zh) * | 2010-04-28 | 2012-11-28 | 北京同有飞骥科技股份有限公司 | 一种基于磁盘阵列虚拟化的网络存储管理软件测试方法 |
CN103139006A (zh) * | 2011-12-05 | 2013-06-05 | 上海博腾信息科技有限公司 | 基于web服务的自动化测试装置及方法 |
US9282021B2 (en) * | 2012-10-19 | 2016-03-08 | Oracle International Corporation | Method and apparatus for simulated failover testing |
US9317410B2 (en) * | 2013-03-15 | 2016-04-19 | International Business Machines Corporation | Testing functional correctness and idempotence of software automation scripts |
CN103218289B (zh) * | 2013-03-29 | 2015-07-08 | 北京控制工程研究所 | 一种星载软件测试自动执行方法 |
CN103902458B (zh) * | 2014-04-18 | 2017-12-05 | 浪潮电子信息产业股份有限公司 | 一种通用的存储软件测试系统和设计方法 |
CN106742047A (zh) * | 2016-11-09 | 2017-05-31 | 上海卫星工程研究所 | 卫星测试流程的自动执行方法及终端 |
CN107045467A (zh) * | 2017-02-07 | 2017-08-15 | 郑州云海信息技术有限公司 | 一种整机柜远程监控节点系统测试状态的方法 |
CN107273251A (zh) * | 2017-06-02 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种在生产环境下Rack机柜JBOD存储的测试方法 |
CN107590075B (zh) * | 2017-09-19 | 2021-06-29 | 郑州云海信息技术有限公司 | 一种软件测试方法及装置 |
-
2018
- 2018-08-23 CN CN201810977751.7A patent/CN108984419B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107704398A (zh) * | 2017-11-01 | 2018-02-16 | 网易(杭州)网络有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108984419A (zh) | 2018-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108984419B (zh) | 一种存储软件测试方法、装置及设备 | |
US11507450B2 (en) | Systems and methods to reprogram mobile devices via a cross-matrix controller to port connection | |
US10853232B2 (en) | Adaptive system for mobile device testing | |
CN104468741B (zh) | 云桌面的处理方法及装置 | |
WO2017067441A1 (zh) | 一种应用的测试方法、装置、系统以及非暂时性机器可读存储介质 | |
CN102419732A (zh) | 基于android平台的自动化测试方法及测试工具 | |
CN108170494B (zh) | 一种用于智能终端的应用程序启动方法及启动系统 | |
TW201706837A (zh) | 電腦系統 | |
WO2017185954A1 (zh) | 一种实现usb设备管理的方法、主机和系统 | |
CN112882734B (zh) | 升级方法及装置、计算机设备和介质 | |
CN110442427B (zh) | 一种虚拟机快照管理方法、装置、设备和存储介质 | |
WO2017036330A1 (zh) | 一种网络割接中业务配置的方法和设备 | |
WO2009022344A2 (en) | Method and system for remote diagnostics | |
CN108132832B (zh) | 应用程序启动方法和装置 | |
US10102008B2 (en) | Managed boot process system | |
CN113971277A (zh) | 多用户登录方法和装置 | |
CN113709243A (zh) | 设备远程控制方法及装置、电子设备和存储介质 | |
CN101329688B (zh) | 用于外部备份的数据库系统和方法 | |
CN114253781B (zh) | 测试方法、装置、设备及存储介质 | |
CN114116034B (zh) | 分布式刷机方法和装置 | |
CN114637669A (zh) | 设备管理方法、装置、设备及存储介质 | |
CN111147400B (zh) | 一种命令行配置同步的方法、装置及电子设备 | |
WO2017096889A1 (zh) | 系统升降级的方法和装置 | |
CN115469964A (zh) | 块设备与虚拟机盘符之间映射关系的确定方法和装置 | |
CN112506729B (zh) | 一种故障模拟方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |