CN107943702A - 硬件兼容性测试方法及装置 - Google Patents

硬件兼容性测试方法及装置 Download PDF

Info

Publication number
CN107943702A
CN107943702A CN201711215941.7A CN201711215941A CN107943702A CN 107943702 A CN107943702 A CN 107943702A CN 201711215941 A CN201711215941 A CN 201711215941A CN 107943702 A CN107943702 A CN 107943702A
Authority
CN
China
Prior art keywords
test
hardware device
sub
list
hardware
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
Application number
CN201711215941.7A
Other languages
English (en)
Other versions
CN107943702B (zh
Inventor
穆芳成
李金丽
陈吉兰
杨清玉
李志伟
申利飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Standard Software Co Ltd
Original Assignee
China Standard Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Standard Software Co Ltd filed Critical China Standard Software Co Ltd
Priority to CN201711215941.7A priority Critical patent/CN107943702B/zh
Publication of CN107943702A publication Critical patent/CN107943702A/zh
Application granted granted Critical
Publication of CN107943702B publication Critical patent/CN107943702B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management

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

本发明提供了一种硬件兼容性测试方法及装置,上述方法包括:将默认的环境配置文件复制到特定目录以表示当前测试环境的配置信息,并基于所述配置文件完成初始化配置;获取当前系统中所有的硬件设备,生成包含系统中所有的硬件设备的硬件设备列表;遍历硬件设备列表,获取与硬件设备列表中各硬件设备对应的子测试项,筛选出满足特定测试要求的子测试项生成测试计划列表;调用测试计划列表中各子测试项的测试脚本进行测试。本发明实施例提供的硬件兼容性测试方法,不仅可以对系统中的基础硬件设备进行高效地兼容性测试,还可以完成对硬件设备的统一管理,进而使得硬件设备可以在不同的平台上得以正常运行,提升系统的管理及运行效率。

Description

硬件兼容性测试方法及装置
技术领域
本发明涉及测试技术领域,特别是涉及一种硬件兼容性测试方法及装置。
背景技术
随着计算机技术的不断发展,各种新的硬件设备会添加到计算机操作系统中,且各种硬件都具备自己的管理方式和管理工具。
多个独立的硬件设备能否在操作系统的统一调度下协调工作发挥性能互不排斥,则需要对其进行测试,使硬件在不同的平台上得以正常运行。那么,如何对硬件的兼容性测试则成了需要解决的问题。
发明内容
本发明提供了一种硬件兼容性测试方法及装置以克服上述问题或者至少部分地解决上述问题。
根据本发明的一个方面,提供了一种硬件兼容性测试方法,包括:
将默认的环境配置文件复制到特定目录以表示当前测试环境的配置信息,并基于所述配置文件完成初始化配置;
获取当前系统中所有的硬件设备,生成包含所述系统中所有的硬件设备的硬件设备列表;
遍历所述硬件设备列表,获取与所述硬件设备列表中各硬件设备对应的子测试项,筛选出满足特定测试要求的子测试项生成测试计划列表;
调用所述测试计划列表中各子测试项的测试脚本进行测试。
可选地,所述获取当前系统中所有的硬件设备,生成包含所述系统中所有的硬件设备的硬件设备列表,包括:
将当前系统中的硬件设备分为udev设备和proc设备,通过cat命令和/或特定的设备管理工具获取所述系统中的所有硬件设备;
生成包含所述系统中所有的硬件设备的硬件设备列表,其中,所述硬件设备列表中的硬件设备均以字典的形式进行存放。
可选地,遍历所述硬件设备列表,获取与所述硬件设备列表中各硬件设备对应的子测试项,筛选出满足特定测试要求的子测试项生成测试计划列表,包括:
遍历所述硬件设备列表,获取与所述硬件设备列表中各硬件设备对应的子测试项,判断各子测试项是否满足特定的测试要求;其中,判断各子测试项是否满足特定的测试要求包括:判断各子测试项是否属于相应的硬件设备以及是否满足对应的测试条件;
基于满足所述测试要求的子测试项生成测试计划列表。
可选地,所述遍历所述硬件设备列表,获取与所述硬件设备列表中各硬件设备对应的子测试项,筛选出满足特定测试要求的子测试项生成测试计划列表,包括:
遍历测试文件目录下各个子测试项文件夹中的主测试脚本,获取所述主测试脚本中所包含的类名称;
判断每个类是否属于主类Test的子类,若是,则利用各个子类的初始化函数完成子类对象的声明;
调用各个子测试项的plan函数,获取硬件设备列表,循环所述硬件设备列表以及所有已声明的子类对象的子测试项,基于满足测试要求的硬件设备以及对应的子测试项生成测试计划列表。
可选地,所述遍历测试文件目录下各个子测试项文件夹中的主测试脚本,获取所述主测试脚本中所包含的类名称之前,还包括:
判断是否存在上一次测试的测试结果,若是,则获取并解析上一次测试的测试结果文件;
将所述测试结果文件解析成DOM对象得到上一次测试的硬件设备列表、测试计划列表和/或测试结果。
可选地,所述调用所述测试计划列表中各子测试项的测试脚本进行测试,包括:
通过子测试项的父类为入口逐一调用每个子测试项的测试脚本开始测试;在每个子测试项测试开始时,调用各自的Verify函数验证对应的子测试项是否满足测试要求;
若是,则调用子测试项的测试脚本进行测试。
可选地,所述将默认的环境配置文件复制到特定目录以表示当前测试环境的配置信息,并基于所述配置文件完成初始化配置之后,还包括:
判断所述系统中是否存在上一次的测试进程,若是,则确定是否覆盖上一次的测试进程;
若确定覆盖所述上一次的测试进程,则判断上一次的测试进程是否存在测试结果,若存在上一次的测试进行的测试结果,则对上一次测试的测试结果进行保存。
可选地,所述调用所述测试计划列表中各子测试项的测试脚本进行测试,之后,还包括:
生成并保存测试结果,包括:
利用TXT文件记录每项测试的屏幕输出信息;和/或
利用XML文件记录各硬件设备的测试结果;
其中,所述测试结果包括以下至少之一:硬件环境信息、操作系统环境信息、测试项的硬件设备信息、测试过程输出以及测试日志。
根据本发明的另一个方面,还提供了一种硬件兼容性测试装置,包括:
配置模块,配置为将默认的环境配置文件复制到特定目录以表示当前测试环境的配置信息,并基于所述配置文件完成初始化配置;
硬件设备列表生成模块,配置为获取当前系统中所有的硬件设备,生成包含所述系统中所有的硬件设备的硬件设备列表;
测试计划列表生成模块,配置为遍历所述硬件设备列表,获取与所述硬件设备列表中各硬件设备对应的子测试项,筛选出满足特定测试要求的子测试项生成测试计划列表;
测试模块,配置为调用所述测试计划列表中各子测试项的测试脚本进行测试。
可选地,所述硬件设备列表生成模块包括:
设备获取单元,配置为将当前系统中的硬件设备分为udev设备和proc设备,通过cat命令和/或特定的设备管理工具获取所述系统中的所有硬件设备;
列表生成单元,配置为生成包含所述系统中所有的硬件设备的硬件设备列表,其中,所述硬件设备列表中的硬件设备均以字典的形式进行存放。
可选地,所述测试计划列表生成模块还配置为:
遍历所述硬件设备列表,获取与所述硬件设备列表中各硬件设备对应的子测试项,判断各子测试项是否满足特定的测试要求;其中,判断各子测试项是否满足特定的测试要求包括:判断各子测试项是否属于相应的硬件设备以及是否满足对应的测试条件;
基于满足所述测试要求的子测试项生成测试计划列表。
可选地,所述测试计划列表生成模块还配置为:
遍历测试文件目录下各个子测试项文件夹中的主测试脚本,获取所述主测试脚本中所包含的类名称;
判断每个类是否属于主类Test的子类,若是,则利用各个子类的初始化函数完成子类对象的声明;
调用各个子测试项的plan函数,获取硬件设备列表,循环所述硬件设备列表以及所有已声明的子类对象的子测试项,基于满足测试要求的硬件设备以及对应的子测试项生成测试计划列表。
可选地,所述测试计划列表生成模块还配置为:
遍历测试文件目录下各个子测试项文件夹中的主测试脚本之前,判断是否存在上一次测试的测试结果,若是,则获取并解析上一次测试的测试结果文件;将所述测试结果文件解析成DOM对象得到上一次测试的硬件设备列表、测试计划列表和/或测试结果。
可选地,所述测试模块还配置为:
通过子测试项的父类为入口逐一调用每个子测试项的测试脚本开始测试;在每个子测试项测试开始时,调用各自的Verify函数验证对应的子测试项是否满足测试要求;若是,则调用子测试项的测试脚本进行测试。
可选地,还包括:
第一判断模块,配置为判断所述系统中是否存在上一次的测试进程,若是,则确定是否覆盖上一次的测试进程;
第二判断模块,配置为当确定覆盖所述上一次的测试进程时,判断上一次的测试进程是否存在测试结果,若存在上一次的测试进行的测试结果,则对上一次测试的测试结果进行保存。
可选地,上述装置还包括:
保存模块,配置为生成并保存测试结果;包括:
利用TXT文件记录每项测试的屏幕输出信息;和/或
利用XML文件记录各硬件设备的测试结果;
其中,所述测试结果包括以下至少之一:硬件环境信息、操作系统环境信息、测试项的硬件设备信息、测试过程输出以及测试日志。
根据本发明的再一个方面,还提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据上述任一项所述的硬件兼容性测试方法。
本发明提供了一种硬件兼容性测试方法及装置,基于本发明提供的硬件兼容性测试方法,在测试开始前,基于复制到特定目录的默认的环境配置文件进行初始化配置,快速对环境进行部署。完成初始化配置后,即可基于系统中的所有硬件设备生成硬件设备列表,进而根据硬件设备列表中与各硬件设备对应的子测试项筛选出满足测试要求的子测试项进行测试。本发明提供的硬件兼容性测试方法,不仅可以对系统中的基础硬件设备进行高效地兼容性测试,还可以完成对硬件设备的统一管理,进而使得硬件设备可以在不同的平台上得以正常运行,提升系统的管理及运行效率。尤其适用于Linux操作系统所支持的硬件设备。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是根据本发明实施例的硬件兼容性测试方法流程示意图;
图2是根据本发明优选实施例的硬件兼容性测试方法流程示意图;
图3是根据本发明实施例的生成测试计划的方法流程示意图;
图4是根据本发明实施例的硬件兼容性测试装置结构示意图;
图5是根据本发明优选实施例的硬件兼容性测试装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1是根据本发明实施例硬件兼容性测试方法流程示意图,如图1所示,根据本发明实施例硬件兼容性测试方法流程包括:
步骤S102,将默认的环境配置文件复制到特定目录以表示当前测试环境的配置信息,并基于配置文件完成初始化配置;
步骤S104,获取当前系统中所有的硬件设备,生成包含系统中所有的硬件设备的硬件设备列表;
步骤S106,遍历硬件设备列表,获取与硬件设备列表中各硬件设备对应的子测试项,筛选出满足特定测试要求的子测试项生成测试计划列表;
步骤S108,调用测试计划列表中各子测试项的测试脚本进行测试。
本发明实施例提供了一种硬件兼容性测试方法,测试开始前,基于复制到特定目录的默认的环境配置文件进行初始化配置,快速对环境进行部署。完成初始化配置后,即可基于系统中的所有硬件设备生成硬件设备列表,进而根据硬件设备列表中与各硬件设备对应的子测试项筛选出满足测试要求的子测试项进行测试。本发明实施例提供的硬件兼容性测试方法,不仅可以对系统中的基础硬件设备进行高效地兼容性测试,还可以完成对硬件设备的统一管理,进而使得硬件设备可以在不同的平台上得以正常运行,提升系统的管理及运行效率。尤其适用于Linux操作系统所支持的硬件设备。
可选地,基于上述实施例提供的测试方法进行硬件设备的兼容性测试时,测试入口可以优选为neoready脚本,调用run函数开始进行测试。进行初始化配置时,可通过XLM文件管理测试环境就配置,更加防快捷的进行环境部署。
环境部署好之后,上述步骤S104可以进一步包括:将当前系统中的硬件设备分为udev设备和proc设备,通过cat命令和/或特定的设备管理工具获取系统中的所有硬件设备;生成包含系统中所有的硬件设备的硬件设备列表,其中,硬件设备列表中的硬件设备均以字典的形式进行存放。本实施例中,通过udev设备以及proc设备将所有设备统一管理,更加完整准确的获取所有硬件设备。其中,通过听过字典的方式管理所有设备,将设备概述成设备名称以及设备属性的方式,可以更加方便管理所有设备。
基于本发明实施例提供的方法可对中可以对系统中的硬件设备进行测试,如:光驱、USB、内存、CPU、网卡等。具体的测试内容可以参见具体设备选择不同的测试项,例如:
1、光驱:测试读、写、擦除三种测试;
2、USB:状态获取、热插拔;
3、CPU:变频能力测试、时钟源获取、压力测试;
4、内存:获取内存信息、利用多线程实现加压测试;
5、网卡:获取网卡信息、TCP、UDP带宽速度等。
以上只是示意性地列举的各硬件设备以及相关测试项,实际应用中还可以对其他的硬件设备进行多种测试,本发明不做限定。
在本发明实施例中,制定测试计划时,可以结合所获取的硬件设备以及硬件设备的属性规则来制定测试计划。在判断各子测试项是否满足特定的测试要求时,可以判断各子测试项是否属于相应的硬件设备以及是否满足对应的测试条件,进而基于满足测试要求的子测试项生成测试计划列表。
列出测试计划的关键是调用各个子测试项的对象的列计划函数,需要提前声明主类Test子类对象。因此,上述步骤S106可进一步包括:遍历测试文件目录下各个子测试项文件夹中的主测试脚本,获取主测试脚本中所包含的类名称;判断每个类是否属于主类Test的子类,若是,则利用各个子类的初始化函数完成子类对象的声明;调用各个子测试项的plan函数,获取硬件设备列表,循环硬件设备列表以及所有已声明的子类对象的子测试项,基于满足测试要求的硬件设备以及对应的子测试项生成测试计划列表。
在本发明实施例中,每个子测试项的plan函数根据各自的硬件设备具有不同的plan实现。例如,光驱测试的plan函数需要验证其中的ID_CDROM=1等与硬件相关的参数要求。每个子测试项的plan函数完成之后就能确定相关的硬件设备能否测试,进而完成测试列表定制。
在本次测试开始前,可能会存在测试进程,因此,测试前,可对是否存在上一次的测试进程进行判断,如果存在,可以判断是覆盖上一次测试还是停止本次测试,可以保证多次测试不会出现并行测试的情况。完成判断之后则可对于上次测试的结果进行提交和保存。
进一步地,测试计划时刻结合上次测试的测试结果进行制定。即可先判断是否存在上一次测试的测试结果,如果存在的话,则获取并解析上一次测试的测试结果文件,将测试结果文件解析成DOM对象得到上一次测试的硬件设备列表、测试计划列表和/或测试结果,结合上一次测试的测试结果以及当前的测试情况生成测试计划。本实施例中,将匹配硬件设备的udev的规则以及历史测试结果生成最新的测试列表,可以使得测试列表更加完整且不会出现重复,进而使得测试更加高效。
在调用测试计划列表中各子测试项的测试脚本进行测试时,可以通过子测试项的父类为入口逐一调用每个子测试项的测试脚本开始测试;在每个子测试项测试开始时,调用各自的Verify函数验证对应的子测试项是否满足测试要求;若是,则调用子测试项的测试脚本进行测试。其中,每个子测试项都有自己的测试脚本,因此,可以通过新增加一些测试脚本来完成新的硬件兼容性测试。通过新的测试脚本完成新的硬件测试以及管理,使得采用上述测试方法进行硬件兼容性测试的测试工具的耦合性低,易于扩展。
测试完成之后,可生成并保存测试结果。测试结果可以通过以下方式进行保存:利用TXT文件记录每项测试的屏幕输出信息;和/或利用XML文件记录各硬件设备的测试结果。其中,测试结果包括以下至少之一:硬件环境信息、操作系统环境信息、测试项的硬件设备信息、测试过程输出以及测试日志。通过XML文件存储上述测试结果,可以使得测试结果和日志更加完整丰富,方便问题定位。
基于本发明实施例提供的硬件兼容性测试方法,可实现硬件设备的统一管理及兼容性测试,尤其是Linux下各种基础硬件的统一管理及兼容性测试。测试中根据udev设备管理规则文件匹配对应属性,并结合上次测试的测试结果完成测试计划的生成。同时,每个子测试项包含各自的测试代码完成各自的兼容性测试。通过将系统中的硬件设备分为udev设备和proc设备进行同一管理,使得基于Linux的硬件设备管理更加简单快捷,而兼容性测试可以确定各基础硬件设备与对应的Linux操行系统的兼容性。
本发明优选实施例还提供了一种采用上述实施例提供的测试方法进行硬件兼容性测试的测试工具。
图2示出了根据本发明优选实施例的硬件兼容性测试方法流程示意图。
本优选实施例的测试对象是Linux操作系统支持的基础硬件设备,主要包括:USB、光驱、内存、CPU、虚拟化、声卡、显卡等。测试开始之前会将默认的环境配置文件拷贝到特定目录来表示当前测试下的配置情况,主要的配置参数如下所示,包括测试数据目录、日志目录、库文件目录、子测试项目录等等。通过这个环境配置文件则能完成所有的初始化配置。
测试开始时会判断是否存在上次的测试进程,如果存在让用户判断是覆盖测试还是停止本次测试,这样保证了多次测试不会出现并行测试的情况。完成判断之后则可会对于上次测试的结果进行提交,并将测试结果保存到本地或服务端。完成上轮测试结果保存之后则正式开始这轮测试,测试首先会遍历所有子测试项并根据一些限定条件判断该子测试项是否与系统吻合满足测试要求,如果满足测试要求则会生成测试列表,完成测试列表打印之后则可以开始调用各个子测试项的脚本开始测试。其中,在生成测试列表时,可获取硬件设备以及相关的子测试项,同时结合上轮的测试结果,判断哪些需要进行测试,进而避免重复测试,节省测试时间,提升测试效率。
测试可分为两种模式:交互模式和非交互模式。交互模式即需要测试者做一些选择,例如声卡测试就需要测试人员听播放的声音来判断录制声音是否成功。CPU变频测试则不需要测试人员干预可以直接测试。因此,测试框架完成测试之后则会将测试过程中的测试结果以XML格式保存并提示是否保存到服务器端,完成测试。
整个流程中关键的是四个步骤:获取硬件列表、生成测试计划、具体测试、测试结果保存。
1.获取系统中所有的硬件设备列表
本优选实施例提供的方法会先将硬件设备分为两大类:udev设备和proc设备。proc设备包括:内存/proc/meminfo、CPU信息/proc/cpuinfo和输入设备/proc/bus/input/devices。通过Linux中查看文件的命令“cat”以及udev设备管理工具“udevadm”来获取所有的设备。设备管理时以字典的方式存放:[key:value],例如:usb设备的属性中“SUBSYSTEM”=‘usb’。最终获取所有的硬件设备列表均以字典的形式存放,包括设备名称、设备属性等信息。
2.生成测试计划列表
设备列表生成之后需要遍历每个子测试项来进一步判定是否属于相应的设备以及是否满足对应的预测试条件,例如测试光驱设备时则需要判定其属性中‘ID_CDROM’的值是否为1,为1则表示属于CD光驱,则可以列入测试计划。因此,所有子测试项遍历完成后则生成最新的测试计划。
3.子测试项测试
测试的关键就是通过子测试项的父类为入口逐一调用各个子测试项的测试代码开始测试。每项测试开始时会调用各自的Verify函数来验证其是否满足测试要求,例如CPUScaling测试,其中/sys/devices/system/cpu/cpu*/cpufreq表示cpu支持变频功能。判断该目录是否存在,存在则开始测试cpuscaling,否则提示测试验证失败。
每个子测试项都有自己的测试脚本,因此,可以通过新增加一些测试脚本来完成新的硬件兼容性测试。
在测试开始前,会选择测试计划列表中的待测子测试项进行测试,为保证测试的完整性,会在每个子测试项进行测试完成之后判断所有子测试项是否测试完成,若否,则新的子测试项开始测试,即调用tests目录下子测试项开始测试,当完成当前子测试项测试之后,在判断是否所有子测试项是否测试完成;若所有子测试项测试完成,则生成并输出测试结果。
4.保存测试结果
本实施例中,测试结果以两种方式保存:txt记录测试的屏幕输出信息、xml包含软硬件环境以及日志的结果输出。以cpuscaling测试的一个测试txt部分结果举例如下所示。其中包括标签<summary>表示最终的结果是否通过或失败,同时上面会记录测试过程中屏幕输出。
同时xml格式的结果内容大同小异,但是xml格式的结果会记录所有的硬件测试结果。它的主要标签有表1所示内容。
表1
xml格式的结果中利用css格式化文件进行格式设置,因此可以直接利用浏览器打开查看完整的测试结果和详细内容
图3示出了根据本发明优选实施例的生成测试计划的方法流程示意图。
本发明优选实施例中通过结合获取硬件设备以及硬件设备的属性规则来制定测试计划。列出测试计划的主要步骤如流程图所示:解析结果文件、声明Test子类对象、执行具体子测试项plan以及最后生成测试计划。
1.解析结果文件
列出测试计划需要结合当前的情况以及上轮的测试结果,因此第一步则是解析测试结果文件results.xml获取上一次测试结果。通过解析成DOM(文档对象模型(DocumentObject Model))对象获取上轮测试的设备列表、测试计划以及测试结果。通过xml文件的实际标签来逐一获取对应的设备以及测试结果。
2.声明Test子类对象
列出测试计划的关键是调用各个子测试项的对象的列计划函数,因此需要提前声明Test子类对象。首先,通过遍历tests目录下各个子测试项文件夹下主测试脚本,获取其中包含的类名称;其次,判断每个类是否是属于Test的子类;最后利用各个子类的初始化函数完成子类对象声明。
3.执行具体子测试项plan
在完成子测试项声明后,则可以开始调用各个子测试项的plan函数开始判断是否列入测试计划。
第一步:获取一个硬件设备列表;第二步:循环所有声明的子测试对象,并且循环设备列表,将满足条件的硬件设备以及对应的子测试项加入最终的测试列表中。
Udev管理设备中包含多种设备的规则文件,因此本文通过匹配规则文件中的属性来判定是否属于某类设备,并确定是否加入测试计划。
Udev设备通过内核子系统sysfs以及tempfs实现,其中设备的规则文件位于:/usr/lib/udev/rules.d目录下。表2列出各种设备关键属性匹配内容。
表2
通过遍历获取的设备列表,逐一进行属性匹配,如果属性匹配成功,则将当前测试项加入最终的测试列表。之后即可判断上一次测试结果是否存在,若是,则比较已有结果生成测试计划列表;若否,则生成新的认证文件后,保存测试计划列表。
基于同一发明构思,本发明实施例还提供了一种硬件兼容性测试装置,如图4所示,本发明实施例的硬件兼容性测试装置可以包括:
配置模块10,配置为将默认的环境配置文件复制到特定目录以表示当前测试环境的配置信息,并基于所述配置文件完成初始化配置;
硬件设备列表生成模块20,配置为获取当前系统中所有的硬件设备,生成包含所述系统中所有的硬件设备的硬件设备列表;
测试计划列表生成模块30,配置为遍历所述硬件设备列表,获取与所述硬件设备列表中各硬件设备对应的子测试项,筛选出满足特定测试要求的子测试项生成测试计划列表;
测试模块40,配置为调用所述测试计划列表中各子测试项的测试脚本进行测试。
可选地,在本发明一个优选实施例中,如图5所示,硬件设备列表生成模块20可以包括:
设备获取单元21,配置为将当前系统中的硬件设备分为udev设备和proc设备,通过cat命令和/或特定的设备管理工具获取所述系统中的所有硬件设备;
列表生成单元22,配置为生成包含所述系统中所有的硬件设备的硬件设备列表,其中,所述硬件设备列表中的硬件设备均以字典的形式进行存放。
可选地,在本发明一个优选实施例中,测试计划列表生成模块30还可以配置为:
遍历所述硬件设备列表,获取与所述硬件设备列表中各硬件设备对应的子测试项,判断各子测试项是否满足特定的测试要求;其中,判断各子测试项是否满足特定的测试要求包括:判断各子测试项是否属于相应的硬件设备以及是否满足对应的测试条件;
基于满足所述测试要求的子测试项生成测试计划列表。
可选地,在本发明一个优选实施例中,测试计划列表生成模块30还可以配置为:
遍历测试文件目录下各个子测试项文件夹中的主测试脚本,获取所述主测试脚本中所包含的类名称;
判断每个类是否属于主类Test的子类,若是,则利用各个子类的初始化函数完成子类对象的声明;
调用各个子测试项的plan函数,获取硬件设备列表,循环所述硬件设备列表以及所有已声明的子类对象的子测试项,基于满足测试要求的硬件设备以及对应的子测试项生成测试计划列表。
可选地,在本发明一个优选实施例中,测试计划列表生成模块30还可以配置为:
遍历测试文件目录下各个子测试项文件夹中的主测试脚本之前,判断是否存在上一次测试的测试结果,若是,则获取并解析上一次测试的测试结果文件;将所述测试结果文件解析成DOM对象得到上一次测试的硬件设备列表、测试计划列表和/或测试结果。
可选地,在本发明一个优选实施例中,测试模块40还可以配置为:
通过子测试项的父类为入口逐一调用每个子测试项的测试脚本开始测试;在每个子测试项测试开始时,调用各自的Verify函数验证对应的子测试项是否满足测试要求;若是,则调用子测试项的测试脚本进行测试。
可选地,在本发明一个优选实施例中,如图5所示,上述装置还可以包括:
第一判断模块50,配置为判断所述系统中是否存在上一次的测试进程,若是,则确定是否覆盖上一次的测试进程;
第二判断模块60,配置为当确定覆盖所述上一次的测试进程时,判断上一次的测试进程是否存在测试结果,若存在上一次的测试进行的测试结果,则对上一次测试的测试结果进行保存。
可选地,在本发明一个优选实施例中,如图5所示,上述装置还可以包括:
保存模块70,配置为生成并保存测试结果;包括:
利用TXT文件记录每项测试的屏幕输出信息;和/或
利用XML文件记录各硬件设备的测试结果;
其中,所述测试结果包括以下至少之一:硬件环境信息、操作系统环境信息、测试项的硬件设备信息、测试过程输出以及测试日志。
本发明实施例还提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据上述任一项所述的硬件兼容性测试方法。
本发明实施例提供了一种硬件兼容性测试方法及装置,基于本发明实施例提供的硬件兼容性测试方法,在测试开始前,基于复制到特定目录的默认的环境配置文件进行初始化配置,快速对环境进行部署。完成初始化配置后,即可基于系统中的所有硬件设备生成硬件设备列表,进而根据硬件设备列表中各测试项删选出满足测试要求的子测试项进行测试。本发明实施例提供的硬件兼容性测试方法,不仅可以对系统中的基础硬件设备进行高效地兼容性测试,还可以完成对硬件设备的统一管理,进而使得硬件设备可以在不同的平台上得以正常运行,提升系统的管理及运行效率。
本发明实施例过udev设备以及proc设备将所有设备统一管理,更加完整准确的获取所有的硬件设备。且通过匹配硬件设备的udev的规则文件以及过去测试结果生成最新的测试列表,测试列表更加完整且不会出现重复,更加高效。进一步地,还可以通过新的测试脚本完成新的硬件测试以及管理,使得采用上述测试方法进行硬件兼容性测试的测试工具的耦合性低,易于扩展。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的硬件兼容性测试装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。

Claims (10)

1.一种硬件兼容性测试方法,包括:
将默认的环境配置文件复制到特定目录以表示当前测试环境的配置信息,并基于所述配置文件完成初始化配置;
获取当前系统中所有的硬件设备,生成包含所述系统中所有的硬件设备的硬件设备列表;
遍历所述硬件设备列表,获取与所述硬件设备列表中各硬件设备对应的子测试项,筛选出满足特定测试要求的子测试项生成测试计划列表;
调用所述测试计划列表中各子测试项的测试脚本进行测试。
2.根据权利要求1所述的方法,其中,所述获取当前系统中所有的硬件设备,生成包含所述系统中所有的硬件设备的硬件设备列表,包括:
将当前系统中的硬件设备分为udev设备和proc设备,通过cat命令和/或特定的设备管理工具获取所述系统中的所有硬件设备;
生成包含所述系统中所有的硬件设备的硬件设备列表,其中,所述硬件设备列表中的硬件设备均以字典的形式进行存放。
3.根据权利要求1所述的方法,其中,遍历所述硬件设备列表,获取与所述硬件设备列表中各硬件设备对应的子测试项,筛选出满足特定测试要求的子测试项生成测试计划列表,包括:
遍历所述硬件设备列表,获取与所述硬件设备列表中各硬件设备对应的子测试项,判断各子测试项是否满足特定的测试要求;其中,判断各子测试项是否满足特定的测试要求包括:判断各子测试项是否属于相应的硬件设备以及是否满足对应的测试条件;
基于满足所述测试要求的子测试项生成测试计划列表。
4.根据权利要求3所述的方法,其中,遍历所述硬件设备列表,获取与所述硬件设备列表中各硬件设备对应的子测试项,筛选出满足特定测试要求的子测试项生成测试计划列表,包括:
遍历测试文件目录下各个子测试项文件夹中的主测试脚本,获取所述主测试脚本中所包含的类名称;
判断每个类是否属于主类Test的子类,若是,则利用各个子类的初始化函数完成子类对象的声明;
调用各个子测试项的plan函数,获取硬件设备列表,循环所述硬件设备列表以及所有已声明的子类对象的子测试项,基于满足测试要求的硬件设备以及对应的子测试项生成测试计划列表。
5.根据权利要求4所述的方法,其中,遍历测试文件目录下各个子测试项文件夹中的主测试脚本,获取所述主测试脚本中所包含的类名称之前,还包括:
判断是否存在上一次测试的测试结果,若是,则获取并解析上一次测试的测试结果文件;
将所述测试结果文件解析成DOM对象得到上一次测试的硬件设备列表、测试计划列表和/或测试结果。
6.根据权利要求5所述的方法,其中,调用所述测试计划列表中各子测试项的测试脚本进行测试,包括:
通过子测试项的父类为入口逐一调用每个子测试项的测试脚本开始测试;在每个子测试项测试开始时,调用各自的Verify函数验证对应的子测试项是否满足测试要求;
若是,则调用子测试项的测试脚本进行测试。
7.根据权利要求1所述的方法,其中,将默认的环境配置文件复制到特定目录以表示当前测试环境的配置信息,并基于所述配置文件完成初始化配置之后,还包括:
判断所述系统中是否存在上一次的测试进程,若是,则确定是否覆盖上一次的测试进程;
若确定覆盖所述上一次的测试进程,则判断上一次的测试进程是否存在测试结果,若存在上一次的测试进行的测试结果,则对上一次测试的测试结果进行保存。
8.根据权利要求1-7任一项所述的方法,其中,调用所述测试计划列表中各子测试项的测试脚本进行测试,之后,还包括:
生成并保存测试结果,包括:
利用TXT文件记录每项测试的屏幕输出信息;和/或
利用XML文件记录各硬件设备的测试结果;
其中,所述测试结果包括以下至少之一:硬件环境信息、操作系统环境信息、测试项的硬件设备信息、测试过程输出以及测试日志。
9.一种硬件兼容性测试装置,包括:
配置模块,配置为将默认的环境配置文件复制到特定目录以表示当前测试环境的配置信息,并基于所述配置文件完成初始化配置;
硬件设备列表生成模块,配置为获取当前系统中所有的硬件设备,生成包含所述系统中所有的硬件设备的硬件设备列表;
测试计划列表生成模块,配置为遍历所述硬件设备列表,获取与所述硬件设备列表中各硬件设备对应的子测试项,筛选出满足特定测试要求的子测试项生成测试计划列表;
测试模块,配置为调用所述测试计划列表中各子测试项的测试脚本进行测试。
10.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据权利要求1-8中任一项所述的硬件兼容性测试方法。
CN201711215941.7A 2017-11-28 2017-11-28 硬件兼容性测试方法及装置 Active CN107943702B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711215941.7A CN107943702B (zh) 2017-11-28 2017-11-28 硬件兼容性测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711215941.7A CN107943702B (zh) 2017-11-28 2017-11-28 硬件兼容性测试方法及装置

Publications (2)

Publication Number Publication Date
CN107943702A true CN107943702A (zh) 2018-04-20
CN107943702B CN107943702B (zh) 2021-08-24

Family

ID=61949288

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711215941.7A Active CN107943702B (zh) 2017-11-28 2017-11-28 硬件兼容性测试方法及装置

Country Status (1)

Country Link
CN (1) CN107943702B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108717386A (zh) * 2018-05-17 2018-10-30 郑州云海信息技术有限公司 一种服务器自动化诊断方法及系统
CN108959082A (zh) * 2018-06-27 2018-12-07 郑州云海信息技术有限公司 一种Openstack的硬件兼容性测试方法及系统
CN109949516A (zh) * 2019-03-26 2019-06-28 浪潮金融信息技术有限公司 一种银医设备自动识别子设备端口号的初步检测方法
CN111737109A (zh) * 2020-05-20 2020-10-02 山东鲸鲨信息技术有限公司 一种集群文件系统测试方法及装置
CN111786854A (zh) * 2020-06-30 2020-10-16 曙光信息产业(北京)有限公司 网卡测试方法、装置、电子设备及可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479134A (zh) * 2010-11-25 2012-05-30 上海华虹集成电路有限责任公司 一种通用接口测试系统及测试方法
WO2013062956A1 (en) * 2011-10-26 2013-05-02 Google Inc. Automatically testing a program executable on a graphics card
CN103164311A (zh) * 2011-12-16 2013-06-19 环旭电子股份有限公司 用以自动测试待测物的通信功能的方法
CN103218280A (zh) * 2013-04-15 2013-07-24 飞天诚信科技股份有限公司 一种usb设备的硬件通用测试方法
US20140075247A1 (en) * 2012-09-11 2014-03-13 Algoltek, Inc. Method of getting out from error entering into test mode in usb3.0 apparatus
CN103823145A (zh) * 2014-03-18 2014-05-28 福建联迪商用设备有限公司 硬件自动化测试平台
CN103970570A (zh) * 2014-05-16 2014-08-06 浪潮电子信息产业股份有限公司 一种磁盘阵列与主机兼容适配的测试方法
CN105677571A (zh) * 2016-01-29 2016-06-15 努比亚技术有限公司 移动终端软件兼容性测试装置及方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479134A (zh) * 2010-11-25 2012-05-30 上海华虹集成电路有限责任公司 一种通用接口测试系统及测试方法
WO2013062956A1 (en) * 2011-10-26 2013-05-02 Google Inc. Automatically testing a program executable on a graphics card
CN103164311A (zh) * 2011-12-16 2013-06-19 环旭电子股份有限公司 用以自动测试待测物的通信功能的方法
US20140075247A1 (en) * 2012-09-11 2014-03-13 Algoltek, Inc. Method of getting out from error entering into test mode in usb3.0 apparatus
CN103218280A (zh) * 2013-04-15 2013-07-24 飞天诚信科技股份有限公司 一种usb设备的硬件通用测试方法
CN103823145A (zh) * 2014-03-18 2014-05-28 福建联迪商用设备有限公司 硬件自动化测试平台
CN103970570A (zh) * 2014-05-16 2014-08-06 浪潮电子信息产业股份有限公司 一种磁盘阵列与主机兼容适配的测试方法
CN105677571A (zh) * 2016-01-29 2016-06-15 努比亚技术有限公司 移动终端软件兼容性测试装置及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈乃塘: "USB接口兼容性与互通性测试步骤分析", 《电子测试》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108717386A (zh) * 2018-05-17 2018-10-30 郑州云海信息技术有限公司 一种服务器自动化诊断方法及系统
CN108959082A (zh) * 2018-06-27 2018-12-07 郑州云海信息技术有限公司 一种Openstack的硬件兼容性测试方法及系统
CN109949516A (zh) * 2019-03-26 2019-06-28 浪潮金融信息技术有限公司 一种银医设备自动识别子设备端口号的初步检测方法
CN111737109A (zh) * 2020-05-20 2020-10-02 山东鲸鲨信息技术有限公司 一种集群文件系统测试方法及装置
CN111786854A (zh) * 2020-06-30 2020-10-16 曙光信息产业(北京)有限公司 网卡测试方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN107943702B (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
CN107943702A (zh) 硬件兼容性测试方法及装置
US6941546B2 (en) Method and apparatus for testing a software component using an abstraction matrix
US11494181B2 (en) Automating generation of library suggestion engine models
US6986125B2 (en) Method and apparatus for testing and evaluating a software component using an abstraction matrix
US9454466B2 (en) Explaining partially illegal combinations in combinatorial models
US20040260516A1 (en) Method and system for supporting negative testing in combinatorial test case generators
US8849612B2 (en) System and method of substituting parameter sets in self-contained mini-applications
US8892386B2 (en) Method and apparatus for post-silicon testing
US8868976B2 (en) System-level testcase generation
CN111158656B (zh) 基于因果树法的测试代码生成方法及装置
US9274933B2 (en) Pretest setup planning
US20070169020A1 (en) Method to find a violation of a coding rule in program
Moore Python GUI Programming with Tkinter: Design and build functional and user-friendly GUI applications
US9047424B1 (en) System and method for analog verification IP authoring and storage
CN111143228B (zh) 基于决策表法的测试代码生成方法及装置
US9501598B1 (en) System and method for assertion publication and re-use
US20150254167A1 (en) Structured syntax for story specification
Guana et al. How Do Developers Solve Software-engineering Tasks on Model-based Code Generators? An Empirical Study Design.
US7689905B1 (en) Containment of terminal application run-time data for viewing when disconnected from a host server
CN113051262A (zh) 一种数据质检方法、装置、设备及存储介质
Lott Mastering object-oriented python
JP2011204069A (ja) テスト方法およびテスト仕様書テストデータ自動生成装置
CN111898762A (zh) 深度学习模型目录创建
US9665454B2 (en) Extracting test model from textual test suite
Ibrahim et al. An eclipse plug-in tool for generating test cases from source codes

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