RSS订阅 | 匿名投稿
您的位置:网站首页 > 服务支持 > 正文

一种usb设备的硬件通用测试方法

作者:habao 来源: 日期:2018-3-27 1:24:41 人气: 标签:智能卡设备枚举服务

  由于不同计算机的芯片组使用不同的USB控制器,故访问USB设备的方式会出现差异,即兼容性存在缺陷,所以需要检查USB设备在这些不同芯片组上使用是否存在隐患或者缺陷,目前,上述检查采用手工测试的方式进行。申请人:在完成本发明的过程中发现,现有技术至少存在以下缺陷:1、测试过程比较繁琐,需要较多的人力和其它资源来支持;2、测试所覆盖的范围有限,会遗漏一些;3、使用手工测试会导致USB设备接口的磨损比较大,并且存在由于人工失误而导致的问题。

  本发明的目的是为了克服现有技术的缺陷,提出一种USB设备的硬件通用测试方法。本发明提供了一种USB设备的硬件通用测试方法,所述方法由测试平台根据配置文件自动执行,具体包括:

  步骤A、读取所述配置文件中的测试状态项,根据所述测试状态项判断需要执行的操作,若为恢复操作系统则执行步骤B,若为测试则执行步骤F,若为其他则结束;步骤B、读取所述配置文件中的操作系统指向项,根据所述操作系统指向项查找所述配置文件中的当前操作系统,并读取与当前操作系统对应的状态项,根据所述状态项判断是否要对待测试设备在当前操作系统下进行测试,是则执行步骤C,否则判断当前操作系统是否为所述配置文件中的最后一个操作系统,若为所述配置文件中的最后一个操作系统则结束,若不为所述配置文件中的最后一个操作系统则更新所述操作系统指向项,继续执行步骤B ;步骤C、读取与当前操作系统对应的备份文件名称项和备份文件所在径项,根据所述备份文件名称项和备份文件所在径项生成第一批处理文件,获取所述测试平台当前的操作系统的名称和补丁名称,并根据所述测试平台当前的操作系统的名称和补丁名称查找所述配置文件中相应的操作系统,读取所述相应的操作系统的全局唯一标识符项,根据所述全局唯一标识符项生成第二批处理文件,执行所述第二批处理文件来设置系统的默认启动项为WinPE启动以及设置系统的默认启动延时时间;步骤D、更新所述配置文件中的测试状态项,标识需要执行的操作为测试,重新启动操作系统,返回执行步骤A ;步骤F、对所述测试平台上连接的USB设备进行枚举,生成待测试设备列表,根据所述待测试设备列表对待测试设备在当前操作系统下进行测试;

  步骤G、读取所述配置文件中的操作系统指向项和操作系统数量项,判断当前操作系统是否为所述配置文件中的最后一个操作系统,是则结束,否则更新所述配置文件中的测试状态项,标识需要执行的操作为恢复操作系统,更新所述配置文件中的操作系统指向项,返回执行步骤A。进一步地,所述根据所述测试状态项判断需要执行的操作还包括:若为安装驱动则执行步骤E ;步骤E、读取所述配置文件中的驱动程序名称项,根据所述驱动程序名称项生成第三批处理文件或脚本文件,执行所述第三批处理文件或脚本文件来安装驱动程序,更新所述配置文件中的测试状态项,标识需要执行的操作为测试,重新启动操作系统,返回执行步骤A;相应地,所述步骤C和所述步骤D之间还包括:步骤①、读取所述配置文件中的安装标识,根据所述安装标识判断是否需要安装驱动,是则执行步骤③,否则执行步骤②;步骤②、读取 所述配置文件中的设备类型项,根据所述设备类型项的值判断待测试设备是否为USB芯片智能卡接口设备,是则执行步骤③,否则执行步骤D ;步骤③、根据所述配置文件中的当前操作系统的操作系统名称项判断是否需要安装驱动,是则执行步骤④,否则执行步骤D ;步骤④、更新所述配置文件中的测试状态项,标识需要执行的操作为安装驱动,重新启动操作系统,返回执行步骤A。本发明方法的有益效果在于:节省测试资源中的人力,可覆盖不同的PC系统平台,能够发现固件/硬件级的兼容性问题,可对测试过程中的执行频度进行控制,减少对USB设备接口的磨损,排除由于人工失误而导致的问题。

  为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例一提供的一种USB设备的硬件通用测试方法流程图;图2为图1中步骤111的细化流程图;图3为图2中步骤Si的细化流程图;图4为图2中步骤s4的细化流程图;图5为图4中步骤G4-8的细化流程图;图6为本发明实施例二提供的一种测试过程中生成的日志文件进行归类分析得到测试结果文件的方法流程图。

  具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的范围。实施例一本发明实施例一提供一种USB设备的硬件通用测试方法,所述方法由测试平台根据配置文件自动执行;具体地,所述配置文件包含测试状态项、驱动程序名称项、操作系统数量项、操作系统指向项以及各操作系统的具体信息项,其中,所述各操作系统的具体信息项包括操作系统的备份文件名称项、操作系统的名称项、操作系统的补丁名称项、操作系统对应的WinPECffindows Preinstall Environment, Windows 预安装)的 GUID(Globally UniqueIdentifier,全局唯一标识符)值项、操作系统的状态项以及操作系统的备份文件所在径项;所述WinPE是用于进行系统恢复和备份的软件,是带有限服务的Windows子系统,基于以模式运行的Windows XP Professional内核和Vista内核,包括运行Windows安装程序及脚本、连接网络共享、自动化基本过程以及执行硬件验证所需的最小功能;参见图1,所述方·法具体包括以下步骤:步骤101:读取配置文件中的测试状态项,根据所述测试状态项判断需要执行的操作,若为恢复操作系统则执行步骤102,若为安装驱动则执行步骤108,若为测试则执行步骤111,否则结束;优选地,在本实施例中,所述配置文件如下:;test state, 1:configer, 2: Auto Install, 3: testSTATE=3;Device Driver nameSDKNAME=印201laut0.exe;the system total0SNUM=3;the current system idCURR0SID=0BAKNAME0=ffinXPProSP3.GHOOSNAMEO=Windows XP ProfessionalPATCHO=Service Pack3⑶ID0={7619dcc9-fe-lld9-beba25f}FLAGO=ODEVO=E:BAKNAMEl=ffindows7ult.GHOOSNAMEl=ffindows7 Ultimatepatchi=null⑶IDl={7619dcc9-fe-lld9-beba25f}FLAGl=ODEVl=E:

  BAKNAME2=ffindows7ultspl.GHO0SNAME2=ffindows7 UltimatePATCH2=Service Packl⑶ID2={7619dcc9-fe-1Id9-b41l-000476eba25f}FLAG2=0DEV2=E:其中,STATE项为测试状态项,STATE=I标识需要执行的操作为恢复操作系统,STATE=2标识需要执行的操作为安装驱动,STATE=3标识需要执行的操作为测试;SDKNAME项为驱动程序名称项,标识驱动程序的名称;0SNUM项为操作系统数量项,标识配置文件中操作系统的个数;CURROSID项为操作系统指向项,标识配置文件中的当前操作系统的编号;BAKNAME、OSNAME, PATCH、GUID、FLAG和DEV项为各操作系统的具体信息项,其中BAKNAME项为备份文件名称项,标识操作系统的备份文件名称、OSNAME项为操作系统的名称项,标识操作系统的名称、PATCH项为操作系统的补丁名称项,标识操作系统的补丁的名称、⑶ID项为操作系统对应的WinPE的⑶ID值项,标识操作系统对应的WinPE的⑶ID值、FLAG项为操作系统的状态项,FLAG=O标识该操作系统需要测试,FLAG=I标识该操作系统正在测试,FLAG=2标识该操作系统已完成测试,FLAG=3标识该操作系统不需要测试,DEV项为操作系统的备份文件所在径项,标识操作系统的备份文件所在的径;标识配置文件中操作系统的属性的各项都带有一个编号,所述编号与操作系统的编号一致,方便当CURR0SID项的值等于该操作系统的编号时查找到标识该操作系统的属性的各项;相应地,根据上述配置文件实例,步骤101具体为:读取配置文件中STATE项,判断所述STATE项的值,若为I则执行步骤102,若为2则执行步骤108,若为第3则执行步骤111,否则结束; 步骤102:读取配置文件中的操作系统指向项,根据所述操作系统指向项查找当前操作系统;根据上述配置文件实例,步骤102具体为:读取配置文件中的⑶RROSID项,根据所述CURR0SID项的值查找配置文件得到配置文件中的当前操作系统;步骤103:读取当前操作系统对应的状态项,根据所述状态项判断是否要对待测试设备在当前操作系统下进行测试,是则执行步骤105,否则执行步骤104 ;根据上述配置文件实例,步骤103具体为:读取配置文件中当前操作系统的FLAG项,判断所述FLAG项的值是否为0,是则执行步骤105,否则执行步骤104 ;步骤104:判断配置文件中的当前操作系统是否为配置文件中的最后一个操作系统,是则结束,否则更新所述操作系统指向项,使之指向配置文件中的下一操作系统,返回执行步骤102 ;根据上述配置文件实例,步骤104具体为:修改配置文件中的⑶RROSID项的值为其当前值加I,返回执行步骤102 ;步骤105:读取配置文件中当前操作系统对应的备份文件名称项和备份文件所在径项,根据所述备份文件名称项和备份文件所在的径项生成第一批处理文件;根据上述配置文件实例,步骤105具体为:读取配置文件中当前操作系统的BAKNAME项的值和DEV项的值,根据所述BAKNAME项的值和DEV项的值生成第一批处理文件,设置下一次恢复到WinPE,系统重启后自动进入配置文件中的当前操作系统;例如,所述配置文件中的当前操作系统的BAKNAME项的值为WinXPProSP3.GH0,DEV项的值为E:,生成的第一批处理文件为 e:\ghost32.exe -clone, mode=pload, src=E:\WinXPProSP3.GHO:1, dst=l:1 /sure /rb ;步骤106:获取测试平台当前的操作系统名称和补丁名称,根据所述测试平台当前的操作系统名称和补丁名称查找配置文件中相应的操作系统并读取其对应的WinPE的⑶ID项,根据所述⑶ID项生成第二批处理文件并执行;具体地,所述获取测试平台当前的操作系统名称和补丁名称可通过以下方法实现:打开注册表 HLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion,获取ProductName的值得到操作系统名称,获取CSDVersion的值得到操作系统的补丁的名称,关闭所述注册表;根据上述配置文件实例,所述根据所述测试平台当前的操作系统名称和补丁名称查找配置文件中相应的操作系统并读取其对应的WinPE的GUID项具体为:获取配置文件中OSNAME项的值和PATCH项的值分别与测试平台当前操作系统的名称和补丁名称相同的操作系统的⑶ID项;例如,测试平台当前操作系统的名称为Windows 7 Ultimate、补丁名称为ServicePack 1,配置文件中OSNAME项的值和PATCH项的值分别与测试平台当前操作系统的名称和补丁名称相同的操作系统的⑶ID项的值为{7619dcc9-fe-lld9-beba25f},生成包含下述两条指令的第二批处理文件为:d:\system32\bcdedit /store c:\boot\bcd /deult {7619dcc9-fe-lld9-b4ll-000476eba25f}d:\system32\bcdedit /store c:\boot\bcd /timeout 5;其中第一条指令的作用是将系统的默认启动项设置为WinPE启动,第二条指令的作用是将系统的默认启动延时时间设置为5秒;BCDEdit 是 NT60 系列操作系统(Windows 7/Vista/2008/8/2012)中的一个命令执行工具,用于建立和重新配置boot loader。所谓boot loader,在指在内核运行之前执行的一段小程序,系统通过它来初始化硬件设备、建立内存空间的映射图等,将系统的软硬件设置成一个合适的状态,为最终调用操作系统内核准备好正确的;步骤107:更新配置文件中的测试状态项,标识需要执行的操作为安装驱动,重新启动操作系统,返回执行步骤101 ;根据上述配置文件实例,步骤107具体为:修改配置文件中的STATE项的值为第二预设值,重新启动操作系统,返回执行步骤101 ;进一步地,步骤107之前可包括:步骤a、读取所述配置文件中的安装标识,根据所述安装标识判断是否需要安装驱动,是则执行步骤107,否则执行步骤b ;步骤b、读取所述配置文件中的设备类型项,根据所述设备类型项的值判断待测试设备是否为USB芯片智能卡接口设备,是则执行步骤C,否则执行步骤d ; 步骤C、根据所述配置文件中的当前操作系统的操作系统名称项判断是否需要安装驱动,是则执行步骤107,否则执行步骤d ;

  步骤d、更新所述配置文件中的测试状态项,标识需要执行的操作为测试,重新启动操作系统,返回执行步骤101 ;具体地,步骤107和步骤d中重新启动操作系统后包括:测试平台在第二批处理文件中设置的延迟时间之后进入WinPE,自动执行所述第一批处理文件,执行完所述第一批处理文件后操作系统自动重新启动,待操作系统再次启动后进入所述第一批处理文件中指定的操作系统,即配置文件中的当前操作系统;步骤107和步骤d中重新启动操作系统之后,执行步骤101之前可包括:判断恢复操作系统操作是否成功,是则执行步骤101,否则进行异常处理;步骤108:读取配置文件中的驱动程序名称项,根据所述驱动程序名称项生成第三批处理文件/脚本文件并执行;根据上述配置文件实例,步骤108具体为:读取配置文件中SDKNAME项,生成批第三处理文件/脚本文件,执行所述第三批处理文件/脚本文件;例如,所述SDKNAME项的值为印2011aut0.exe,生成第三批处理文件:start /wait E:\FeiTianAutoTest0ut\eP2Kaut0.exe /S或者生成vbs脚本文件 :Set.WshShell=CreateObject(Wscript.Shell)strCommandLine = 〃eP2011Aut0.exeWshShel1.Run(strCommandLine)WScript.Sleep 3000WshShel1.SendKeys 〃 {ENTER}WScript.Sleep 3000步骤109:更新当前操作系统的状态项,标识当前操作系统正在测试;根据上述配置文件实例,步骤109具体为:修改配置文件中当前操作系统的FLAG项的值为1,标识正在对待测试设备在当前操作系统下进行测试;步骤110:更新配置文件中的测试状态项,标识需要执行的操作为测试,重新启动操作系统,返回执行步骤101 ;根据上述配置文件实例,步骤110具体为:修改配置文件中STATE项的值为第三预设值,重新启动操作系统,返回执行步骤101 ;步骤111:对测试平台上连接的USB设备进行枚举,生成待测试设备列表,根据所述待测试设备列表对各待测试设备在当前操作系统下进行测试;当测试未完成时包括:进行异常中断处理;其中,所述测试未完成是指在整个测试流程中,测试没有按照预设置的过程执行完成,而是在中途由于某种原因中止了,或者无法继续执行;当测试完成时包括:若测试结果为测试通过则执行步骤112或获取测试平台的IP以及获取测试平台的USB控制器名称、CPU名称以及主板名称,记录软件测试以及测试步骤,生成日志文件,执行步骤112 ;若测试结果为未通过则结束或获取测试平台的IP以及获取测试平台的USB控制器名称、CPU名称以及主板名称,记录软件测试、测试步骤以及错误描述等信息,生成日志文件,执行步骤112 ;其中,所述获取测试平台的IP是使用Windows Sock2的API接口实现的,具体包括:对Winsock服务的初始化、获取本地主机名称、获取主机的地址信息以及将一个IP转换成一个互联网标准点分格式的字符串;所述获取测试平台的USB控制器名称、CPU名称以及主板名称是采用WMI COM组件进行的,具体包括:初始化丽I COM组件,创建一个丽I命名空间连接,使用m_pWbemloc连接到“root\cimv2”并设置m_pWbemSvc的指针,设置WMI连接的安全性,使用Win32_USBController的Caption的值获取USB控制器名称,使用Win32_Processor的Name的值获取CPU名称,使用Win32_BaseBoard的Manucturer值获取主板名称,WIM COM组件;优选地,参见图2,步骤111包括:sO、分配并初始化设备数组;S1、枚举 USB HCD (Host Controller Driver,主控制器),获取 USB HCD 的个数和各USB HCD对应的Root Hub (根集线器)的名称,将获取到的Root Hub的名称存入所述设

  备数组中,设置第一索引值为O;s2、判断第一索引值是否小于所述USB HCD的个数,是则执行s4,否则执行s3 ;S3、根据所述待测试设备列表对各待测试设备在当前操作系统下进行测试,执行步骤112 ;

  具体地,所述待测试设备列表中包括:待测试设备的PID (Product Identity,产品编码)、VID (Vendor Identity,运营商代码编码)、句柄以及连接方式,若待测试设备的连接方式为没有辅助设备,则对所述待测试设备进行第一测试操作和第二测试操作,若待测试设备的连接方式为通过Hubl.1/Hub 2.0/ Hub 3.0连接,则对所述待测试设备进行第一测试操作;其中,所述第一测试操作包括:①对待测试设备进行PNP (Plug-and-Play,即插即用)识别和通信测试;优选地,在本实施例中,对待测试设备进行PNP识别具体为:调用操作系统提供的API接口向待测试设备发送获取PID和VID命令,判断是否接收到待测试设备返回的PID和VID,是则待测试设备可识别,否则生成相应日志文件,其中所述日志文件可以包括:命令名称、错误码、当前操作系统名称以及USB控制器名称等;对待测试设备进行通信测试具体为:调用操作系统提供的API接口向待测试发送读写命令,判断是否接收到待测试设备返回的读命令读取的数据或写命令执行成功的响应,是则待测试设备通信正常,否则生成相应日志文件记录错误日志信息,其中所述错误日志信息可以包括:命令名称、错误码、当期那操作系统名称以及USB控制器名称等;②对待测试设备进行禁用/启用操作后再进行PNP识别和通信测试;优选地,所述对被测试的USB设备进行禁用/启用电是通过操作系统提供的电源管理工具,组成相应的脚本数据或批处理文件,执行所述脚本数据或批处理文件;也可以调用系统提供的API函数进行;③对待测试设备进行下电/上电操作后再进行PNP识别和通信测试;优选地,在本实施例中,所述对待测试设备进行下电/上电操作具体为:通过操作系统提供的电源管理工具,组成相应的脚本数据或批处理文件,执行所述脚本数据或批处理文件;也可以调用系统提供的API函数进行。④对待测试设备进行连续预设次下电/上电操作后再进行PNP识别和通信测试;其中,所述预设次为50次;

  优选地,在本实施例中,所述对待测试设备进行下电/上电操作具体为:通过操作系统提供的电源管理工具,组成相应的脚本数据或批处理文件,执行所述脚本数据或批处理文件;也可以调用系统提供的API函数进行。⑤对待测试设备进行预设次复位操作后再进行PNP识别和通信测试;优选地,所述对被测试的USB设备进行预设次复位操作具体为:调用操作系统提供的API接口向待测试设备发送RESET命令;其中,所述预设次为150次;⑥模拟笔记本的电源变化并对待测试设备进行PNP识别和通信测试;优选地,所述模拟笔记本的电源变化具体为:向操作系统电源管理消息;所述电源管理消息如:Msgl: PBT_APMQUERYSUSPENDThe PBT—APMQUERYSUSPEND event is broadcast to request permission tosuspend the computer.

  所述第二测试操作具体为:对待测试设备进行休眠/操作后再进行PNP识别和通信测试;优选地,在本实施例中,所述对待测试设备进行休眠/操作具体为向操作系统发送SLEEP命令,具体可以通过调用操作系统提供的API接口实现,或者通过调用测试平台本身的工具实现;需要说明的是,所述第一测试操作和第二测试操作可按预定顺序执行或同时执行,所述第一测试操作中的各操作也可按预定顺序执行或同时执行,在此不做限定;s4、根据第一索引值枚举指定USB HCD对应的Root Hub,获取当前Root Hub上连接的待测试设备的信息,存储到待测试设备列表中;具体地,所述待测试设备的信息包括待测试设备的:PID、VID、句柄以及连接方式;s5、更新第一索引值,返回执行步骤s2 ;具体地,更新第一索引值为其当前值加I ;进一步地,参见图3,步骤Si具体包括:步骤G2-1:分配并初始化设备数组,设置第二索引值和最大值;在本实施例中,设置第二索引值为0,设置最大值为16 ;步骤G2-2:判断第二索引值是否小于最大值,是则执行步骤G2-3,否则执行步骤s2 ;步骤G2-3: 根据第二索引值构建USB HCD的设备名称,使用尝试打开的方式进行枚举,判断尝试打开返回的句柄是否为无效值,是则执行步骤s2,否则获取当前USB HCD对应的Root Hub的名称,将获取到的Root Hub的名称存入所述设备数组中,关闭打开的USBHCD设备,执行步骤G2-4 ;具体地,构造的USB HCD的名称形如\\\\.\\HCD1 ;步骤G2-4:更新第二索引值,返回执行步骤G2-2 ;具体地,更新第二索引值为其当前值加I ;参见图4,步骤s4具体包括:步骤G4-1:构造当前Root Hub的设备名称,打开当前Root Hub设备,获取当前Root Hub各节点的连接信息;具体地,构造当前Root Hub的设备名称形如\\\\.WRoot Hub名称;步骤G4-2:判断当前Root Hub各节点上是否连接有USB设备,是则执行步骤G4-3,否则执行步骤s5 ;步骤G4-3:获取连接有USB设备的节点的个数,设置第三索引值为O ;步骤G4-4:判断第三索引值是否小于所述连接有的USB设备的节点的个数,是则执行步骤G4-5,否则执行步骤s5 ;步骤G4-5:根据第三索引值查询当前Root Hub的指定节点,获取所述指定节点上连接的USB设备的PID和VID、句柄以及连接方式;步骤G4-6:根据获取到的PID和VID判断所述指定节点上连接的USB设备的类型,若为待测试设备则执行步骤G4-7,若为Hubl.1/ Hub2.0/ Hub3.0则执行步骤G4-8,若为其他则执行步骤G4-9 ;步骤G4-7:将所述待测试设备的PID和VID、句柄以及连接方式保存到待测试设备列表中,执行步骤G4-9 ;步骤G4-8:枚举所述 HubL I/ Hub2.0/ Hub3.0,获取所述 HubL I/ Hub2.0/Hub3.0上连接的USB设备的PID和VID、句柄以及连接方式,根据获取到的PID和VID判断各USB设备是否为待测试设备,是则保存其PID和VID、句柄以及连接方式到待测试设备列表中,执行步骤G4-9,否则执行步骤G4-9 ;步骤G4-9:更新第三索引值,返回执行步骤G4-4 ;具体地,更新第三索引值为其当前值加I ;更进一步地,参见图5,步骤G4-8具体包括:i 构造所述Hubl.1/Hub2.0/Hub3.0 的设备名称,打开所述Hubl.1/Hub2.0/Hub3.0设备,获取所述Hubl.1/Hub2.0/Hub3.0各节点的连接信息;具体地,构造所述Hubl.1/Hub2.0/Hub3.0的设备名称形如\\\\.\\Root Hub名称WHub的设备名称;ii判断所述Hubl.1/Hub2.0/Hub3.0各节点上是否连接有USB设备,是则执行iii,否则执行步骤G4-9 ;iii获取连 接有USB设备的节点的个数,设置第四索引值为O ;iv判断第四索引值是否小于所述连接有USB设备的节点个数,是则执行V,否则执行步骤G4-9 ;在本实施例中,第四索引值的初始值为O ;V根据第四索引值查询所述Hubl.1/ Hub2.0/ Hub3.0的指定节点,获取所述指定节点上连接的USB设备的PID和VID、句柄以及连接方式;Vi根据获取到PID和VID判断所述指定节点上连接的USB设备是否为待测试设备,是则执行vii,否则执行viii ;vii将所述待测试设备的PID和VID、句柄以及连接方式到待测试设备列表中,执行 viii ;viii关闭打开的Hubl.1/Hub2.0/Hub3.0设备,更新第四索引值,返回执行iv ;具体地,更新第四索引值为其当前值加I ;步骤112:读取配置文件中的操作系统指向项和操作系统数量项,根据所述操作系统指向项和操作系统数量项判断当前操作系统是否为配置文件中最后一个操作系统,是则结束,否则执行步骤113;根据上述配置文件的示例,步骤112具体为:读取配置文件中的⑶RROSID项以及OSNUM项,判断所述CURR0SID项的值与所述OSNUM项的值是否相同,是则配置文件中的当前操作系统为配置文件中的最后一个操作系统,否则配置文件中的当前操作系统不为配置文件中的最后一个操作系统;进一步地,当前操作系统为所述配置文件中的最后一个操作系统时还包括:修改配置文件中的STATE项为第四预设值,对测试过程中生成的日志文件进行归类分析,得到测试结果文件;例如,测试过程中生成的日志文件如下,所述对测试过程中生成的日志文件进行归类分析得到测试结果文件的方法将在实施例二中进行阐述:日志文件一:

  1.一种USB设备的硬件通用测试方法,其特征在于,所述方法由测试平台根据配置文件自动执行,包括以下步骤: 步骤A、读取所述配置文件中的测试状态项,根据所述测试状态项判断需要执行的操作,若为恢复操作系统则执行步骤B,若为测试则执行步骤F,若为其他则结束; 步骤B、读取所述配置文件中的操作系统指向项,根据所述操作系统指向项查找所述配置文件中的当前操作系统,并读取与当前操作系统对应的状态项,根据所述状态项判断是否要对待测试设备在当前操作系统下进行测试,是则执行步骤C,否则判断当前操作系统是否为所述配置文件中的最后一个操作系统,若为所述配置文件中的最后一个操作系统则结束,若不为所述配置文件中的最后一个操作系统则更新所述操作系统指向项,继续执行步骤B ; 步骤C、读取与当前操作系统对应的备份文件名称项和备份文件所在径项,根据所述备份文件名称项和备份文件所在径项生成第一批处理文件,获取所述测试平台当前的操作系统的名称和补丁名称,并根据所述测试平台当前的操作系统的名称和补丁名称查找所述配置文件中相应的操作系统,读取所述相应的操作系统的全局唯一标识符项,根据所述全局唯一标识符项生成第二批处理文件,执行所述第二批处理文件来设置系统的默认启动项为WinPE启动以及设置系统的默认启动延时时间; 步骤D、更新所述配置文件中的测试状态项,标识需要执行的操作为测试,重新启动操作系统,返回执行步骤A ; 步骤F、对所述测试平台上连接的USB设备进行枚举,生成待测试设备列表,根据所述待测试设备列表对待测试设备在当前操作系统下进行测试; 步骤G、读取所述配置文件中的操作系统指向项和操作系统数量项,判断当前操作系统是否为所述配置文件中的最后一个操作系统,是则结束,否则更新所述配置文件中的测试状态项,标识需要执行的操作为恢复操作系统,更新所述配置文件中的操作系统指向项,返回执行步骤A。

  2.根据要求1所述的USB设备的硬件通用测试方法,其特征在于,所述根据所述测试状态项判断需要执行的操作还包括:若为安装驱动则执行步骤E ; 步骤E、读取所述配置文件中的驱动程序名称项,根据所述驱动程序名称项生成第三批处理文件或脚本文件,执行所述第三批处理文件或脚本文件来安装驱动程序,更新所述配置文件中的测试状态项,标识需要执行的操作为测试,重新启动操作系统,返回执行步骤A; 相应地,所述步骤C和所述步骤D之间还包括: 步骤①、读取所述配置文件中的安装标识,根据所述安装标识判断是否需要安装驱动,是则执行步骤④,否则执行步骤②; 步骤②、读取所述配置文件中的设备类型项,根据所述设备类型项的值判断待测试设备是否为USB芯片智能卡接口设备,是则执行步骤③,否则执行步骤D ; 步骤③、根据所述配置文件中的当前操作系统的操作系统名称项判断是否需要安装驱动,是则执行步骤④,否则执行步骤D ; 步骤④、更新所述配置文件中的测试状态项,标识需要执行的操作为安装驱动,重新启动操作系统,返回执行步骤A。

  3.根据要求2所述的USB设备的硬件通用测试方法,其特征在于, 所述根据所述测试状态项判断需要执行的操作包括:检查所述测试状态项的值,若为第一预设值则需要执行的操作为恢复操作系统,若为第二预设值则需要执行的操作为安装驱动,若为第三预设值则需要执行的操作为测试; 相应地,所述更新所述配置文件中的测试状态项,标识需要执行的操作为安装驱动具体为:更新所述配置文件中的测试状态项的值为第二预设值;所述更新所述配置文件中的测试状态项,标识需要执行的操作为测试具体为:更新所述配置文件中的测试状态项的值为第三预设值;所述更新所述配置文件中的测试状态项,标识需要执行的操作为恢复操作系统具体为:更新所述配置文件中的测试项的值为第一预设值。

  4.根据要求1所述的USB设备的硬件通用测试方法,其特征在于,所述根据所述状态项判断是否需要对待测试设备在当前操作系统下进行测试,包括: 判断所述状态项的值是否为第四预设值,是则需要对待测试设备在当前操作系统下进行测试;否则不需要对待测试设备在当前操作系统下进行测试。

  5.根据要求4所述的USB设备的硬件通用测试方法,其特征在于: 所述根据所述待测试设备列表对待测试设备在当前操作系统下进行测试之前还包括:更新所述配置文件中当前操作系统对应的状态项的值为第五预设值,标识正在对待测试设备在当前操作系统下进行测试; 所述根据所述待测试设备列表对待测试设备在当前操作系统下进行测试之后还包括:更新所述配置文件中当前操作系统对应的状态项为第六预设值,标识已完成对待测试设备在当前操作系统下的测试。

  6.根据要求1所述的USB设备的硬件通用测试方法,其特征在于,所述步骤C中所述配置文件中相应的操作系统具体为:所述配置文件中操作系统的名称项以及操作系统的补丁名称项分别与获取到的测试平台当前的操作系统名称以及补丁名称相同的操作系统。

  7.根据要求1所述的USB设备的硬件通用测试方法,其特征在于,所述步骤D中重新启动操作系统之后包括:测试平台在所述默认启动延迟时间之后进入Windows预安装,自动执行所述第一批处理文件来设置操作系统再次启动之后进入所述第一批处理文件中指定的操作系统,操作系统自动重新启动。

  8.根据要求2所述的USB设备的硬件通用测试方法,其特征在于,所述步骤④中重新启动操作系统之后包括:测试平台在所述默认启动延迟时间之后进入Windows预安装,自动执行所述第一批处理文件来设置操作系统再次启动之后进入所述第一批处理文件中指定的操作系统,操作系统自动重新启动。

  9.根据要求1所述的USB设备的硬件通用测试方法,其特征在于,所述待测试设备列表中包括:待测试设备的产品编码、运营商代码编码、句柄和连接方式。

  10.根据要求9所述的USB设备的硬件通用测试方法,其特征在于,所述步骤F具体包括: 步骤a、分配并初始化设备数组,枚举主控制器,获取所述主控制器的个数和各主控制器对应的根集线器的名称,将所述获取到的根集线器名称存入所述设备数组中,初始化第一索引值; 步骤b、判断第一索引值是否小于所述主控制器的个数,是则执行步骤C,否则根据所述待测试设备列表对各待测试设备在当前操作系统下进行测试; 步骤C、根据所述第一索引值枚举指定主控制器对应的根集线器,获取当前根集线器上连接的待测试设备的产品编码、运营商代码编码、句柄和连接方式,将获取到的信息存储到所述待测试设备列表中; 步骤d、更新第一索引值,返回执行步骤b。

  11.根据要求10所述的USB设备的硬件通用测试方法,其特征在于,所述步骤a具体包括: 步骤al、初始化所述设备数组,设置第二索引值和最大值; 步骤a2、判断所述第二索引值是否小于所述最大值,是则执行步骤a3,否则执行步骤b ; 步骤a3、根据所述第二索引值构建主控制器的设备名称,使用尝试打开的方式进行枚举,判断尝试打开返回的句柄是否为无效值,是则执行步骤b,否则执行步骤a4 ; 步骤a4、获取当前主控制器对应的 根集线器的名称,将获取到的根集线器的名称存入所述设备数组中,关闭打开的主控制器设备,更新第二索引值,返回执行步骤a2。

  12.根据要求10所述的USB设备的硬件通用测试方法,其特征在于: 所述连接方式包括:没有辅助设备的方式和通过集线连接的方式; 所述步骤c具体包括: 步骤Cl、构造当前根集线器的设备名称,打开当前根集线器设备,获取当前根集线器各节点的连接信息; 步骤c2、判断当前根集线器各节点上是否连接有USB设备,是则获取连接有USB设备的节点的个数,设置第三索引值,执行步骤c3,否则执行步骤d ; 步骤c3、判断所述第三索引值是否小于所述连接有USB设备的节点个数,是则根据所述第三索引值查询当前根集线器的指定节点,执行步骤c4,否则执行步骤d ; 步骤c4、获取所述指定节点上连接的USB设备的产品编码、运营商代码编码、句柄和连接方式,根据获取到的产品编码和运营商代码编码判断所述指定节点上连接的USB设备的类型,若为待测试设备则执行步骤c5,若为Hubl.1/Hub2.0/Hub3.0则执行步骤c6,若为其他则执行步骤c7 ; 步骤c5、将所述待测试设备的产品编码、运营商代码编码、句柄和连接方式保存到所述待测试设备列表中,执行步骤c7 ;步骤 c6、枚举所述 Hubl.1/Hub2.0/Hub3.0,获取所述 Hubl.1/Hub2.0/Hub3.0 上连接的USB设备的产品编码、运营商代码编码、句柄和连接方式,根据获取到的产品编码和运营商代码编码判断各USB设备的类型,若为待测试设备则将待测试USB设备的产品编码、运营商代码编码、句柄和连接方式保存到所述待测试设备列表中,执行步骤c7,否则执行步骤c7 ;步骤c7、关闭打开的根集线器设备,更新第三索引值,返回执行步骤c3。

  13.根据要求12所述的USB设备的硬件通用测试方法,其特征在于,所述步骤c6具体包括: 步骤c6-l:构造所述Hubl.1/Hub2.0/Hub3.0的设备名称,打开所述Hubl.1/Hub2.0/Hub3.0设备,获取所述Hubl.1/Hub2.0/Hub3.0各节点的连接信息;步骤c6-2:判断所述Hubl.1/Hub2.0/Hub3.0各节点上是否连接有USB设备,是则获取连接有USB设备的节点的个数,设置第四索引值,执行步骤c6-3,否则执行步骤c7 ; 步骤c6-3、判断所述第四索引值是否小于所述连接有USB设备的节点个数,是则根据所述第四索引值查询所述Hubl.1/Hub2.0/Hub3.0的指定节点,执行步骤c6-4,否则执行步骤c7 ; 步骤c6-4、获取所述指定节点上连接的USB设备的PID、运营商代码编码、句柄和连接方式,根据获取到的产品编码和运营商代码编码判断所述指定节点上连接的USB设备的类型,若为待测试设备则执行步骤c6-5,否则执行步骤c6-6 ; 步骤c6-5、将所述待测试设备的产品编码、运营商代码编码、句柄和连接方式保存到所述待测试设备列表中,执行步骤c6-6 ; 步骤c6-6、关闭打开的Hubl.1/Hub2.0/Hub3.0设备,更新第四索引值,返回执行步骤c6_30

  14.根据要求12所述的USB设备的硬件通用测试方法,其特征在于,所述根据所述待测试设备列表对待测试设备在当前操作系统下进行测试包括:判断所述待测试设备列表中各待测试设备的连接方式,若为没有辅助设备则对待测试设备进行第一测试和第二测试,若为通过Hubl.1/Hub2.0/Hub3.0连接则对待测试设备进行第一测试。

  15.根据要求14所述的USB设备的硬件通用测试方法,其特征在于, 所述对待测试设备进行第一测试包括:对待测试设备进行即插即用识别和通信测试、对待测试设备进行禁用和启用操作后再进行即插即用识别和通信测试、对待测试设备进行下电和上电操作后再进行即插即用识别和通信测试、对待测试设备进行连续预设次下电和上电操作后再进行即 插即用识别和通信测试、对待测试设备进行预设次复位操作后再进行即插即用识别和通信测试以及模拟笔记本的电源变化并对待测试设备进行即插即用识别和通信测试; 所述对待测试设备进行第二测试包括:对待测试设备进行休眠/操作后再进行即插即用识别和通信测试。

  16.根据要求1所述的USB设备的硬件通用测试方法,其特征在于,所述根据所述待测试设备列表对各待测试设备在当前操作系统下进行测试和所述步骤G之间还包括:若测试未完成则进行异常中断处理。

  17.根据要求1所述的USB设备的硬件通用测试方法,其特征在于,所述根据所述待测试设备列表对各待测试设备在当前操作系统下进行测试和所述步骤G之间还包括:若测试完成且测试通过则生成日志文件。

  18.根据要求1所述的USB设备的硬件通用测试方法,其特征在于,所述根据所述待测试设备列表对各待测试设备在当前操作系统下进行测试和所述步骤G之间还包括:若测试完成且测试不通过则结束。

  19.根据要求17所述的USB设备的硬件通用测试方法,其特征在于,所述根据所述待测试设备列表对各待测试设备在当前操作系统下进行测试和所述步骤G之间还包括:若测试完成且测试不通过则生成日志文件。

  20.根据要求19所述的USB设备的硬件通用测试方法,其特征在于,所述生成日志文件之前还包括:获取测试平台的网络之间互联的协议IP地址、USB控制器名称、中央处理器CPU名称以及主板名称,记录软件测试、测试步骤以及错误描述。

  21.根据要求1所述的USB设备的硬件通用测试方法,其特征在于,所述判断当前操作系统是否为所述配置文件中的最后一个操作系统具体为:判断所述操作系统指向项的值和所述操作系统数量项的值是否相同,是则当前操作系统为所述配置文件中的最后一个操作系统,否则当前操作系统不为所述配置文件中的最后一个操作系统。

  22.根据要求19所述的USB设备的硬件通用测试方法,其特征在于,所述判断当前操作系统是否为所述配置文件中的最后一个操作系统的判断结果为是之后还包括:对测试过程中生成的日志文件进行归类分析,得到测试结果文件。

  23.根据要求22所述的USB设备的硬件通用测试方法,其特征在于,所述对测试过程中生成的所有日志文件进行归类分析,得到测试结果文件包括: 步骤e、检查测试过程中生成的所有日志文件,每当检查到一个日志文件中有错误描述时读取所述错误描述,并将读取到的信息作为一个节点添加到创建的链表中; 步骤f、检查所述 链表中各节点的信息,将经模糊比较判定信息关键字相似的节点合并为一个节点,保存合并后的节点,删除其余节点; 步骤g、将所述链表中剩余的节点的信息写入测试结果文件,删除所述链表。

  24.根据要求23所述的USB设备的硬件通用测试方法,其特征在于,所述步骤f包括: 步骤H、第一比较索引值指向所述链表的首个节点; 步骤f2、第二比较索引指针指向第一比较索引值指向的节点的下一节点; 步骤f3、将第一比较索引值指向的节点的信息的关键字和第二比较索引值指向的节点的信息的关键字进行模糊比较,判断第一比较索引值指向的节点的信息和第二索引值指向的节点的信息是否相似,是则执行步骤f4,否则执行步骤K ; 步骤f4、将第二比较索引值指向的节点的信息合并到第一索引值指向的节点,删除第二比较索引值指向的节点,执行步骤f5 ; 步骤f5、判断第二比较索引值指向的节点是否为所述链表的尾节点,是则执行步骤f6,否则第二比较索引值指向其当前指向节点的下一节点,返回执行步骤f3; 步骤f6、判断第一比较索引值当前指向节点的下一节点是否为所述链表的尾节点,是则执行步骤g,否则第一比较索引值指向其当前指向节点的下一节点,返回执行步骤f2。

  本发明公开一种USB设备的硬件通用测试方法,涉及硬件测试领域,包括①读取配置文件中的测试状态项,判断需要执行的操作,若为恢复操作系统则执行②,若为测试则执行③;②根据配置文件中的操作系统指向项恢复操作系统,更新配置文件中的测试状态项,重新启动操作系统,执行①;②枚举测试平台上连接的USB设备,根据生成的待测试设备列表对待测试设备在当前操作系统下进行测试,判断当前操作系统是否为配置文件中的最后一个操作系统,是则结束,否则更新配置文件中的测试状态项和操作系统指向项,返回①;本发明的有益效果在于节省测试资源中的人力、可覆盖不同的PC系统平台,能及时发现固件/硬件级的兼容性问题。

  d5gt.cn 指纹膜 共享纸巾机 赛车群 欢威

读完这篇文章后,您心情如何?
0
0
0
0
0
0
0
0
本文网址: