具体实施方式
有关本发明的特征与实作,兹配合图示作较佳实施例详细说明如下。
请参考图1,此图为本发明一实施例的虚拟磁盘设备的测试方法的整体步骤流程图,如图所示,本发明的一种虚拟磁盘设备的测试方法,是包含以下步骤:
将用于创建用户指定类型的虚拟磁盘设备的共享磁盘镜像档案放置于被测计算机的本地,并透过将储存有创建用户指定虚拟磁盘设备的相关配置命令的xml档案发送至被测计算机的管理芯片,藉以为被测计算机创建出相应的虚拟磁盘设备(步骤100);
对被测计算机的虚拟只读-光盘/数字影音光盘设备进行识别(步骤101);
对被测计算机的虚拟软式磁盘/可移动磁盘设备进行识别(步骤102);
对被测计算机的虚拟只读-光盘/数字影音光盘设备进行读测试,藉以判断被测计算机的虚拟只读-光盘/数字影音光盘设备的功能是否正常(步骤103);
对被测计算机的虚拟软式磁盘/可移动磁盘设备进行读测试与写测试,藉以判断被测计算机的虚拟软式磁盘/可移动磁盘设备的功能是否正常(步骤104)。
现在请参考图2,此图为本发明的虚拟磁盘设备的测试方法中虚拟磁盘设备创建方法的流程图,如图所示,本发明的测试方法中虚拟磁盘设备的自动化创建方法是包含以下步骤:
获取用户指定本次测试所需创建的虚拟USB设备的类型(步骤200),例如:虚拟软式磁盘(Virtual Floppy)设备、虚拟可移动磁盘(Virtual RemovableDisk)设备、虚拟只读-光盘/数字影音光盘(Virtual CD/DVD-ROM)设备等;
验证用于创建用户指定类型的虚拟磁盘设备的共享磁盘镜像档案是否存在(步骤201),若存在,则检测此镜像档案中储存的“虚拟磁盘设备标志档案”与用户指定要创建的虚拟磁盘设备类型是否相符(步骤202),若不存在,则报错并退出创建;
如果“虚拟磁盘设备标志档案”与用户指定要创建的虚拟磁盘设备类型相符,则检测当前系统中是否已经存在虚拟磁盘设备(步骤203),若存在,则断开当前系统中已经存在的虚拟磁盘设备的连接(步骤204),而后,创建xml档案(步骤205),此xml档案中储存有创建用户指定虚拟磁盘设备的相关配置命令,若不存在,则直接执行步骤205,如果“虚拟磁盘设备标志档案”与用户指定要创建的虚拟磁盘设备类型不相符,则报错并退出创建;
发送相应的xml档案到被测计算机的Gromit管理芯片,藉以实现“插入虚拟磁盘镜像档案”的功能(步骤206);
发送相应的xml档案到被测计算机的Gromit管理芯片,藉以实现“利用插入的虚拟磁盘镜像档案创建出相应的虚拟磁盘设备”的功能(步骤207);
扫描系统中当前的磁盘设备信息,监测判断是否创建出虚拟磁盘设备(步骤208),如果是,则结束创建并准备执行后续步骤,如果否,则报错并退出创建。
上述本发明所提供的虚拟磁盘设备的自动化创建方法,其只需要一台被测计算机,并将用于制作虚拟磁盘设备的镜像档案放置在被测计算机上即可。计算机程序可根据用户所需创建的虚拟磁盘设备的类型,自动生成存有虚拟磁盘设备配置命令的xml档案,并直接发送此xml档案至被测计算机的Gromit管理芯片,进而绕过现有技术中被测计算机“不允许自己连接自己的管理接口”的限制,这样便可以达到仅利用一台计算机完成整个创建过程的目的。而且此种创建方法中用于制作虚拟磁盘设备的磁盘镜像档案是位于被测计算机的本地,因此不会出现多台计算机利用同一个磁盘镜像档案进行测试而产生测试冲突的问题,也不会受网络远程连接数目的限制。
本发明的虚拟磁盘设备的测试方法中,对虚拟磁盘设备的自动识别是主要利用设备盘符扫描、储存设备循环遍历、USB总线遍历、虚拟磁盘设备标志档案遍历来实现。对于不同类型的虚拟磁盘设备,其自动识别的方法会有所不同。
现在请参考图3,此图为本发明的虚拟磁盘设备的测试方法中虚拟只读-光盘/数字影音光盘(Virtual CD/DVD-ROM)设备识别方法的流程图,如图所示,本发明的测试方法中虚拟只读-光盘/数字影音光盘设备的自动识别方法是包含以下步骤:
扫描出系统中当前存在的所有盘符(步骤300);
检测扫描出的第n个盘符的设备类型是否为DRIVE_CD/DVD ROM(步骤301),若是,则继续执行步骤302,若不是,则跳转到步骤305;
遍历USB总线,检测扫描出的第n个盘符所对应的设备是否挂接在USB总线上(步骤302),若是,则继续执行步骤303,若不是,则跳转到步骤305;
检测扫描出的第n个盘符中是否存在“虚拟磁盘设备标志档案”(步骤303),若是,则继续执行步骤304,若不是,则跳转到步骤305;
将此盘符记录到Virtual CD/DVD-ROM设备列表中(步骤304);
判断系统中是否还存在未检测的盘符(步骤305),若是,则返回到步骤301,继续对其它盘符进行检测,若不是,则执行步骤306;
检测Virtual CD/DVD-ROM设备列表中存在的盘符数目(步骤306),若盘符数目为0,则报错:未检测到Virtual CD/DVD-ROM设备(步骤307),然后结束;若盘符数目大于1,则警告:检测到过多的Virtual CD/DVD-ROM设备(步骤308),然后结束;若盘符数目为1,则提示:成功检测到一个VirtualCD/DVD-ROM设备(步骤309),然后结束。(注:在正常情况下,系统中仅会存在一个Virtual CD/DVD-ROM设备。)
现在请参考图4,此图为本发明的虚拟磁盘设备的测试方法中虚拟软式磁盘/可移动磁盘(Virtual Floppy/Removable Disk)设备识别方法的流程图,如图所示,本发明的测试方法中虚拟软式磁盘/可移动磁盘设备的自动识别方法是包含以下步骤:
扫描出系统中当前存在的所有盘符(步骤400);
检测扫描出的第n个盘符的设备类型是否为DRIVE_REMOVABLE(步骤401),若是,则继续执行步骤402,若不是,则跳转到步骤407;
遍历USB总线,检测扫描出的第n个盘符所对应的设备是否挂接在USB总线上(步骤402),若是,则继续执行步骤403,若不是,则跳转到步骤407;
检测扫描出的第n个盘符中是否存在“虚拟磁盘设备标志档案”(步骤403),若是,则继续执行步骤404,若不是,则跳转到步骤407;
将此盘符记录到虚拟可移动设备(Virtual Removable Device)列表中(步骤404);
判断用户是否要求区分出详细的虚拟磁盘设备类型(步骤405),若用户要求区分出详细的虚拟磁盘设备类型,则可透过遍历注册表及获取磁盘容量的方式区分出此次遍历到的虚拟可移动设备是虚拟Floppy设备还是虚拟U盘设备(步骤406),若用户不要求区分出详细的虚拟磁盘设备类型,则跳转到步骤407;
判断系统中是否还存在未检测的盘符(步骤407),若是,则返回到步骤401,继续对其它盘符进行检测,若不是,则执行步骤408;
检测虚拟可移动设备列表中存在的盘符数目(步骤408),若盘符数目为0,则报错:未检测到虚拟可移动设备(步骤409),然后结束;若盘符数目大于1,则警告:检测到过多的虚拟可移动设备(步骤410),然后结束;若盘符数目为1,则提示:成功检测到一个虚拟可移动设备(步骤411),然后结束。(注:在正常情况下,系统中仅会存在一个虚拟可移动设备。)
本发明的虚拟磁盘设备的测试方法中,对虚拟磁盘设备的自动测试可采用如下的几种测试方法来实现:
(一)、虚拟磁盘设备快速测试方法
此快速测试方法将不会区分虚拟磁盘设备的类型,即,针对不同类型的虚拟磁盘设备均采用相同的测试方案。请参考图5,此图为本发明的虚拟磁盘设备的测试方法中虚拟磁盘设备快速测试方法的流程图,如图所示,本发明的测试方法中虚拟磁盘设备的快速测试方法是包含以下步骤:
扫描并记录系统中当前存在的所有盘符(步骤500);
创建虚拟磁盘设备(步骤501);
再次扫描并记录系统中当前存在的所有盘符(步骤502);
判断第二次扫描过程中是否有新的盘符产生(步骤503),若有,则继续执行步骤504,若没有新的盘符产生,则说明此被测计算机的虚拟磁盘设备功能不正常,报错并退出测试;
检测扫描出的新盘符中是否存在“虚拟磁盘设备标志档案”(步骤504),若存在,则继续执行步骤505,若不存在,则说明此被测计算机的虚拟磁盘设备功能不正常,报错并退出测试;
检测新盘符中储存的数据信息是否可以成功访问(步骤505),若可访问,则说明此被测计算机的虚拟磁盘设备功能正常,可结束测试,若不可访问,则说明此被测计算机的虚拟磁盘设备功能不正常,报错并退出测试。
上述的快速测试方法的优点在于测试速度较快,但不能根据虚拟磁盘设备的属性进行测试,因此测试还不够全面。
(二)、虚拟磁盘设备高级测试方法
此高级测试方法与上述快速测试方法的区别在于:其将根据虚拟磁盘设备的具体类型、设备的读写属性等信息采取不同的测试方案,即,对于不同类型的虚拟磁盘设备,其自动测试的方法也会有所不同。
1、虚拟只读-光盘/数字影音光盘(Virtual CD/DVD-ROM)设备的高级测试方法
由于Virtual CD/DVD-ROM设备均为只读设备,因此针对此类虚拟磁盘设备的测试,仅进行读测试即可。本发明的测试方法中Virtual CD/DVD-ROM设备的高级测试方法是包含以下步骤:
(1)以用户指定的镜像档案创建出一个Virtual CD/DVD-ROM设备;
(2)调用“虚拟CD/DVD-ROM设备自动识别”程序模块,藉以监测是否创建出Virtual CD/DVD-ROM设备,若没有创建出Virtual CD/DVD-ROM设备或创建出了多个Virtual CD/DVD-ROM设备,则说明此被测计算机的虚拟磁盘设备功能不正常,报错并退出测试;
(3)获取创建出的Virtual CD/DVD-ROM设备所对应的盘符信息;
(4)打开用户指定的用于制作Virtual CD/DVD-ROM设备的镜像,从中选择任意一个档案,将其内容读取到内存A中;
(5)打开创建出的Virtual CD/DVD-ROM设备,从中查找在步骤(4)中选定的档案是否存在,若存在则将此档案的内容读取到内存B中,若不存在则说明此被测计算机的虚拟磁盘设备功能不正常,报错并退出测试;
(6)比较内存A中的数据与内存B中的数据是否完全一致,若不一致则说明此被测计算机的虚拟磁盘设备功能不正常,报错并退出测试;
(7)若用户需要全面测试,则返回到步骤(4),选择镜像中的其它档案进行读取比较测试,直至镜像中的全部档案均与创建出的Virtual CD/DVD-ROM设备中的相应档案进行过读取比较测试;
(8)销毁创建的Virtual CD/DVD-ROM设备,然后结束测试。
2、虚拟软式磁盘/可移动磁盘(Virtual Floppy/Removable Disk)设备的高级测试方法
由于Virtual Floppy/Removable Disk设备为可擦写设备,所以针对此类虚拟磁盘设备的测试需要在上述Virtual CD/DVD-ROM设备的高级测试方法的基础上增加写测试流程。本发明中Virtual Floppy/Removable Disk设备的高级测试方法可分为读测试与写测试两个部份,是分别包含以下步骤:
读测试:
对Virtual Floppy/Removable Disk设备的读测试方案与上述的对Virtual CD/DVD-ROM设备的读测试方案基本相同,只是用于创建虚拟磁盘设备所使用的镜像档案不同,以及所调用的虚拟磁盘设备自动识别程序模块不同(在对Virtual Floppy/Removable Disk设备进行读测试时需调用“虚拟Floppy/Removable Disk设备自动识别”程序模块),因此不再赘述。
写测试(如图6所示):
以用户指定的镜像档案创建出一个虚拟可移动设备(Virtual RemovableDevice)(步骤600),其中,此虚拟可移动设备可以是虚拟软式磁盘(VirtualFloppy)设备或虚拟可移动磁盘(Virtual Removable Disk)设备;
调用“虚拟Floppy/Removable Disk设备自动识别”程序模块,藉以监测是否创建出虚拟可移动设备(步骤601),若没有创建出虚拟可移动设备或创建出了多个虚拟可移动设备,则说明此被测计算机的虚拟磁盘设备功能不正常,报错并退出测试;
检测创建出的虚拟可移动设备中是否存在“虚拟磁盘设备标志档案”(步骤602),若不存在则说明此被测计算机的虚拟磁盘设备功能不正常,报错并退出测试;
打开“虚拟磁盘设备标志档案”并判断其档案内容与所创建的虚拟可移动设备类型是否相符(步骤603),如不相符则说明此被测计算机的虚拟磁盘设备功能不正常,报错并退出测试;
在创建出的虚拟可移动设备中创建一个测试档案(步骤604),并将用户指定的测试模式(pattern)写入到此测试档案中(步骤605);
将测试档案中的信息读出,与用户指定写入的测试模式进行比较,看两者是否完全相符(步骤606),如不相符则说明此被测计算机的虚拟磁盘设备功能不正常,报错并退出测试;
销毁已创建的虚拟可移动设备,以相同的镜像档案再次创建一个新的虚拟可移动设备(步骤607);
重新扫描新创建出的虚拟可移动设备(步骤608);
判断新创建出的虚拟可移动设备中是否存在步骤604中创建的测试档案(步骤609),若不存在,则报错并退出测试;
将测试档案中的信息读出,并与用户指定写入的测试模式再次进行比较,藉以判断两者是否完全相符(步骤610),如不相符,则说明此被测计算机的虚拟磁盘设备功能不正常,报错并退出测试;
如相符,则删除虚拟可移动设备中存在的测试档案(步骤611);
销毁创建的虚拟可移动设备(步骤612),然后结束测试。
至此,本发明的虚拟磁盘设备的测试方法全面得以实现。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。