CN103218280A - 一种usb设备的硬件通用测试方法 - Google Patents
一种usb设备的硬件通用测试方法 Download PDFInfo
- Publication number
- CN103218280A CN103218280A CN2013101285047A CN201310128504A CN103218280A CN 103218280 A CN103218280 A CN 103218280A CN 2013101285047 A CN2013101285047 A CN 2013101285047A CN 201310128504 A CN201310128504 A CN 201310128504A CN 103218280 A CN103218280 A CN 103218280A
- Authority
- CN
- China
- Prior art keywords
- execution
- test
- configuration file
- item
- tested
- 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.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 236
- 238000000034 method Methods 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 14
- 238000011084 recovery Methods 0.000 claims description 11
- 238000009434 installation Methods 0.000 claims description 7
- 238000012956 testing procedure Methods 0.000 claims description 7
- 238000010224 classification analysis Methods 0.000 claims description 6
- 230000005611 electricity Effects 0.000 claims description 6
- 230000002618 waking effect Effects 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 238000007689 inspection Methods 0.000 claims description 2
- 238000004088 simulation Methods 0.000 claims description 2
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 claims 2
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims 2
- 238000010998 test method Methods 0.000 claims 1
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000002950 deficient Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 101100225042 Arabidopsis thaliana ECI3 gene Proteins 0.000 description 1
- 101100274486 Mus musculus Cited2 gene Proteins 0.000 description 1
- 101100533725 Mus musculus Smr3a gene Proteins 0.000 description 1
- 101150096622 Smr2 gene Proteins 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007730 finishing process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开一种USB设备的硬件通用测试方法,涉及硬件测试领域,包括:①读取配置文件中的测试状态项,判断需要执行的操作,若为恢复操作系统则执行②,若为测试则执行③;②根据配置文件中的操作系统指向项恢复操作系统,更新配置文件中的测试状态项,重新启动操作系统,执行①;②枚举测试平台上连接的USB设备,根据生成的待测试设备列表对待测试设备在当前操作系统环境下进行测试,判断当前操作系统是否为配置文件中的最后一个操作系统,是则结束,否则更新配置文件中的测试状态项和操作系统指向项,返回①;本发明的有益效果在于节省测试资源中的人力、可覆盖不同的PC系统平台,能及时发现固件/硬件级的兼容性问题。
Description
技术领域
本发明属于硬件测试领域,特别涉及一种USB设备的硬件通用测试方法。
背景技术
由于不同计算机的芯片组使用不同的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中步骤s1的细化流程图;
图4为图2中步骤s4的细化流程图;
图5为图4中步骤G4-8的细化流程图;
图6为本发明实施例二提供的一种测试过程中生成的日志文件进行归类分析得到测试结果文件的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供一种USB设备的硬件通用测试方法,所述方法由测试平台根据配置文件自动执行;
具体地,所述配置文件包含测试状态项、驱动程序名称项、操作系统数量项、操作系统指向项以及各操作系统的具体信息项,其中,所述各操作系统的具体信息项包括操作系统的备份文件名称项、操作系统的名称项、操作系统的补丁名称项、操作系统对应的WinPE(WindowsPreinstall Environment,Windows预安装环境)的GUID(Globally Unique Identifier,全局唯一标识符)值项、操作系统的状态项以及操作系统的备份文件所在路径项;
所述WinPE是用于进行系统恢复和备份的软件,是带有限服务的Windows子系统,基于以保护模式运行的Windows XP Professional内核和Vista内核,包括运行Windows安装程序及脚本、连接网络共享、自动化基本过程以及执行硬件验证所需的最小功能;
参见图1,所述方法具体包括以下步骤:
步骤101:读取配置文件中的测试状态项,根据所述测试状态项判断需要执行的操作,若为恢复操作系统则执行步骤102,若为安装驱动则执行步骤108,若为测试则执行步骤111,否则结束;
优选地,在本实施例中,所述配置文件如下:
;test state,1:configer,2:Auto Install,3:test
STATE=3
;Device Driver name
SDKNAME=ep2011auto.exe
;the system total
OSNUM=3
;the current system id
CURROSID=0
BAKNAME0=WinXPProSP3.GHO
OSNAME0=Windows XP Professional
PATCH0=Service Pack3
GUID0={7619dcc9-fafe-11d9-b411-000476eba25f}
FLAG0=0
DEV0=E:
BAKNAME1=Windows7ult.GHO
OSNAME1=Windows7 Ultimate
PATCH1=NULL
GUID1={7619dcc9-fafe-11d9-b411-000476eba25f}
FLAG1=0
DEV1=E:
BAKNAME2=Windows7ultsp1.GHO
OSNAME2=Windows7 Ultimate
PATCH2=Service Pack1
GUID2={7619dcc9-fafe-11d9-b411-000476eba25f}
FLAG2=0
DEV2=E:
其中,STATE项为测试状态项,STATE=1标识需要执行的操作为恢复操作系统,STATE=2标识需要执行的操作为安装驱动,STATE=3标识需要执行的操作为测试;SDKNAME项为驱动程序名称项,标识驱动程序的名称;OSNUM项为操作系统数量项,标识配置文件中操作系统的个数;CURROSID项为操作系统指向项,标识配置文件中的当前操作系统的编号; BAKNAME、OSNAME、PATCH、GUID、FLAG和DEV项为各操作系统的具体信息项,其中BAKNAME项为备份文件名称项,标识操作系统的备份文件名称、OSNAME项为操作系统的名称项,标识操作系统的名称、PATCH项为操作系统的补丁名称项,标识操作系统的补丁的名称、GUID项为操作系统对应的WinPE的GUID值项,标识操作系统对应的WinPE的GUID值、FLAG项为操作系统的状态项,FLAG=0标识该操作系统需要测试,FLAG=1标识该操作系统正在测试,FLAG=2标识该操作系统已完成测试,FLAG=3标识该操作系统不需要测试,DEV项为操作系统的备份文件所在路径项,标识操作系统的备份文件所在的路径;标识配置文件中操作系统的属性的各项都带有一个编号,所述编号与操作系统的编号一致,方便当CURROSID项的值等于该操作系统的编号时查找到标识该操作系统的属性的各项;
相应地,根据上述配置文件实例,步骤101具体为:读取配置文件中STATE项,判断所述STATE项的值,若为1则执行步骤102,若为2则执行步骤108,若为第3则执行步骤111,否则结束;
步骤102:读取配置文件中的操作系统指向项,根据所述操作系统指向项查找当前操作系统;
根据上述配置文件实例,步骤102具体为:读取配置文件中的CURROSID项,根据所述CURROSID项的值查找配置文件得到配置文件中的当前操作系统;
步骤103:读取当前操作系统对应的状态项,根据所述状态项判断是否要对待测试设备在当前操作系统环境下进行测试,是则执行步骤105,否则执行步骤104;
根据上述配置文件实例,步骤103具体为:读取配置文件中当前操作系统的FLAG项,判断所述FLAG项的值是否为0,是则执行步骤105,否则执行步骤104;
步骤104:判断配置文件中的当前操作系统是否为配置文件中的最后一个操作系统,是则结束,否则更新所述操作系统指向项,使之指向配置文件中的下一操作系统,返回执行步骤102;
根据上述配置文件实例,步骤104具体为:修改配置文件中的CURROSID项的值为其当前值加1,返回执行步骤102;
步骤105:读取配置文件中当前操作系统对应的备份文件名称项和备份文件所在路径项,根据所述备份文件名称项和备份文件所在的路径项生成第一批处理文件;
根据上述配置文件实例,步骤105具体为:读取配置文件中当前操作系统的BAKNAME项的值和DEV项的值,根据所述BAKNAME项的值和DEV项的值生成第一批处理文件,设置下一次恢复到WinPE,系统重启后自动进入配置文件中的当前操作系统;
例如,所述配置文件中的当前操作系统的BAKNAME项的值为WinXPProSP3.GHO,DEV项的值为E:,生成的第一批处理文件为e:\ghost32.exe-clone,mode=pload,src=E:\WinXPProSP3.GHO:1,dst=1:1 /sure/rb;
步骤106:获取测试平台当前的操作系统名称和补丁名称,根据所述测试平台当前的操作系统名称和补丁名称查找配置文件中相应的操作系统并读取其对应的WinPE的GUID项,根据所述GUID项生成第二批处理文件并执行;
具体地,所述获取测试平台当前的操作系统名称和补丁名称可通过以下方法实现:打开注册表HLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion,获取ProductName的值得到操作系统名称,获取CSDVersion的值得到操作系统的补丁的名称,关闭所述注册表;
根据上述配置文件实例,所述根据所述测试平台当前的操作系统名称和补丁名称查找配置文件中相应的操作系统并读取其对应的WinPE的GUID项具体为:获取配置文件中OSNAME项的值和PATCH项的值分别与测试平台当前操作系统的名称和补丁名称相同的操作系统的GUID项;
例如,测试平台当前操作系统的名称为Windows 7 Ultimate、补丁名称为Service Pack 1,配置文件中OSNAME项的值和PATCH项的值分别与测试平台当前操作系统的名称和补丁名称相同的操作系统的GUID项的值为{7619dcc9-fafe-11d9-b411-000476eba25f},生成包含下述两条指令的第二批处理文件为:
d:\system32\bcdedit /store c:\boot\bcd /default {7619dcc9-fafe-11d9-b411-000476eba25f}
d:\system32\bcdedit /store c:\boot\bcd /timeout 5;
其中第一条指令的作用是将系统的默认启动项设置为WinPE启动,第二条指令的作用是将系统的默认启动延时时间设置为5秒;
BCDEdit是NT60系列操作系统(Windows 7/Vista/2008/8/2012)中的一个命令执行工具,用于建立和重新配置boot loader。所谓bootloader,在指在内核运行之前执行的一段小程序,系统通过它来初始化硬件设备、建立内存空间的映射图等,将系统的软硬件环境设置成一个合适的状态,为最终调用操作系统内核准备好正确的环境;
步骤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项的值为ep2011auto .exe,生成第三批处理文件:
start /wait E:\FeiTianAutoTestOut\eP2Kauto.exe /S
或者生成vbs脚本文件:
Set.WshShell=CreateObject
("Wscript.Shell")
strCommandLine = "eP2011Auto.exe"
WshShell.Run(strCommandLine)
WScript.Sleep 3000
WshShell.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组件进行的,具体包括:初始化WMI COM组件,创建一个WMI命名空间连接,使用m_pWbemloc连接到“root\cimv2”并设置m_pWbemSvc的指针,设置WMI连接的安全性,使用Win32_USBController的Caption的值获取USB控制器名称,使用Win32_Processor的Name的值获取CPU名称,使用Win32_BaseBoard的Manufacturer值获取主板名称,释放WIM COM组件;
优选地,参见图2,步骤111包括:
s0、分配并初始化设备数组;
s1、枚举USB HCD(Host Controller Driver,主控制器),获取USB HCD的个数和各USB HCD对应的Root Hub(根集线器)的名称,将获取到的Root Hub的名称存入所述设备数组中,设置第一索引值为0;
s2、判断第一索引值是否小于所述USB HCD的个数,是则执行s4,否则执行s3;
s3、根据所述待测试设备列表对各待测试设备在当前操作系统环境下进行测试,执行步骤112;
具体地,所述待测试设备列表中包括:待测试设备的PID(ProductIdentity,产品编码)、VID(Vendor Identity,运营商代码编码)、句柄以及连接方式,若待测试设备的连接方式为没有辅助设备,则对所述待测试设备进行第一测试操作和第二测试操作,若待测试设备的连接方式为通过Hub1.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识别和通信测试;
优选地,所述模拟笔记本的电源变化具体为:向操作系统广播电源管理消息;
所述电源管理消息如:
Msg1: PBT_APMQUERYSUSPEND
The PBT_APMQUERYSUSPEND event is broadcast to requestpermission to suspend the computer.
An application that grants permission should carry out preparations for the suspension before returning.Msg2: PBT_APMRESUMECRITICAL
The PBT_APMRESUMECRITICAL event is broadcast as a notificationthat the system has resumed operation.
This event can indicate that some or all applications did not receive a PBT_APMSUSPEND event.
For example, this event can be broadcast after a critical suspension caused by a failing battery.
Msg3:PBT_APMRESUMEAUTOMATIC
The PBT_APMRESUMEAUTOMATIC event is broadcast when thecomputer wakes up automatically to handle an event.
An application will not generally respond unless itis handling the event, because the user is not present.Msg4: PBT_APMSUSPEND
The PBT_APMSUSPEND event is broadcast immediately before the computer enters a suspended state.
This event is typically broadcast when all applications and installable drivers have returned TRUE
to a previous PBT_APMQUERYSUSPEND event.Msg5:PBT_APMPOWERSTATUSCHANGE
The PBT_APMPOWERSTATUSCHANGE event is broadcast when achange in the power status of
the computer is detected, such as a switch from battery power to A/C.
The system also broadcasts this event when remainingbattery power slips
below the threshold specified by the user or if thebattery powerchanges by a specified percentage.
所述第二测试操作具体为:对待测试设备进行休眠/唤醒操作后再进行PNP识别和通信测试;
优选地,在本实施例中,所述对待测试设备进行休眠/唤醒操作具体为向操作系统发送SLEEP命令,具体可以通过调用操作系统提供的API接口实现,或者通过调用测试平台本身的工具实现;
需要说明的是,所述第一测试操作和第二测试操作可按预定顺序执行或同时执行,所述第一测试操作中的各操作也可按预定顺序执行或同时执行,在此不做限定;
s4、根据第一索引值枚举指定USB HCD对应的Root Hub,获取当前Root Hub上连接的待测试设备的信息,存储到待测试设备列表中;
具体地,所述待测试设备的信息包括待测试设备的:PID、VID、句柄以及连接方式;
s5、更新第一索引值,返回执行步骤s2;
具体地,更新第一索引值为其当前值加1;
进一步地,参见图3,步骤s1具体包括:
步骤G2-1:分配并初始化设备数组,设置第二索引值和最大值;
在本实施例中,设置第二索引值为0,设置最大值为16;
步骤G2-2:判断第二索引值是否小于最大值,是则执行步骤G2-3,否则执行步骤s2;
步骤G2-3:根据第二索引值构建USB HCD的设备名称,使用尝试打开的方式进行枚举,判断尝试打开返回的句柄是否为无效值,是则执行步骤s2,否则获取当前USB HCD对应的Root Hub的名称,将获取到的Root Hub的名称存入所述设备数组中,关闭打开的USB HCD设备,执行步骤G2-4;
具体地,构造的USB HCD的名称形如\\\\.\\HCD1;
步骤G2-4:更新第二索引值,返回执行步骤G2-2;
具体地,更新第二索引值为其当前值加1;
参见图4,步骤s4具体包括:
步骤G4-1:构造当前Root Hub的设备名称,打开当前Root Hub设备,获取当前Root Hub各节点的连接信息;
具体地,构造当前Root Hub的设备名称形如\\\\.\\Root Hub名称;
步骤G4-2:判断当前Root Hub各节点上是否连接有USB设备,是则执行步骤G4-3,否则执行步骤s5;
步骤G4-3:获取连接有USB设备的节点的个数,设置第三索引值为0;
步骤G4-4:判断第三索引值是否小于所述连接有的USB设备的节点的个数,是则执行步骤G4-5,否则执行步骤s5;
步骤G4-5:根据第三索引值查询当前Root Hub的指定节点,获取所述指定节点上连接的USB设备的PID和VID、句柄以及连接方式;
步骤G4-6:根据获取到的PID和VID判断所述指定节点上连接的USB设备的类型,若为待测试设备则执行步骤G4-7,若为Hub1.1/ Hub2.0/Hub3.0则执行步骤G4-8,若为其他则执行步骤G4-9;
步骤G4-7:将所述待测试设备的PID和VID、句柄以及连接方式保存到待测试设备列表中,执行步骤G4-9;
步骤G4-8:枚举所述Hub1.1/ Hub2.0/ Hub3.0,获取所述Hub1.1/Hub2.0/Hub3.0上连接的USB设备的PID和VID、句柄以及连接方式,根据获取到的PID和VID判断各USB设备是否为待测试设备,是则保存其PID和VID、句柄以及连接方式到待测试设备列表中,执行步骤G4-9,否则执行步骤G4-9;
步骤G4-9:更新第三索引值,返回执行步骤G4-4;
具体地,更新第三索引值为其当前值加1;
更进一步地,参见图5,步骤G4-8具体包括:
i构造所述Hub1.1/Hub2.0/Hub3.0的设备名称,打开所述Hub1.1/Hub2.0/Hub3.0设备,获取所述Hub1.1/Hub2.0/Hub3.0各节点的连接信息;
具体地,构造所述Hub1.1/Hub2.0/Hub3.0的设备名称形如\\\\.\\Root Hub名称\\Hub的设备名称;
ii判断所述Hub1.1/Hub2.0/Hub3.0各节点上是否连接有USB设备,是则执行iii,否则执行步骤G4-9;
iii获取连接有USB设备的节点的个数,设置第四索引值为0;
iv判断第四索引值是否小于所述连接有USB设备的节点个数,是则执行v,否则执行步骤G4-9;
在本实施例中,第四索引值的初始值为0;
v根据第四索引值查询所述Hub1.1/ Hub2.0/ Hub3.0的指定节点,获取所述指定节点上连接的USB设备的PID和VID、句柄以及连接方式;
vi根据获取到PID和VID判断所述指定节点上连接的USB设备是否为待测试设备,是则执行vii,否则执行viii;
vii将所述待测试设备的PID和VID、句柄以及连接方式到待测试设备列表中,执行viii;
viii关闭打开的Hub1.1/Hub2.0/Hub3.0设备,更新第四索引值,返回执行iv;
具体地,更新第四索引值为其当前值加1;
步骤112:读取配置文件中的操作系统指向项和操作系统数量项,根据所述操作系统指向项和操作系统数量项判断当前操作系统是否为配置文件中最后一个操作系统,是则结束,否则执行步骤113;
根据上述配置文件的示例,步骤112具体为:读取配置文件中的CURROSID项以及OSNUM项,判断所述CURROSID项的值与所述OSNUM项的值是否相同,是则配置文件中的当前操作系统为配置文件中的最后一个操作系统,否则配置文件中的当前操作系统不为配置文件中的最后一个操作系统;
进一步地,当前操作系统为所述配置文件中的最后一个操作系统时还包括:修改配置文件中的STATE项为第四预设值,对测试过程中生成的日志文件进行归类分析,得到测试结果文件;
例如,测试过程中生成的日志文件如下,所述对测试过程中生成的日志文件进行归类分析得到测试结果文件的方法将在实施例二中进行阐述:
日志文件一:
直接接入主板USB接口,使用0端点发送获取描述符的命令后,SCSI设备弹出的Cdrom中没有数据
软件测试环境:Windows 7 Ultimate, Service Pack 1
Windows XP Professional Service Pack 1
硬件环境:IP:192.168.0.106,USB控制器名称:Intel(R) 82801G (ICH7 Family) USB Universal Host Controller - 27CB,CPU名称:Intel(R) Core(TM)2Quad CPU Q9500 2.83GHz, 主板名称:LENOVO ThinkCentre M6100T
测试步骤:直接接入主板USB接口,使用0端点发送获取描述符的命令
错误描述:直接接入主板USB接口,使用0端点发送获取描述符的命令后,SCSI设备弹出的Cdrom中没有数据
日志文件二:
直接接入主板USB接口,使用0端点发送获取描述符的命令后,Get thecrypt prov handle failed, err code: 0x80090020,出现了内部错误。
软件测试环境:Windows 7 Ultimate, Service Pack 1
Windows XP Professional Service Pack 1
硬件环境:IP:192.168.0.106,USB控制器名称:Intel(R) 82801G (ICH7 Family) USB Universal Host Controller - 27CB,CPU名称:Intel(R) Core(TM)2 Quad CPU Q9500 2.83GHz, 主板名称:LENOVO ThinkCentre M6100T
测试步骤:直接接入主板USB接口,使用0端点发送获取描述符的命令
错误描述:直接接入主板USB接口,使用0端点发送获取描述符的命令后,Get the crypt prov handle failed, err code: 0x80090020,出现了内部错误。
日志文件三:
接入1.5M USB延长线,使用0端点发送获取描述符的命令后,Get thecrypt prov handle failed, err code: 0x80090020,出现了内部错误。
软件测试环境:Windows 7 Ultimate, Service Pack 1
Windows XP Professional Service Pack 1
硬件环境:IP:192.168.0.106,USB控制器名称:Intel(R) 82801G (ICH7 Family) USB Universal Host Controller - 27CB,CPU名称:Intel(R) Core(TM)2Quad CPU Q9500 2.83GHz, 主板名称:LENOVO ThinkCentre M6100T
测试步骤:接入1.5M USB延长线,使用0端点发送获取描述符的命令后
错误描述:接入1.5M USB延长线,使用0端点发送获取描述符的命令后使用0端点发送获取描述符的命令后,Get the crypt prov handle failed, err code: 0x80090020,出现了内部错误。
日志文件四:
接入2.0 USB Hub, 使用0端点发送获取描述符的命令后,SCSI设备弹出的Cdrom中没有数据
软件测试环境:Windows 7 Ultimate, Service Pack 1
Windows XP Professional Service Pack 1
硬件环境:IP:192.168.0.106,USB控制器名称:Intel(R) 82801G (ICH7 Family) USB Universal Host Controller - 27CB,CPU名称:Intel(R) Core(TM)2 Quad CPU Q9500 2.83GHz, 主板名称:LENOVO ThinkCentre M6100T
测试步骤:接入2.0 USB Hub,使用0端点发送获取描述符的命令后
错误描述:接入2.0 USB Hub, 使用0端点发送获取描述符的命令后使用0端点发送获取描述符的命令后,Get the crypt prov handle failed, err code: 0x80090020,出现了内部错误。
步骤113:更新配置文件中的测试状态项,标识需要执行的操作为恢复操作系统,更新配置文件中的操作系统指向项,使之指向配置文件中的下一操作系统,返回执行步骤101。
根据上述配置文件实例,步骤113具体为:修改配置文件中的STATE项的值为第一预设值,修改CURROSID项的值为其当前值加1,返回执行步骤101。
实施例二
参见图6,本发明实施例二提供了一种对测试过程中生成的日志文件进行归类分析得到测试结果文件的方法,所述方法具体包括:
步骤301 :将一个未检查过的日志文件作为当前日志文件,检查当前日志文件中是否有错误描述,是则执行步骤302,否则执行步骤303;
步骤302 :读取当前日志文件中的错误描述,创建链表,将所述错误日志信息作为一个节点添加到所述链表中,执行步骤303;
步骤 303 :判断已检查完全部日志文件,是则执行步骤304,否则返回执行步骤301;
步骤 304 :第一比较索引值指向所述链表的首个节点;
步骤 305 :第二比较索引值指向第一比较索引值指向的节点的下一节点;
步骤 306 :将第一比较索引值指向节点的信息的关键字和第二比较索引值指向节点的信息的关键字进行模糊比较,判断二者是否相似,是则执行步骤307,否则执行步骤308;
步骤 307 :将第二比较索引值指向节点的信息合并到第一比较索引值指向的节点,删除第二比较索引值指向的节点,执行步骤308;
步骤308 :判断第二比较索引值指向的节点是否为所述链表的尾节点,是则执行步骤310,否则执行步骤309;
步骤309 :第二比较索引值指向其当前指向节点的下一节点,返回执行步骤306;
步骤310:判断第一比较索引值当前指向节点的下一节点是否为所述链表的尾节点,是则执行步骤312,否则执行步骤311;
步骤311:第一比较索引值指向其当前指向节点的下一节点,返回执行步骤305;
步骤312:将所述链表各节点的信息写入到测试结果文件中,删除所述链表。
以上所述的实施例只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (24)
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具体包括:
步骤a1、初始化所述设备数组,设置第二索引值和最大值;
步骤a2、判断所述第二索引值是否小于所述最大值,是则执行步骤a3,否则执行步骤b;
步骤a3、根据所述第二索引值构建主控制器的设备名称,使用尝试打开的方式进行枚举,判断尝试打开返回的句柄是否为无效值,是则执行步骤b,否则执行步骤a4;
步骤a4、获取当前主控制器对应的根集线器的名称,将获取到的根集线器的名称存入所述设备数组中,关闭打开的主控制器设备,更新第二索引值,返回执行步骤a2。
12.根据权利要求10所述的USB设备的硬件通用测试方法,其特征在于:
所述连接方式包括:没有辅助设备的方式和通过集线器Hub1.1/Hub2.0/Hub3.0连接的方式;
所述步骤c具体包括:
步骤c1、构造当前根集线器的设备名称,打开当前根集线器设备,获取当前根集线器各节点的连接信息;
步骤c2、判断当前根集线器各节点上是否连接有USB设备,是则获取连接有USB设备的节点的个数,设置第三索引值,执行步骤c3,否则执行步骤d;
步骤c3、判断所述第三索引值是否小于所述连接有USB设备的节点个数,是则根据所述第三索引值查询当前根集线器的指定节点,执行步骤c4,否则执行步骤d;
步骤c4、获取所述指定节点上连接的USB设备的产品编码、运营商代码编码、句柄和连接方式,根据获取到的产品编码和运营商代码编码判断所述指定节点上连接的USB设备的类型,若为待测试设备则执行步骤c5,若为Hub1.1/Hub2.0/Hub3.0则执行步骤c6,若为其他则执行步骤c7;
步骤c5、将所述待测试设备的产品编码、运营商代码编码、句柄和连接方式保存到所述待测试设备列表中,执行步骤c7;
步骤c6、枚举所述Hub1.1/Hub2.0/Hub3.0,获取所述Hub1.1/Hub2.0/Hub3.0上连接的USB设备的产品编码、运营商代码编码、句柄和连接方式,根据获取到的产品编码和运营商代码编码判断各USB设备的类型,若为待测试设备则将待测试USB设备的产品编码、运营商代码编码、句柄和连接方式保存到所述待测试设备列表中,执行步骤c7,否则执行步骤c7;
步骤c7、关闭打开的根集线器设备,更新第三索引值,返回执行步骤c3。
13.根据权利要求12所述的USB设备的硬件通用测试方法,其特征在于,所述步骤c6具体包括:
步骤c6-1:构造所述Hub1.1/Hub2.0/Hub3.0的设备名称,打开所述Hub1.1/Hub2.0/Hub3.0设备,获取所述Hub1.1/Hub2.0/Hub3.0各节点的连接信息;
步骤c6-2:判断所述Hub1.1/Hub2.0/Hub3.0各节点上是否连接有USB设备,是则获取连接有USB设备的节点的个数,设置第四索引值,执行步骤c6-3,否则执行步骤c7;
步骤c6-3、判断所述第四索引值是否小于所述连接有USB设备的节点个数,是则根据所述第四索引值查询所述Hub1.1/Hub2.0/Hub3.0的指定节点,执行步骤c6-4,否则执行步骤c7;
步骤c6-4、获取所述指定节点上连接的USB设备的PID、运营商代码编码、句柄和连接方式,根据获取到的产品编码和运营商代码编码判断所述指定节点上连接的USB设备的类型,若为待测试设备则执行步骤c6-5,否则执行步骤c6-6;
步骤c6-5、将所述待测试设备的产品编码、运营商代码编码、句柄和连接方式保存到所述待测试设备列表中,执行步骤c6-6;
步骤c6-6、关闭打开的Hub1.1/Hub2.0/Hub3.0设备,更新第四索引值,返回执行步骤c6-3。
14.根据权利要求12所述的USB设备的硬件通用测试方法,其特征在于,所述根据所述待测试设备列表对待测试设备在当前操作系统环境下进行测试包括:判断所述待测试设备列表中各待测试设备的连接方式,若为没有辅助设备则对待测试设备进行第一测试和第二测试,若为通过Hub1.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包括:
步骤f1、第一比较索引值指向所述链表的首个节点;
步骤f2、第二比较索引指针指向第一比较索引值指向的节点的下一节点;
步骤f3、将第一比较索引值指向的节点的信息的关键字和第二比较索引值指向的节点的信息的关键字进行模糊比较,判断第一比较索引值指向的节点的信息和第二索引值指向的节点的信息是否相似,是则执行步骤f4,否则执行步骤f5;
步骤f4、将第二比较索引值指向的节点的信息合并到第一索引值指向的节点,删除第二比较索引值指向的节点,执行步骤f5;
步骤f5、判断第二比较索引值指向的节点是否为所述链表的尾节点,是则执行步骤f6,否则第二比较索引值指向其当前指向节点的下一节点,返回执行步骤f3;
步骤f6、判断第一比较索引值当前指向节点的下一节点是否为所述链表的尾节点,是则执行步骤g,否则第一比较索引值指向其当前指向节点的下一节点,返回执行步骤f2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310128504.7A CN103218280B (zh) | 2013-04-15 | 2013-04-15 | 一种usb设备的硬件通用测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310128504.7A CN103218280B (zh) | 2013-04-15 | 2013-04-15 | 一种usb设备的硬件通用测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103218280A true CN103218280A (zh) | 2013-07-24 |
CN103218280B CN103218280B (zh) | 2016-12-28 |
Family
ID=48816100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310128504.7A Expired - Fee Related CN103218280B (zh) | 2013-04-15 | 2013-04-15 | 一种usb设备的硬件通用测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103218280B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104267331A (zh) * | 2014-09-16 | 2015-01-07 | 四川和芯微电子股份有限公司 | Usb芯片的测试方法 |
CN104714872A (zh) * | 2015-04-10 | 2015-06-17 | 南车株洲电力机车研究所有限公司 | 一种车载usb设备性能测试方法 |
CN104869036A (zh) * | 2015-06-05 | 2015-08-26 | 太仓市同维电子有限公司 | 一种利用机械手臂测试多个便携式usb路由器的方法 |
CN107168880A (zh) * | 2017-05-31 | 2017-09-15 | 中标软件有限公司 | 虚拟机测试方法及工具 |
CN107943702A (zh) * | 2017-11-28 | 2018-04-20 | 中标软件有限公司 | 硬件兼容性测试方法及装置 |
CN109218055A (zh) * | 2017-07-04 | 2019-01-15 | 上海诺基亚贝尔股份有限公司 | 一种快速配置网元设备进行即插即用的方法和装置 |
CN109446013A (zh) * | 2018-11-01 | 2019-03-08 | 深圳三地芯电子有限责任公司 | 存储设备测试方法、存储设备测试系统及存储介质 |
CN109634690A (zh) * | 2018-12-24 | 2019-04-16 | 山东中孚安全技术有限公司 | 一种基于WinPE系统的数据清除方法、装置、终端及存储介质 |
CN110910944A (zh) * | 2018-09-17 | 2020-03-24 | 爱思开海力士有限公司 | 保持存储器系统中的固件的设备和方法 |
CN111200837A (zh) * | 2019-12-20 | 2020-05-26 | 翱捷科技(上海)有限公司 | 一种Wi-Fi软件测试系统及方法 |
CN111341380A (zh) * | 2020-02-25 | 2020-06-26 | 深圳忆联信息系统有限公司 | Ssd控制器复位的测试方法、装置和计算机设备 |
CN111708548A (zh) * | 2020-06-18 | 2020-09-25 | 北京小米移动软件有限公司 | 软件安装方法、装置、设备及存储介质 |
CN111737066A (zh) * | 2020-05-29 | 2020-10-02 | 浪潮电子信息产业股份有限公司 | 一种usb信号测试系统及方法 |
CN112068998A (zh) * | 2019-06-10 | 2020-12-11 | 山东华芯半导体有限公司 | 一种基于u盘pe系统的固态硬盘自动测试方法 |
CN112860498A (zh) * | 2021-01-29 | 2021-05-28 | 紫光展讯通信(惠州)有限公司 | 配置通道的测试方法、装置、设备以及系统 |
US20220244309A1 (en) * | 2021-01-30 | 2022-08-04 | Siliconch Systems Pvt Ltd | SINGLE PIN DFT ARCHITECTURE FOR USBPD ICs |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060195894A1 (en) * | 2005-02-25 | 2006-08-31 | Microsoft Corporation | Windows remote debugger service |
CN101931477A (zh) * | 2010-09-02 | 2010-12-29 | 湖北众友科技实业股份有限公司 | Td-lte终端性能自动测试系统及方法 |
CN102053900A (zh) * | 2009-10-30 | 2011-05-11 | 鸿富锦精密工业(深圳)有限公司 | 测试电子装置的usb设备的方法和系统 |
-
2013
- 2013-04-15 CN CN201310128504.7A patent/CN103218280B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060195894A1 (en) * | 2005-02-25 | 2006-08-31 | Microsoft Corporation | Windows remote debugger service |
CN102053900A (zh) * | 2009-10-30 | 2011-05-11 | 鸿富锦精密工业(深圳)有限公司 | 测试电子装置的usb设备的方法和系统 |
CN101931477A (zh) * | 2010-09-02 | 2010-12-29 | 湖北众友科技实业股份有限公司 | Td-lte终端性能自动测试系统及方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104267331A (zh) * | 2014-09-16 | 2015-01-07 | 四川和芯微电子股份有限公司 | Usb芯片的测试方法 |
CN104714872A (zh) * | 2015-04-10 | 2015-06-17 | 南车株洲电力机车研究所有限公司 | 一种车载usb设备性能测试方法 |
CN104869036A (zh) * | 2015-06-05 | 2015-08-26 | 太仓市同维电子有限公司 | 一种利用机械手臂测试多个便携式usb路由器的方法 |
CN107168880A (zh) * | 2017-05-31 | 2017-09-15 | 中标软件有限公司 | 虚拟机测试方法及工具 |
CN109218055B (zh) * | 2017-07-04 | 2021-07-30 | 上海诺基亚贝尔软件有限公司 | 一种快速配置网元设备进行即插即用的方法和装置 |
CN109218055A (zh) * | 2017-07-04 | 2019-01-15 | 上海诺基亚贝尔股份有限公司 | 一种快速配置网元设备进行即插即用的方法和装置 |
CN107943702A (zh) * | 2017-11-28 | 2018-04-20 | 中标软件有限公司 | 硬件兼容性测试方法及装置 |
CN110910944A (zh) * | 2018-09-17 | 2020-03-24 | 爱思开海力士有限公司 | 保持存储器系统中的固件的设备和方法 |
CN109446013B (zh) * | 2018-11-01 | 2022-05-24 | 深圳三地一芯电子有限责任公司 | 存储设备测试方法、存储设备测试系统及存储介质 |
CN109446013A (zh) * | 2018-11-01 | 2019-03-08 | 深圳三地芯电子有限责任公司 | 存储设备测试方法、存储设备测试系统及存储介质 |
CN109634690A (zh) * | 2018-12-24 | 2019-04-16 | 山东中孚安全技术有限公司 | 一种基于WinPE系统的数据清除方法、装置、终端及存储介质 |
CN112068998A (zh) * | 2019-06-10 | 2020-12-11 | 山东华芯半导体有限公司 | 一种基于u盘pe系统的固态硬盘自动测试方法 |
CN111200837A (zh) * | 2019-12-20 | 2020-05-26 | 翱捷科技(上海)有限公司 | 一种Wi-Fi软件测试系统及方法 |
CN111200837B (zh) * | 2019-12-20 | 2023-12-22 | 翱捷科技股份有限公司 | 一种Wi-Fi软件测试系统及方法 |
CN111341380A (zh) * | 2020-02-25 | 2020-06-26 | 深圳忆联信息系统有限公司 | Ssd控制器复位的测试方法、装置和计算机设备 |
CN111737066A (zh) * | 2020-05-29 | 2020-10-02 | 浪潮电子信息产业股份有限公司 | 一种usb信号测试系统及方法 |
CN111708548A (zh) * | 2020-06-18 | 2020-09-25 | 北京小米移动软件有限公司 | 软件安装方法、装置、设备及存储介质 |
CN112860498A (zh) * | 2021-01-29 | 2021-05-28 | 紫光展讯通信(惠州)有限公司 | 配置通道的测试方法、装置、设备以及系统 |
US20220244309A1 (en) * | 2021-01-30 | 2022-08-04 | Siliconch Systems Pvt Ltd | SINGLE PIN DFT ARCHITECTURE FOR USBPD ICs |
US11933841B2 (en) * | 2021-01-30 | 2024-03-19 | Siliconch Systems Pvt Ltd | Single pin DFT architecture for USBPD ICs |
Also Published As
Publication number | Publication date |
---|---|
CN103218280B (zh) | 2016-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103218280A (zh) | 一种usb设备的硬件通用测试方法 | |
US6725178B2 (en) | Use of hidden partitions in a storage device for storing BIOS extension files | |
US10303458B2 (en) | Multi-platform installer | |
CN101373433A (zh) | 更新bios的方法以及使用该方法的电脑与系统 | |
CN110135130B (zh) | 一种嵌入式设备软件防改装方法及系统 | |
CN104572387A (zh) | 一种工程模式下调试终端的方法及装置 | |
CN107135462B (zh) | Uefi固件的蓝牙配对方法及其计算系统 | |
CN110119623A (zh) | 一种利用tpcm实现固件主动度量的可信主板实现方法 | |
CN111338698A (zh) | 一种bios准确引导服务器启动的方法及系统 | |
CN105068946A (zh) | 一种安卓设备的识别方法和装置 | |
CN109426527B (zh) | 在uefi固件及作业系统间分享蓝牙数据的电脑系统及其方法 | |
US8214825B2 (en) | Electronic device and method for installing software | |
CN107315607B (zh) | 一种驱动自适应加载系统 | |
US10616944B2 (en) | Computer system and method thereof for sharing of wireless connection information between UEFI firmware and OS | |
CN113900693A (zh) | 一种固件升级方法、装置、系统、电子设备及存储介质 | |
US20090198988A1 (en) | Method for verifying refreshed bios content | |
US10379872B1 (en) | Method for creation of a device driver for a peripheral device | |
CN113703914A (zh) | 测试方法和测试系统 | |
CN112214413A (zh) | 一种应用程序的测试方法、装置、设备及存储介质 | |
CN110825421A (zh) | 一种固件升级方法、系统及可读存储介质 | |
CN110119625A (zh) | 一种可信计算方法 | |
CN108052337A (zh) | 一种eMMC量产工具的固件升级方法及装置 | |
CN113918179A (zh) | 一种Linux下主机和智能网卡协同自动安装OS的方法及系统 | |
CN114153507A (zh) | 一种控制方法及装置、存储介质 | |
CN112948315B (zh) | 存储区域共享方法、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161228 |
|
CF01 | Termination of patent right due to non-payment of annual fee |