一种Windows下硬盘压力自动测试方法及系统与流程

文档序号:14008186阅读:416来源:国知局
一种Windows下硬盘压力自动测试方法及系统与流程

本申请涉及硬盘测试技术领域,尤其涉及一种windows下硬盘压力自动测试方法和系统。



背景技术:

硬盘压力测试主要是对硬盘进行不同数据块的顺序读、顺序写、随机读和随机写测试,评估在给硬盘进行满负荷读写测试时硬盘是否出现数据中断或掉盘,以及,压力测试完成后硬盘是否掉盘、系统日志有没有报错。所谓掉盘即硬盘运行慢、发生卡顿现象或者重启后检测不到硬盘。

目前,windows系统下硬盘压力测试的工具通常为硬盘压力软件iometer。使用该软件进行硬盘压力测试时,首先,手动进行参数配置,包括手动输入进行硬盘压力测试的每一个worker、手动输入每一个数据块,然后手动将数据块逐个添加到worker中,再手动将需要进行压力测试的硬盘的盘符逐个添加到worker中。参数配置完毕后开始进行硬盘压力性能测试。

然而,目前的硬盘压力测试方法中,通常一个硬盘压力测试包括多个worker,每个worker又需要匹配多个数据块和多个盘符,通过人工手动配置测试参数,操作繁琐而复杂,需要占用大量时间和人力,自动化程度低,测试效率低下。而且,手动配置参数容易产生误差,从而导致硬盘压力测试结果不准确。



技术实现要素:

为克服相关技术中存在的测试操作繁琐、测试效率低以及测试结果准确性不够高的问题,本申请提供一种windows下硬盘压力自动测试方法和系统。

一种windows下硬盘压力自动测试方法,其特征是,所述方法包括:

s1:进入硬盘压力测试软件;

s2:利用autoit工具向操作系统发送命令,对硬盘压力测试软件自动设置测试参数;

s3:根据所设置的测试参数,进行硬盘压力测试。

可选地,步骤s2包括如下过程:

s21:根据cpu线程和所述硬盘压力测试软件中worker添加键的位置,利用mousemove命令添加执行硬盘压力测试的一个worker,所述worker与cpu线程一一对应;

s22:根据所述硬盘压力测试软件中数据块添加键的位置,利用mousemove命令对所述一个worker依次添加m个数据块;

s23:根据所述硬盘压力测试软件中盘符添加键的位置,利用mousemove命令对所述一个worker依次添加n个盘符;

s24:判断所有执行硬盘压力测试的worker以及每个worker所对应的m个数据块和n个盘符是否添加完毕,如果是,执行步骤s25,如果否,返回步骤s21-s23,直到添加完毕所有执行硬盘压力测试的worker以及每个worker所对应的m个数据块和n个盘符;

s25:根据所述硬盘压力测试软件中测试时间设置键的位置,利用mousemove命令对所有执行硬盘压力测试的worker设置测试时间。

可选地,所有执行硬盘压力测试的worker的测试时间相同,且每个worker所匹配的数据块和盘符相同。

可选地,所述数据块包括:进行顺序读测试的数据块、进行顺序写测试的数据块、进行随机读测试的数据块以及进行顺随机写测试的数据块中的一种或几种。

可选地,步骤s2之前,所述方法还包括:

利用winactive命令激活硬盘压力窗口。

一种windows下硬盘压力自动测试系统,其特征是,所述系统包括:

导入模块,用于引导进入硬盘压力测试软件;

测试参数自动设置模块,用于利用autoit工具向操作系统发送命令,对硬盘压力测试软件自动设置测试参数;

硬盘压力测试模块,用于根据测试参数自动设置模块所设置的测试参数,自动进行硬盘压力测试。

可选地,所述测试参数自动设置模块包括:

worker添加单元,用于根据cpu线程和硬盘压力测试软件中worker添加键的位置,利用mousemove命令添加执行硬盘压力测试的worker,所述worker与cpu线程一一对应;

数据块添加单元,用于根据硬盘压力测试软件中数据块添加键的位置,利用mousemove命令对每个worker依次添加m个数据块;

盘符添加单元,用于根据硬盘压力测试软件中盘符添加键的位置,利用mousemove命令对每个worker依次添加n个盘符;

判断单元,用于判断所有执行硬盘压力测试的worker以及每个worker所对应的m个数据块和n个盘符是否添加完毕;

测试时间设置单元,用于根据硬盘压力测试软件中测试时间设置键的位置,利用mousemove命令对所有worker设置测试时间。

可选地,所有执行硬盘压力测试的worker的测试时间相同,且每个worker所匹配的数据块和盘符相同。

可选地,所述所述数据块包括:进行顺序读测试的数据块、进行顺序写测试的数据块、进行随机读测试的数据块以及进行顺随机写测试的数据块中的一种或几种。

可选地,所述系统还包括:硬盘压力窗口激活模块,用于利用winactive命令,激活硬盘压力测试软件中的硬盘压力窗口。

本申请的实施例提供的技术方案可以包括以下有益效果:

本申请提供一种windows下硬盘压力自动测试方法,包括:进入硬盘压力测试软件;利用autoit工具向操作系统发送命令,对硬盘压力测试软件自动设置测试参数;根据所设置的测试参数,进行硬盘压力测试。本申请实施例通过利用autoit工具向操作系统发送命令,模拟用户键盘鼠标的操作,能够实现自动设置硬盘压力测试软件中的测试参数,自动化程度高,操作简单,针对cpu线程较多的硬盘压力测试,能够节省大量的时间和人力,从而大大提高测试效率。而且,通过自动参数设置,不容易产生误差,有利于提高硬盘压力测试结果的准确性。

本申请还提供一种windows下硬盘压力自动测试系统,包括导入模块、测试参数自动设置模块以及硬盘压力测试模块。通过导入模块进入硬盘压力测试软件,然后通过测试参数自动设置模块,利用autoit工具向操作系统发送命令,对硬盘压力测试软件自动设置测试参数,最后硬盘压力测试模块根据所设置的测试参数自动进行硬盘压力测试。本申请实施例中测试参数自动设置模块的设置,主要通过机器执行脚本自动完成,操作简单,能够在运行硬盘压力测试软件时测试参数设置环节上节省大量的时间和人力,从而大大提高测试效率。而且本系统中采用测试参数自动设置模块,有利于提高测试系统的自动化程度,能够避免或减少误差,有利于提高硬盘压力测试结果的准确性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

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

图1为本申请实施例提供的一种windows下硬盘压力自动测试方法的流程示意图;

图2为本身申请实施例中步骤s2的流程示意图;

图3为本申请实施例提供的一种windows下硬盘压力自动测试系统的结构示意图。

符号表示:

1-导入模块、2-测试参数自动设置模块、3-硬盘压力测试模块。

具体实施方式

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本申请进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本申请的不同结构。为了简化本申请的公开,下文中对特定例子的部件和设置进行描述。此外,本申请可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本申请省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本申请。

硬盘压力测试主要是对硬盘进行不同数据块的顺序读、顺序写、随机读和随机写测试,评估在给硬盘进行满负荷读写测试时硬盘是否出现数据中断或掉盘,以及,压力测试完成后硬盘是否掉盘、系统日志有没有报错。所谓掉盘即硬盘运行慢、发生卡顿现象或者重启后检测不到硬盘。

目前windows系统下主流的硬盘压力测试软件为iometer软件,iometer软件主要通过dynamo来生成多种io测试,可以用于模仿数据库服务器、文件服务器以及网站服务器的测试等,每一个dynamo叫做一个manager。每一个manager下又有多个worker,worker即是dynamo的线程,这个线程与cpu线程数量相等,一一对应,且cpu线程越多,相应的worker越多,硬盘压力越大。不同的worker用于执行不同的io测试,例如:worker1用于测试磁盘io,worker2用于测试网络io。

为了更好地理解本申请,下面结合附图来详细解释本申请的实施方式。

参见图1,图1为本申请实施例提供的一种windows下硬盘压力自动测试方法的流程示意图。由图1可知,本申请实施例中的测试方法主要包括如下步骤:

s1:进入硬盘压力测试软件。

s2:利用autoit工具向操作系统发送命令,对硬盘压力测试软件自动设置测试参数。

本申请实施例中采用脚本的方式实现测试参数的自动设置,具体地,采用类basic语言的相关命令实现硬盘压力测试中测试参数的自动设置。类basic语言就是类似于basic结构和语法的语言,是在basic语言的基础上加以了一定的修改。本实施例实用类basic语言的相关命令,向操作系统发送模拟用户的键盘鼠标操作的命令。

具体地,结合图2可知,步骤s2又包括如下步骤:

s21:根据cpu线程和硬盘压力测试软件中worker添加键的位置,利用mousemove命令添加执行硬盘压力测试的一个worker,worker与cpu线程一一对应。

本实施例中各操作键的位置利用平面坐标来表示,例如:硬盘压力测试软件中确定可操作按钮后,将鼠标中(1032,750)位置移动到(942,762)位置,并进行worker添加可以采用如下脚本和命令来实现:

mousemove(1032,750)

mousedown("left")

mouseup("left")

mousemove(949,762)

本实施例中worker与cpu线程一一对应,根据cpu线程来添加worker,使得当前所配置的硬盘压力加到最大,达到满负荷。

添加worker后,执行步骤s22:根据硬盘压力测试软件中数据块添加键的位置,利用mousemove命令对步骤s21中所添加的worker依次添加m个数据块,m为自然数。

本实施例中的数据块包括:进行顺序读测试的数据块、进行顺序写测试的数据块、进行随机读测试的数据块以及进行顺随机写测试的数据块中的一种或几种。硬盘压力测试中,不同的读写测试通过不同的数据块来实现。通常情况下,worker中所添加的m个数据块包括进行顺序读测试的数据块、进行顺序写测试的数据块、进行随机读测试的数据块以及进行顺随机写测试的数据块四种,从而能够确保从顺序读写、随机读写各角度来验证硬盘压力状况。有些情况下,也可以根据测试需求,单独对某一种、两种或者三种数据块进行测试。

针对同一个worker添加完毕数据块后,进入步骤s23:根据硬盘压力测试软件中盘符添加键的位置,利用mousemove命令对步骤s21中所添加的worker依次添加n个盘符,n为自然数。

也就是通过添加相应盘符,让worker绑定所要执行硬盘压力测试的硬盘,例如需要对c/d/e三个硬盘进行硬盘压力测试,那么需要依次将c、d、e盘逐个添加到worker下。

以上步骤s22和步骤s23中具体添加数据块和盘符的过程及原理,与添加worker的原理一样,也是通过mousemove、mousedown、mouseup等命令来实现模拟鼠标移动和点击的动作,在此不再举例。

当然,本申请实施例中,还包括先添加盘符再添加数据块的方法,也就是添加数据块和盘符的顺序也可以倒过来,并不影响硬盘压力测试的结果和准确性。

s24:判断所有执行硬盘压力测试的worker以及每个worker所对应的m个数据块和n个盘符是否添加完毕,如果是,执行步骤s25,如果否,返回步骤s21-s23,直到添加完毕所有执行硬盘压力测试的worker以及每个worker所对应的m个数据块和n个盘符。

本申请实施例中,每个worker所匹配的数据块和盘符相同,也就是所有worker所添加的数据块类型和数量相同,所有worker所添加的盘符类型和数量相同。

s25:根据硬盘压力测试软件中测试时间设置键的位置,利用mousemove命令对所有执行硬盘压力测试的worker设置测试时间。

本申请实施例中,所有执行硬盘压力测试的worker的测试时间相同。硬盘压力测试的时间为每个数据块的测试时间和相邻数据块之间切换时间的总和。

由以上步骤s21-s25可以看出,在进行测试参数的自动设置时,worker、数据块、盘符都需要逐个添加。首先添加一个worker,然后逐个添加与该worker所匹配的所有数据块以及盘符,再添加下一个worker、针对该下一个worker添加与其所匹配的所有数据块以及盘符,直到所有执行硬盘压力测试的worker及其所匹配的所有数据块和盘符都添加完毕后,对所有worker统一设置测试时间。这种设置顺序,能够确保测试参数设置完整、不遗漏,有利于提高硬盘压力测试的准确性。

而本申请实施例中通过mousemove、mousedown、mouseup等命令来模拟鼠标移动和点击的动作,能够节省大量的测试时间和人力,有利于提高硬盘压力测试的效率和准确性,尤其针对cpu线程较多的硬盘压力测试,更能够节省大量的时间和人力。

设置完测试参数后,进入步骤s3:根据所设置的测试参数,进行硬盘压力测试。

本实施例中硬盘压力测试的方法与现有技术中相同,当测试参数自动设置完毕后,根据硬盘压力测试软件,自动进行硬盘压力测试。硬盘压力测试时会自动生成测试log。硬盘压力测试的结果判断也与现有技术相同,硬盘压力测试过程中,查看硬盘是否出现数据中断或者硬盘掉盘。测试完毕后,根据硬盘是否掉盘以及测试日志有没有报错,来判断硬盘压力测试情况。

进一步地,本申请实施例中,在步骤s2之前,还可以包括利用winactive命令激活硬盘压力窗口。以确保在硬盘压力窗口激活状态下进行硬盘压力测试。

下面以在硬盘压力测试软件中添加一个worker、针对所添加的worker添加一个盘符和一个数据块为例,采用类basic语言的脚本来描述如何实现本申请中windows下硬盘压力自动测试方法。

#region---scriptwritergeneratedcodestart---

opt("winwaitdelay",100)

opt("wintitlematchmode",4)

opt("windetecthiddentext",1)

opt("mousecoordmode",0)#定义变量

run('c:\users\panlin\desktop\iometer1.10\iometer_1.10_rc1__win_i386_x86_64\iometer-1.1.0-rc1-win64.x86_64-bin\iometer.exe')#运行硬盘压力软件

winwait("c:\users\panlin\desktop\1.au3*scite(acn)","")

ifnotwinactive("c:\users\panlin\desktop\1.au3*scite(acn)","")thenwinactivate("c:\users\panlin\desktop\1.au3*scite(acn)","")

winwaitactive("c:\users\panlin\desktop\1.au3*scite(acn)","")

mousemove(1262,20)

mousedown("left")

mousemove(1260,20)

mouseup("left")

winwait("iometer-1.1.0-rc1-win64.x86_64-bin","")#激活硬盘压力窗口

ifnotwinactive("iometer-1.1.0-rc1-win64.x86_64-bin","")thenwinactivate("iometer-1.1.0-rc1-win64.x86_64-bin","")#判断是否激活软件窗口

winwaitactive("iometer-1.1.0-rc1-win64.x86_64-bin","")

mousemove(272,172)

mousedown("left")

mouseup("left")

mousedown("left")

mouseup("left")#激活窗口后将鼠标移动至指定操作位置

winwait("programmanager","")

ifnotwinactive("programmanager","")thenwinactivate("programmanager","")

winwaitactive("programmanager","")#判断是否选中软件可操作按钮

mousemove(1032,750)

mousedown("left")

mouseup("left")

mousemove(949,762)

mousedown("left")

mouseup("left")

mousemove(702,754)

mousedown("left")

mouseup("left")

mousemove(664,752)

mousedown("left")

mouseup("left")

mousemove(712,764)

mousedown("left")

mouseup("left")

mousemove(672,759)

mousedown("left")

mouseup("left")

mousemove(664,754)

mousedown("left")

mouseup("left")

mousemove(630,751)

mousedown("left")

mousemove(629,751)

mouseup("left")#添加一个worker、对所添加的worker添加一个盘符和一个数据块

#endregion。

参见图3,图3为本身申请实施例提供的一种windows下硬盘压力自动测试系统的结构示意图。由图3可知,本申请实施例中的硬盘压力自动测试系统主要包括:导入模块1、测试参数自动设置模块2以及硬盘压力测试模块三个部分,其中,导入模块1用于引导进入硬盘压力测试软件,测试参数自动设置模块2用于利用autoit工具向操作系统发送命令,对硬盘压力测试软件自动设置测试参数,硬盘压力测试模块3用于根据测试参数自动设置模块所设置的测试参数,自动进行硬盘压力测试。

其中,测试参数自动设置模块2又可以包括:worker添加单元、数据块添加单元、盘符添加单元、判断单元以及测试时间设置单元五个部分。worker添加单元用于根据cpu线程和硬盘压力测试软件中worker添加键的位置,利用mousemove命令添加执行硬盘压力测试的worker,所述worker与cpu线程一一对应;数据块添加单元用于根据硬盘压力测试软件中数据块添加键的位置,利用mousemove命令对每个worker依次添加m个数据块;盘符添加单元用于根据硬盘压力测试软件中盘符添加键的位置,利用mousemove命令对每个worker依次添加n个盘符;判断单元用于判断所有执行硬盘压力测试的worker以及每个worker所对应的m个数据块和n个盘符是否添加完毕;测试时间设置单元用于根据硬盘压力测试软件中测试时间设置键的位置,利用mousemove命令对所有worker设置测试时间。

进一步地,本申请实施例中的测试系统还可以包括硬盘压力窗口激活模块,用于利用winactive命令,激活硬盘压力测试软件中的硬盘压力窗口。

本申请实施例中硬盘压力自动测试系统的工作原理和过程在图1和图2所示的硬盘压力自动测试系方法中已经详细阐述,在此不再赘述。

以上所述只是本申请的可选实施方式,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本申请的保护范围。

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