掌桥专利:专业的专利平台
掌桥专利
首页

测试方法、服务器、管理设备及测试系统

文献发布时间:2024-04-18 20:00:50


测试方法、服务器、管理设备及测试系统

技术领域

本申请涉及服务器技术领域,尤其涉及一种测试方法、服务器、管理设备及测试系统。

背景技术

服务器应用场景多样化,当前服务器已经有上百种操作系统在使用,满足不同的客户需求;在服务器需要兼容多个操作系统的场景下,对于服务器中每个部件的固件或驱动更新,都需要在每个操作系统上进行测试才能发布兼容性。

目前,对于固件或驱动的更新,通过测试人员对多个操作系统针对该固件或驱动进行测试,当一个操作系统完成测试后,测试人员蹲点切换另外一个操作系统继续完成测试。

但是,采用上述方案容易增加测试时长,降低测试效率。

公开于该背景技术部分的信息仅仅旨在增加对本申请的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。

发明内容

本申请实施例提供了一种测试方法、服务器、管理设备和测试系统,能够基于指令自动化的实现操作系统的切换,提高操作系统切换的效率。

第一方面,本申请实施例提供了一种测试方法,用于服务器,服务器内存储有至少两个操作系统和待测试对象,待测试对象用于在至少两个操作系统中测试,待测试对象为驱动、固件或软件中的一个或多个;方法包括;

获取第一命令,第一命令用于指示在服务器中启动至少两个操作系统中的第一操作系统;启动第一操作系统,对待测试对象进行测试;获取第二命令,第二命令指示了服务器启动至少两个操作系统中的第二操作系统;启动第二操作系统,对待测试对象进行测试。

本方案中,能够基于指令自动化的实现操作系统的切换,提高操作系统切换的效率。

在一种可能的实现方式中,启动第二操作系统之前,包括:控制服务器进行重启。

在一种可能的实现方式中,服务器包括多个硬盘和硬盘管理器,硬盘管理器用于将多个硬盘虚拟化成至少一个硬盘组,在一个或多个硬盘组中创建虚拟硬盘;至少两个操作系统存储在服务器的虚拟硬盘中。

在该实现方式中的一个例子中,每个虚拟磁盘存储一个操作系统。

在该实现方式中的一个例子中,方法还包括:获取新增的操作系统;在具有可用空间的硬盘组中新增虚拟硬盘;在新增的虚拟硬盘中安装新增的操作系统。

本方案中,通过硬盘组的可扩容性,可以安装更多的操作系统。

在该实现方式中的一个例子中,方法还包括:获取新增的硬盘,将新增的硬盘分到已有的硬盘组中的目标硬盘组,在目标硬盘组中新增虚拟硬盘;在新增的虚拟硬盘中安装新增的操作系统。

本方案中,通过硬盘组的可扩容性,可以安装更多的操作系统。

在一种可能的实现方式中,第一命令和/或第二命令从管理设备中获取。

本方案中,服务器在管理设备的控制下,能够自动实现操作系统的切换,无需对操作系统进行改进,降低操作系统自动切换的复杂性。

在一种可能的实现方式中,第一命令和/或第二命令为基本输入输出系统中启动管理器的指令。

在一种可能的实现方式中,待测试对象或待测试对象的下载地址从管理设备中获取。

本方案中,通过管理设备在服务器中部署待测试对象,便于测试管理。

在一种可能的实现方式中,在待测试对象有多个,且多个待测试对象中不存在针对相同类型的不同版本的待测试对象对象时,第一操作系统并行对多个待测试对象对象进行测试。

本方案中,通过并行对多个待测试对象进行测试,能够提高测试效率。

在一种可能的实现方式中,第一命令指示了对待测试对象的第一版本;服务器中的待测试对象的版本为第二版本;对待测试对象进行测试之前,包括:将待测试对象的版本从第二版本变为第一版本。

在一种可能的实现方式中,对待测试对象进行测试,包括:获取第三命令,第三命令指示了待测试对象进行更新要求;按照待测试对象的更新要求,对待测试对象进行更新,对更新后的待测试对象进行测试。

第二方面,本申请实施例提供了一种测试方法,用于管理设备,管理设备与服务器通信,服务器内存储有至少两个操作系统和待测试对象,待测试对象用于在至少两个操作系统中测试,待测试对象为驱动、固件或软件中的一个或多个,方法包括:

根据测试信息,向服务器发送第一命令;测试信息指示了至少两个操作系统的测试顺序;第一命令指示用于指示在服务器中启动至少两个操作系统中的第一操作系统;服务器启动第一操作系统,对待测试对象进行测试;

根据测试信息和第一操作系统,向服务器发送第二命令;第二命令指示了服务器启动至少两个操作系统中的第二操作系统;服务器启动第二操作系统,对待测试对象进行测试。

本方案中,能够基于指令自动化的实现操作系统的切换,提高操作系统切换的效率。

在一种可能的实现方式中,方法还包括:接收服务器发送的第一操作系统针对待测试对象的测试情况,在确定第一操作系统的测试完成后,根据测试信息和第一操作系统,向服务器发送第二命令。

在一种可能的实现方式中,服务器用于按照测试顺序对至少两个测试系统进行测试。

在该实现方式的一个例子中,方法还包括:在至少两个操作系统的待测试对象相同时,根据至少两个操作系统的测试结果,从至少两个操作系统中确定目标操作系统。

本方案中,通过多个操作系统对待测试对象的测试情况,可以选择表现较好的操作系统作为业务使用的操作系统,确保业务性能。

在一种可能的实现方式中,管理设备配置有至少两个操作系统中至少部分的测试排序位;测试顺序为管理设备基于至少两个操作系统中至少部分的测试排序位确定的。

在一种可能的实现方式中,根据测试信息,向服务器发送第一命令,包括:接收服务器发送的至少两个操作系统的标识;根据至少两个操作系统的标识、测试信息,向服务器发送第一命令。

第三方面,本申请实施例提供了一种服务器,服务器包括处理器和存储器;其中,存储器用于存储程序;所示处理器用于执行存储器存储的程序,当存储器存储的程序被执行时,执行第一方面提供的方法。

第四方面,本申请实施例提供了一种管理设备,包括处理器和存储器;其中,存储器用于存储程序;所示处理器用于执行存储器存储的程序,当存储器存储的程序被执行时,执行第二方面提供的方法。

第五方法,本申请实施例提供了一种测试系统,测试系统包括服务器和管理设备;服务器内存储有至少两个操作系统和待测试对象,待测试对象用于在至少两个操作系统中测试,待测试对象为驱动、固件或软件中的一个或多个;

管理设备用于根据测试信息,向服务器发送第一命令;测试信息指示了至少两个操作系统的测试顺序;第一命令指示用于指示在服务器中启动至少两个操作系统中的第一操作系统;

服务器用于启动第一操作系统,对待测试对象进行测试;

管理设备用于根据测试信息和第一操作系统,向服务器发送第二命令;第二命令指示了服务器启动至少两个操作系统中的第二操作系统;

服务器用于启动第二操作系统,对待测试对象进行测试。

在一种可能的实现方式中,服务器包括多个硬盘和硬盘管理器,硬盘管理器用于将多个硬盘虚拟化成至少一个硬盘组,在一个或多个硬盘组中创建虚拟硬盘;至少两个操作系统存储在服务器的虚拟硬盘中。

在该实现方式中的一个例子中,每个虚拟磁盘存储一个操作系统。

在该实现方式中的一个例子中,服务器用于获取新增的操作系统;在具有可用空间的硬盘组中新增虚拟硬盘;在新增的虚拟硬盘中安装新增的操作系统。

本方案中,通过硬盘组的可扩容性,可以安装更多的操作系统。

在该实现方式中的一个例子中,服务器用于获取新增的硬盘,将新增的硬盘分到已有的硬盘组中的目标硬盘组,在目标硬盘组中新增虚拟硬盘;在新增的虚拟硬盘中安装新增的操作系统。

本方案中,通过硬盘组的可扩容性,可以安装更多的操作系统。

在一种可能的实现方式中,第一命令和/或第二命令为基本输入输出系统中启动管理器的指令。

在一种可能的实现方式中,待测试对象或待测试对象的下载地址从管理设备中获取。

在一种可能的实现方式中,在待测试对象有多个,且多个待测试对象中不存在针对相同类型的不同版本的待测试对象对象时,第一操作系统并行对多个待测试对象对象进行测试。

在一种可能的实现方式中,第一命令指示了对待测试对象的第一版本;服务器中的待测试对象的版本为第二版本;服务器用于将待测试对象的版本从第二版本变为第一版本。

在一种可能的实现方式中,服务器用于获取第三命令,第三命令指示了待测试对象进行更新要求;按照待测试对象的更新要求,对待测试对象进行更新,对更新后的待测试对象进行测试。

第六方面,本申请实施例提供了一种测试装置,测试装置包括若干个模块,各个模块用于执行本申请实施例第一方面提供的测试方法中的各个步骤,关于模块的划分在此不做限制。该测试装置各个模块所执行的具体功能及达到的有益效果请参考本申请实施例第一方面提供的测试方法的各个步骤的功能,在此不再赘述。

示例地,测试装置设置于服务器中,服务器内存储有至少两个操作系统和待测试对象,待测试对象用于在至少两个操作系统中测试,待测试对象为驱动、固件或软件中的一个或多个;测试装置包括:

第一获取模块,用于获取第一命令,第一命令用于指示在服务器中启动至少两个操作系统中的第一操作系统;

第一测试模块,用于启动第一操作系统,对待测试对象进行测试;

第二获取模块,用于获取第二命令,第二命令指示了服务器启动至少两个操作系统中的第二操作系统;

第二测试模块,用于启动第二操作系统,对待测试对象进行测试。

在一种可能的实现方式中,第二测试模块用于控制服务器进行重启,重启后启动第二操作系统。

在一种可能的实现方式中,服务器包括多个硬盘和硬盘管理器,硬盘管理器用于将多个硬盘虚拟化成至少一个硬盘组,在一个或多个硬盘组中创建虚拟硬盘;至少两个操作系统存储在服务器的虚拟硬盘中。

在该实现方式中的一个例子中,每个虚拟磁盘存储一个操作系统。

在该实现方式中的一个例子中,装置还包括:新增模块,用于获取新增的操作系统;在具有可用空间的硬盘组中新增虚拟硬盘;在新增的虚拟硬盘中安装新增的操作系统;或者,用于获取新增的硬盘,将新增的硬盘分到已有的硬盘组中的目标硬盘组,在目标硬盘组中新增虚拟硬盘;在新增的虚拟硬盘中安装新增的操作系统。

在一种可能的实现方式中,第一命令和/或第二命令从管理设备中获取。

在一种可能的实现方式中,第一命令和/或第二命令为基本输入输出系统中启动管理器的指令。

在一种可能的实现方式中,待测试对象或待测试对象的下载地址从管理设备中获取。。

在一种可能的实现方式中,在待测试对象有多个,且多个待测试对象中不存在针对相同类型的不同版本的待测试对象对象时,第一操作系统并行对多个待测试对象对象进行测试。

在一种可能的实现方式中,第一命令指示了对待测试对象的第一版本;服务器中的待测试对象的版本为第二版本;第一测试模块,用于将待测试对象的版本从第二版本变为第一版本。

在一种可能的实现方式中,第二测试模块,用于获取第三命令,第三命令指示了待测试对象进行更新要求;按照待测试对象的更新要求,对待测试对象进行更新,对更新后的待测试对象进行测试。

第七方面,本申请实施例提供了一种测试装置,测试装置包括若干个模块,各个模块用于执行本申请实施例第二方面提供的测试方法中的各个步骤,关于模块的划分在此不做限制。该测试装置各个模块所执行的具体功能及达到的有益效果请参考本申请实施例第二方面提供的测试方法的各个步骤的功能,在此不再赘述。

示例地,测试装置与服务器通信,服务器内存储有至少两个操作系统和待测试对象,待测试对象用于在至少两个操作系统中测试,待测试对象为驱动、固件或软件中的一个或多个;测试装置包括:

第一命令确定模块,用于根据测试信息,向服务器发送第一命令;测试信息指示了至少两个操作系统的测试顺序;第一命令指示用于指示在服务器中启动至少两个操作系统中的第一操作系统;服务器启动第一操作系统,对待测试对象进行测试;

第二命令确定模块,用于根据测试信息和第一操作系统,向服务器发送第二命令;第二命令指示了服务器启动至少两个操作系统中的第二操作系统;服务器启动第二操作系统,对待测试对象进行测试。

在一种可能的实现方式中,第二命令确定模块,用于在接收服务器发送的第一操作系统针对待测试对象的测试结果时,根据测试信息和第一操作系统,向服务器发送第二命令。

在一种可能的实现方式中,服务器用于按照测试顺序对至少两个测试系统进行测试。

在该实现方式的一个例子中,装置还包括:比较模块,用于在至少两个操作系统的待测试对象相同时,根据至少两个操作系统的测试结果,从至少两个操作系统中确定目标操作系统。

在一种可能的实现方式中,管理设备配置有至少两个操作系统中至少部分的测试排序位;测试顺序为管理设备基于至少两个操作系统中至少部分的测试排序位确定的。

在一种可能的实现方式中,第二命令确定模块,用于接收服务器发送的至少两个操作系统的标识;根据至少两个操作系统的标识、测试信息,向服务器发送第一命令。

第八方面,本申请实施例提供了一种计算机存储介质,计算机存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行执行第一方面中提供的方法。

第九方面,本申请实施例提供了一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行执行第一方面中提供的方法。

附图说明

图1是本申请实施例提供的测试原理的示意图;

图2是本申请实施例提供的操作系统切换原理的示意图;

图3是本申请实施例提供的测试场景的示意图;

图4是本申请实施例提供的测试系统的系统架构图;

图5a是本申请实施例提供的BIOS的结构示意图;

图5b是本申请实施例提供的服务器420的结构示意图;

图6是本申请实施例提供的测试方法的流程示意图;

图7是本申请实施例提供的测试方法的应用场景的示意图;

图8是本申请实施例提供的测试装置的结构示意图一;

图9是本申请实施例提供的测试装置的结构示意图二。

具体实施方式

为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本申请实施例中的技术方案进行描述。

在本申请实施例的描述中,“示例性的”、“例如”或者“举例来说”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。

在本申请实施例的描述中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B这三种情况。另外,除非另有说明,术语“多个”的含义是指两个或两个以上。例如,多个系统是指两个或两个以上的系统,多个终端是指两个或两个以上的终端。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

以下,对本实施例中的部分用语进行解释说明。需要说明的是,这些解释是为了便于本领域技术人员理解,并不是对本申请所要求的保护范围构成限定。

独立冗余磁盘阵列或磁盘阵列(Redundant Array of Independent Disk,RAID):作为计算机内的关键部件,可以有效地保护用户的数据安全。

RAID卡:就是用来实现RAID功能的板卡,通常是由I/O处理器、存储控制器、硬盘连接器和缓存等一系列零组件构成的。简单的说,RAID卡是一种把多块独立的硬盘(物理硬盘)按不同方式组合起来形成一个逻辑硬盘,从而提供比单个硬盘更高的存储性能以及提供数据冗余的技术。

磁盘阵列组(RAID Group,RG):可以理解为RAID卡中容量的一种配置。

虚拟磁盘(Virtual Drive,VD):可以不使用RG的全部容量,也就是说一个RG可以分为多个VD。

操作系统(operation system,OS):配置于服务器的主板之上,OS中配置有硬盘的驱动程序,驱动程序能够获取硬盘的信息。其中,OS程序可以加载至服务器运行环境下主板可以通过I2C总线与背板的控制器通信。主板通过PCIE(Peripheral ComponentInterconne ct Express,高速串行总线)与硬盘背板连接的硬盘进行通信。每一个主板可以与多个硬盘背板通信连接。从当前的发展来看,目前主流的操作系统主要有Linux系统和Windows系统,本申请主要围绕这Linux系统来说明本申请提供的方法,但考虑到操作系统的多样性以及未来可能出现更多新的操作系统,本申请并不限制操作系统的具体类型。

驱动程序(Device Driver):是一种可以使计算机和设备进行相互通信的特殊程序。驱动程序主要作用是计算机系统与硬件设备之间完成数据传送的功能,只有借助驱动程序,两者才能通信并完成特定的功能。驱动程序是介于操作系统与硬件之间的媒介,实现双向的传达,将硬件设备本身具有的功能传达给操作系统,同时也将操作系统的标准指令传达给硬件设备。

固件(Firmware):是指设备内部保存的设备“驱动程序”,通过固件,操作系统(OS)才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件。

基本输入输出系统(Basic Input Output System,BIOS):BIOS是个人电脑启动时加载的第一个软件。它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制,比如,可以包括中断服务程序、系统设置程序、上电自检(Power On Self Test,POST)和系统启动自举程序等。中断服务程序是系统软硬件间的一个可编程接口,用于完成硬件初始化;系统设置程序用来设置各项参数,这些参数通常表示系统基本情况、CPU特性、磁盘驱动器等部件的信息等。开机时按Delete键即可进入该程序界面;上电自检POST所做的工作是在计算机通电后自动对系统中各关键和主要外设进行检查,一旦在自检中发现问题,将会通过鸣笛或提示信息警告用户;系统启动自举程序是在POST完成工作后执行的。BIOS在开机时需要进行初始引导,主要是为内核运作环境进行预先检测。

启动管理器(Boot Manager):位于BIOS中,在计算机操作系统的概念中,BootManager是引导操作系统的程序,如windows boot程序、grub、lilo等。启动管理器首先按照设置中保存的启动顺序搜索有效的驱动器,读入OS的引导程序,接着将系统控制权交给OS的引导程序,并由引导程序装入内核代码,以便完成OS的启动。

硬盘背板:支撑主板和硬盘之间连接的框架,每一个硬盘背板可以通过插槽(为了便于描述和区别,称为硬盘插槽)插接多个硬盘。

本申请实施例提供了一种测试方法,如图1所示,该方法在OS测试结束后,确定指令,该指令指示了重启后切换到未测试的其他的OS进行测试,从而实现操作系统测试的自动切换,提高测试效率。如图1所述,假设有n+1个OS:OS0000、OS0001、OS0002、OS0003、OS0004、…、OS000n,第一次启动OS0000,OS0000测试完成后可以通过指令指定下次启动的OS为OS0001到0S000n中的任一个,对于OS0001到OS000n中的任一个,OS启动进行测试之后,可以指定OS0001到0S000n中的任一个开启下一次的测试,直到完成所有OS的测试。需要说明的是,本申请实施例OS的测试顺序可以是人为配置的,也可以为自动确定的,比如OS的编号越大,测试的顺序越靠后。

示例性地,指令可以为BIOS中启动控制器的指令。在具体实现时,如图2所示,BIOS存储有OS的列表,每次重启后加载该列表中位于首位的OS;对应的,指令用于指示重启后切换到的OS移动到列表首位,从而在重启后进行启动。示例性地,如图2所示,BIOS存储的OS的列表从上到写的顺序为OS0000、OS0001、OS0002、OS0003、OS0004、…、OS000n;假设下一次需要启动OS0001,则通过指令将OS0001移动到OS0000之上位于首位,这样下次启动之后,就会启动OS0001,从而实现OS的自动切换。

另外,本申请实施例中,OS可以安装在硬盘管理器在多个硬盘中创建的虚拟硬盘中,具体地,硬盘管理器用于将多个硬盘虚拟化成至少一个硬盘组,在一个或多个硬盘组中创建虚拟硬盘,在每个虚拟硬盘中安装一个OS;示例性地,硬盘管理器可以为RAID卡。在具体实现时,比如,RAID卡可以将管理的多个硬盘进行分组后得到1个或多个RG(相当于硬盘组),每个RG可以由若干个硬盘组成,在RG中创建1个或多个VD,在每个VD中安装OS。需要说明的是,本申请实施例中,OS可以安装在不同的RG下,从而可以扩展更多的OS。示例性地,如图3所示,对于RAID卡+硬盘的场景下,可以将多个硬盘划分成若干个RG,每个RG下创建n+1个VD,每个VD安装1个OS,一共安装n+1个OS:OS0000、OS0001、OS0002、OS0003、OS0004、…、OS000n;第一次启动OS0000,OS0000测试完成后可以通过指令指定下次启动的OS为OS0001到0S000n中的任一个,对于OS0001到OS000n中的任一个,OS启动进行测试之后,可以指定OS0001到0S000n中的任一个开启下一次的测试,直到完成所有OS的测试。

这里仅仅是对方法的概述,详细内容参见下文。

接下来对本申请实施例提供的测试方法可能应用的测试系统进行介绍。图4示出了本申请实施例提供的一种测试系统的架构示例图。本申请实施例提供了测试方法可以应用于如图4所示的系统架构图。如图4所示,测试系统包括管理设备410、若干个服务器420;其中,服务器420用于实现OS自动切换,管理设备410部署自动化测试平台,服务器420和管理设备410之间可以通信,如通过网络通信,从而使得自动化测试平台用于对服务器420的测试进行管控。管理设备410可以运行自动化测试平台,自动化测试平台可以为桌面应用程序、Web应用程序、命令行终端等。并且,测试人员可以通过管理设备410运行的自动化测试平台配置需要测试的OS,需要测试的对象(比如固件、驱动、软件)、测试要求等,以便进行测试配置。应理解,管理设备410可以为具有显示设备的设备,比如,配置有显示屏的主机,再比如,电脑。

其中,一个服务器420可以为一台计算设备,或者,多个服务器420可以为一台计算设备。在一些可能的情况,服务器420可以位于一台计算设备。在一些可能的情况,计算设备可以为单节点服务器,比如机架服务器;对应的,一台计算设备为一个服务器420。在另一些可能的情况,计算设备可以为多节点服务器,多节点服务器可以为刀片服务器,高密服务器或整机柜服务器(为将原有机架与机器比如服务器节点分离的架构进行融合形成的独立产品);其中,计算设备包括服务器机箱和若干个计算节点(比如,服务器420和/或管理设备410)。示例性地,如图4所示,服务器420或管理设备410可以包括电源121和主板110,电源121电连接主板110,用于为主板110上的器件供电。

示例性地,主板包括中央处理器(central processing unit,CPU)111、内存112、BIOS芯片113、基板管理控制器(baseboard management controller,BMC)芯片114、PCIE插槽115、网卡122、硬盘123、硬盘背板124、风扇125。

其中,内存112插入内存插槽中,其用作外部高速缓存。示例性地,内存112可以为随机存取存储器(random access memory,RAM)。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(doubledata date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。

其中,如图5b所示,BIOS芯片113用于存储BIOS的程序,如图5a所示,BIOS包括启动管理器。启动管理器包括OS的列表,位于首位的OS为重启后需要启动的OS。

其中,硬盘123可以为机械硬盘(hard disk drive,HDD)或固态硬盘(Solid StateDisk或Solid State Drive,简称SSD)。应当理解的是,硬盘123仅仅作为非易失性存储器的示例,并不构成具体限定,在实际应用中可以结合实际情况选择非易失性存储器。

其中,PCIE插槽115适于拓展GPU卡、网卡、视频采集卡、HBA(Host Bus Adapter,主机总线适配器)卡、RAID卡1151、SSD(solid state disk或solid state drive,固态硬盘)中的至少一种,还可以支持拓展各类转接卡等。

CPU111、内存112、BIOS芯片113、BMC芯片114、RAID卡1151、硬盘123、硬盘背板124的连接关系如图5b所示。其中,硬盘123通过硬盘背板124连接RAID卡1151的方式,RAID卡1151可以扩展更多的硬盘123,这里,硬盘123通过硬盘背板124连接RAID卡1151的方式仅仅作为示例并不构成具体限定,在一些可能的实现方式中,硬盘123可以直接连接RAID卡1151。

本申请实施例中,RAID卡1151可以作为硬盘管理器,可以管理多个硬盘123,并且可以在管理的硬盘123中创建若干个RG;对于任一RG,可以在RG中创建多个VD,并在VD中安装OS。若需要新增OS,可以在具有可用空间的RG中新增VD,在新增的VD中安装新增的OS;如果没有可用空间,但是硬盘背板124具有可用的硬盘插槽,则可以在可用的硬盘插槽中插入硬盘,从而在服务器420中新增硬盘123,RAID卡1151将新增的硬盘123分配到RG上,在RG中新增VD,在新增的VD中安装新增的OS。

需要说明的是,图4仅仅作为服务器420的示例,并不构成具体限定,在实际应用中,可以包括比图4更多或更少的器件,比如还可以包括单片机(一种集成电路芯片,相当于一个微型的计算机)、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件、通用处理器等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

接下来,结合上述提供的测试系统,对本申请实施例提供的一种测试方法进行详细介绍。

图6是本申请实施例提供的测试方法的流程示意图。本实施例可应用在测试系统上。如图6所示,本申请实施例提供的一种测试方法至少包括如下步骤:

步骤601、服务器420安装N个OS,N为大于等于2的正整数。

在具体实现时,服务器420包括硬盘管理器和多个硬盘123,硬盘管理器用于将多个硬盘123虚拟化成至少一个硬盘组RG,在一个或多个硬盘组RG中创建虚拟硬盘VD,在每个虚拟硬盘VD中安装一个OS;示例性地,硬盘管理器可以为RAID卡;示例性地,1个硬盘123可以属于1个RG,或者,多个硬盘123可以属于1个RG。在RG中创建N个VD可以理解为:在属于RG的硬盘123的容量中划分一部分的容量分配给VD。需要说明的是,VD的容量是可以控制的,每个VD的容量为适合安装N个OS中任一个OS,,具体来说,每个VD的容量可以为N个OS中需要占用存储空间最大的OS。值得注意的是,哪个VD安装哪个OS一般是随机的,OS具有标识比如编号,示例性地,如图1至图3所示,可以为OS0000、OS0001、OS0002、OS0003、OS0004、…;在一些可能的场景,VD的编号越大,安装的OS的编号越大。

服务器420在VD中安装OS的过程,可以理解为硬盘管理器确定需要安装的OS的标识和安装包,将安装包发送到属于该VD的硬盘123,硬盘123在分配给该VD的存储空间中存储OS的安装包,实现OS的安装。在一些可能的场景中,管理设备410可以将OS的安装包发送给服务器420;在另一种可能的场景中,管理设备410可以将OS的下载链接发送给服务器420,服务器420下载OS的安装包。另外,N个OS为提前规划好的需要安装的OS。

值得注意的是,硬盘控制器具有扩容能力;在需要新增OS时,在一种可能的情况,RG的空间有剩余时,可以创建更多的VD,安装更多的OS;在具体实现时,服务器420获取新增的OS;在具有可用空间的硬盘组中新增虚拟硬盘;在新增的虚拟硬盘中安装新增的OS。在另一种可能的情况,RG的空间没有剩余时,则可以安装更多的硬盘123,比如,将硬盘123插入硬盘背板124的硬盘插槽中,从而可以创建更多的VD,安装更多的OS;在具体实现时,服务器420获取新增的硬盘,将新增的硬盘分到已有的硬盘组中的目标硬盘组,在目标硬盘组中新增虚拟硬盘;在新增的虚拟硬盘中安装新增的OS。

步骤602、服务器420向管理设备410发送N个OS的标识。

步骤603、管理设备410访问自动化测试平台进行测试计划的配置,得到测试计划,测试计划指示了N个OS中需要测试的n个OS,n个OS对应的待测试对象,待测试对象为固件、驱动或软件中的1个或多个,n为大于等于2的正整数。

示例性地,n可以等于N,也即测试所有的OS,也可以小于N。

在一些可能的场景,测试人员可以通过管理设备410设置n个OS中至少部分的OS之间的测试顺序。具体地,至少可以设置第一个需要测试的OS。

需要说明的是,在一些可能的场景,待测试对象可以为OS启动服务器420中的硬件需要的控制软件,一般为固件或驱动,OS用于加载待测试对象实现对服务器420中的硬件的控制,测试的主要目的在于检测硬件是否可以正常工作,比如,是否可以正常读写;在另一些可能的场景中,待测试对象可以为软件,测试的主要目的在于检测该软件是否可以在不同的OS中正常运行。

步骤604、管理设备410向管理设备410发送测试计划。

步骤605、管理设备410基于测试计划,确定测试信息,测试信息指示了n个OS的测试顺序和n个OS的待测试对象。

在步骤604中的测试计划中未指示了第一次启动的OS时,测试信息中第一次启动的OS为n个OS中的任一OS。比如,n个OS的编号为:OS0000、OS0001、OS0002、OS0003、OS0004、…、OS000n-1,第一次启动的OS为最小编号OS0000的OS。

在一些可能的实现方式,在步骤604中的测试计划中没有指示了n个的OS之间的测试顺序,则管理设备410可以随机对n个OS的测试顺序进行编排;比如,按照OS的编号递增的顺序,进行测试顺序的编排。举例来说,假设n+1个OS的编号为:OS0000、OS0001、OS0002、OS0003、OS0004、…、OS000n-1,则n个OS的测试顺序为OS0000、OS0001、OS0002、OS0003、OS0004、…、OS000n-1。则第一次启动的OS为OS0000指示的OS。

在一些可能的实现方式,在步骤604中的测试计划中指示了n个OS之间的测试顺序,则管理设备410可以按照测试人员指定的测试顺序,确定n个OS之间的测试顺序。

举例来说,假设n个OS的编号为:OS0000、OS0001、OS0002、OS0003、OS0004、…、OS000n-1,测试人员指定的OS的测试顺序为OS000n-1、OS000n-2、…、OS0000,则n个OS的测试顺序为OS000n-1、OS000n-2、…、OS0000。

示例性地,测试人员指定了n个OS中的2个或2个以上的OS的测试顺序,在具体实现时,测试人员可以指定测试的OS的测试排序位(指示了在总的测试次数中的第几次对什么OS进行测试),则管理设备410基于测试人员指定的n个OS中的2个或2个以上的OS的测试顺序,确定n个OS之间的测试顺序。对于测试人员没有指定测试排序位的OS,可以随机排序,比如,按照OS的编号的大小进行排序。举例来说,假设n个OS的编号为:OS0000、OS0001、OS0002、OS0003、OS0004、…、OS000n-1,测试人员指定的OS0000、OS0003、OS0009、OS00027、…的测试排序位为0、3、9、27、…,对于测试人员没有指定测试排序位的OS,按照OS的编号的从大到小的顺序进行排序,则n个OS的测试顺序为OS0000、OS000n-1、OS0003、OS000n-2、…。

需要说明的是,不同OS的待测试对象可以是相同的,也可以是不同的。具体需要结合实际的测试场景确定不同OS的待测试对象。

在一种可能的情况,主要有如下三种测试场景:

场景1:软件测试,软件测试主要是测试软件是否可以正常运行,一般在软件升级的时候,对升级后的软件进行软件测试。如果是软件测试的场景,待测试对象可以包括软件。若仅仅进行软件测试,则不同OS的待测试对象可以是相同的。

场景2:固件测试,固件测试主要是测试固件安装到服务器420的硬件中,OS是否可以对硬件进行正常的控制,硬件是否工作正常,一般在固件升级的时候,对升级后的固件进行固件测试。如果是固件测试的场景,待测试对象可以包括固件。若仅仅进行固件测试,则不同OS的待测试对象可以是相同的。

场景3:驱动测试,驱动测试主要是测试驱动安装在OS中,OS是否可以正常工作,一般在驱动升级的时候,对升级后的驱动进行测试。不同的OS的内核不同,驱动需要适配OS的内核,因此相同类型的驱动在不同的OS是不同的。如果是驱动测试的场景,待测试对象可以包括驱动,不同OS的驱动不同。若仅仅进行驱动测试,则不同OS的待测试对象是不同的,但是不同OS的待测试对象的类型相同。

在一些可能的场景,为了提高测试效率,若同时存在软件测试、固件测试、驱动测试时,可以对不同的测试场景进行组合,从而得到不同OS的待测试对象。示例性地,可以同时进行软件测试、固件测试、驱动测试中任意两者的测试。示例性地,若软件测试需要在固件测试之后进行,则软件测试和固件测试可以组合。示例性地,若驱动测试需要在固件测试之后进行,则驱动测试和固件测试可以组合。示例性地,若软件测试需要在驱动测试之后进行,驱动测试和软件测试可以组合。示例性地,若软件测试需要在固件测试、驱动测试之后进行,软件测试、固件测试、驱动测试可以组合。

值得注意的是,参与软件测试的OS,参与固件测试的OS,参与驱动测试的OS可能部分相同,或完全相同的,也可能完全不同,对应的,OS的待测试对象需要结合OS需要参与的测试场景灵活确定。

步骤606、管理设备410基于测试信息,确定第一命令;第一命令指示在服务器420中启动n个OS中的第一OS。

步骤607、管理设备410向服务器420发送第一命令。

步骤608、服务器420获取第一命令,启动第一OS,在第一OS下对待测试对象进行测试。

值得注意的是,第一命令可以包括多个命令,多个命令可以包括切换命令,重启命令,切换命令可以为BIOS的启动管理器的命令,用于指示切换到第一OS,重启命令用于指示服务器420进行重启。切换命令和重启命令的下发时间不同,首先下发切换命令,然后下发重启命令。需要说明的是,若服务器420初始启动的OS为第一OS,则服务器420无需重启,第一命令中不包括重启命令。需要说明的是,服务器420中安装有启动管理器(一般位于BIOS中),启动管理器会对n个OS进行排列(一般安装OS的编号从小到大排序),位于首位的OS为需要启动的OS。在具体实现时,服务器420在重启前,启动管理器会检查位于首位的OS是否为切换命令指示的OS,如果不是,则需要把切换命令指示的OS移动到首位;然后重启,加载位于首位的OS。值得注意的是,在一些可能的场景中,第一命令可以为BIOS的启动管理器的命令,在服务器420需要重启时,管理设备410向服务器420发送重启命令。

在实际应用中,服务器420对第一OS下对待测试对象进行测试时,需要按照第一测试要求对待测试对象进行测试。在具体实现时,管理设备410在第一OS启动后,可以根据n个OS的待测试对象,下发测试命令,测试命令用于指示服务器420按照第一测试要求,对待测试对象进行测试;其中,第一测试要求指示了待测试对象的情况、测试方法、需要测试的参数等,具体可结合实际需求灵活设计。

其中,待测试对象的情况可以包括更新要求。更新要求可以包括版本要求;对于版本要求,如果服务器40发现待测试对象的版本不满足要求,则可以向管理设备420请求需要测试的待测试对象的版本,管理设备420可以下发需要测试的待测试对象的版本或者,需要测试的待测试对象的下载地址,从而使得服务器420修改待测试对象的版本,符合版本要求。

在一些可能的实现方式中,第一测试要求指示了待测试对象的第一版本,服务器420中待测试对象的版本为第二版本;在具体实现时,服务器420在启动第一OS之后,开始测试之前,向管理设备410发送待测试对象的版本为第二版本,管理设备410发现服务器420的待测试对象的版本不是待测试对象的第一版本后,将待测试对象的第一版本或者待测试对象的下载地址发送到服务器420,服务器420更新待测试对象的版本为第一版本。需要说明的是,在实际的业务场景中,开发人员开发了待测试对象的第一版本后,会存储在管理设备410部署的自动化测试平台中,便于后续的管理。

在一些可能的场景中,待测试对象可以包括固件或驱动,通过OS测试主要是为了确定在安装待测试对象后,OS加载待测试对象之后,是否可以正常工作比如读、写,若不能正常工作,是否可以恢复到之前的状态。

在一些可能的场景中,待测试对象可以包括软件,通过OS测试主要是为了确定软件是否可以正常运行。

步骤609、管理设备410基于测试信息和第一OS,确定第二命令;第二命令指示在服务器420中启动n个OS中的第二OS。

在实际应用中,管理设备410在确定第一OS对待测试对象的测试完成时,基于测试信息和第一命令,确定第二命令。在具体实现时,管理设备410可以基于服务器420上报的第一OS的测试情况,在确定第一OS对待测试对象的测试完成,将n个OS的测试顺序中第一命令指示的第一OS的下一个OS作为第二OS。其中,测试情况可以指示测试的进度。

步骤610、管理设备410向服务器420发送第二命令。

步骤611、服务器420获取第二命令,启动第二OS,在第二OS下对待测试对象进行测试。

值得注意的是,第二命令可以包括多个命令,多个命令可以包括切换命令,重启命令,切换命令可以为BIOS的启动管理器的命令,用于指示启动第二OS,重启命令用于指示服务器420进行重启。切换命令,重启命令的下发时间不同,首先下发切换命令,然后下发重启命令。

在实际应用中,服务器420对第二OS下对待测试对象进行测试时,需要按照第二测试要求对待测试对象进行测试。在具体实现时,管理设备410在第二OS启动后,可以根据n个OS的待测试对象,下发测试命令,测试命令用于指示服务器420按照第二测试要求,对待测试对象进行测试;其中,第二测试要求指示了待测试对象的情况、测试方法、需要测试的参数等。

其中,在一些可能的场景,测试命令可以称为第三命令,第三命令可以指示待测试对象的更新要求。则在步骤611中,在第二OS下对待测试对象进行测试可以包括:获取第三命令,按照待测试对象的更新要求,对待测试对象进行更新,对更新后的待测试对象进行测试。

示例性地,更新要求可以包括版本要求,详细内容参见上文对步骤708中相关内容的描述;在一些可能的场景在,在需要对驱动升级时,每个OS的内核不同,导致适配的驱动不同,因此,在驱动的版本不满足版本要求时,需要进行版本修改。

示例性地,更新要求可以包括待测试对象的类型的变更,类型可以增加,也可以减少,如果增加,则待测试对象增加,否则减少;举例来说,步骤708中,对固件进行测试,则在步骤711中,可以增加驱动的测试,或者,其他固件的测试,还可以停止对固件的测试,新增对软件、驱动的测试等。

本方案中,能够基于指令自动化的实现操作系统的切换,提高操作系统切换的效率。

需要说明的是,步骤606至步骤611描述了2个OS切换的过程,后续的OS的切换类似,不再赘述;在实际应用中,在管理设备410的控制下,服务器420按照n+1个OS的测试顺序进行测试,服务器420会上报每个OS的测试结果。

在一些可能的场景,测试的目的是为了给客户选择使用的OS,对应的,待测试对象可以为客户开发的软件;则管理设备410可以根据n+1个OS中每个OS上报的测试结果,从n+1个OS中选择目标操作系统。

在一些可能的场景,测试的目的是判断固件或/或驱动是否可以正常升级,对应的,待测试对象可以为固件和/或驱动,则管理设备410可以根据n+1个OS中每个OS上报的测试结果,确定待测试对象是否可用。

值得注意的是,本申请实施例中,由管理设备410控制服务器420实现OS的切换仅仅作为示例;一种可行的实现方式,在一些可能的场景中,还可以由测试人员提前写好每个OS的测试脚本,OS对应的测试脚本部署在服务器420中的该OS中,这样服务器420可以自动实现OS的切换。

基于上述提供的测试方法,对测试方法的具体的应用进行说明。图7为本发明实施提供的一种测试方法的具体应用的示意图。如图7所示,假设,服务器420中RAID卡管理的多个硬盘进行分组后创建1个或多个RG,在每个RG下创建1个或多个VD,提前在VD中安装OS0000,然后启动后在OSOOOO下运行,接着在VD中安装OS,假设有n个OS:OS0001、OS0002、OS0003、OS0004、…、OS000n。

然后,服务器420上报n+1个OS的标识,以及当前运行的OS的标识;管理设备410部署的自动化测试平台确定n+1个OS的测试顺序为:OS0000、OS0001、OS0002、OS0003、OS0004、…、OS000n,以及,OS0000、OS0001、OS0002、OS0003、OS0004、…、OS000n的待测试对象。

需要说明的是,OS对应的待测试对象需要结合具体的测试场景(固件测试、驱动测试、软件测试)确定,参与软件测试的OS,参与固件测试的OS,参与驱动测试的OS可能部分相同,或完全相同的,也可能完全不同,对应的,OS的待测试对象需要结合OS需要参与的测试场景灵活确定。详细内容可以参见步骤605中关于测试场景和待测试对象之间的管理描述。

管理设备410部署的自动化测试平台在确定服务器420当前运行的OS为首次测试的OS时,向服务器420发送测试命令(指示了对OSOOOO需要测试的待测试对象的测试要求),OS0000按照测试命令的测试要求对OS0000需要测试的待测试对象的测试完成后,向管理设备410部署的自动化测试平台上报测试情况(说明测试过程中产生的测试数据)。

管理设备410部署的自动化测试平台确定OSOOO0测试完成,向服务器420下发切换命令,指示切换到下次启动的OSOOO1;服务器420在OS0000的情况下,将启动管理器维护的OS的列表中OSOOO1移动到首位,并通知自动化测试平台切换命令已经执行;自动化测试平台向服务器420下发重启命令,服务器420重启,启动启动管理器维护的OS的列表中首位的OS:OSOOO1,启动完成后,通知自动化测试平台服务器420当前运行的OS为OS0001。

自动化测试平台在确定服务器420当前运行的OS为OS0001时,向服务器420发送从测试命令(指示了对OSOOO1需要测试的待测试对象的测试要求),OS0001按照测试命令的测试要求对OS0000需要测试的待测试对象的测试完成后,向管理设备410部署的自动化测试平台上报测试情况(说明测试过程中产生的测试数据)。

参照OSOOO0切换到OS0001的测试过程,按照OS0002、OS0003、OS0004、…、OS000n的顺序进行操作系统切换的测试,直到完成n+1个OS的测试。

后续,管理设备410部署的自动化测试平台后期可以展示测试数据给测试人员,或者,比对测试数据推荐表现较好的OS,以便测试人员进行后期的工作安排。

值得注意的是,在固件升级的测试的场景中,对于第一次针对固件的测试:如固件没有升级,则首先需要将固件升级后进行测试;后续,无需再次进行固件的升级,直接进行固件的测试即可。在驱动升级的驱动测试的场景中,对于每次测试:都需要检测服务器420的OS的驱动是否升级,如没有升级,则首先需要将驱动升级后进行测试。在软件升级的驱动测试的场景中,对于第一次针对软件的测试,如软件没有升级,则首先需要将软件升级后进行测试;后续,无需再次进行软件的升级,直接进行软件的测试即可。

基于与本申请方法实施例相同的构思,本申请实施例还提供了一种测试装置。测试装置包括若干个模块,各个模块用于执行本申请实施例提供的测试方法中的各个步骤,关于模块的划分在此不做限制。所属领域的技术人员可以清楚地了解到,实际应用中,可以根据需要而将本申请实施例提供的测试方法中的各个步骤分配由不同的模块完成,即将装置的内部结构划分成不同的模块,以完成以上描述的全部或者部分功能。实施例中的各模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上模块集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

示例地,测试装置用于执行本申请实施例提供的服务器420执行的测试方法,图8是本申请实施例提供的测试装置的结构示意图。如图8所示,本申请实施例提供的测试装置,包括:

第一获取模块801,用于获取第一命令,第一命令用于指示在服务器中启动至少两个操作系统中的第一操作系统;

第一测试模块802,用于启动第一操作系统,对待测试对象进行测试;

第二获取模块803,用于获取第二命令,第二命令指示了服务器启动至少两个操作系统中的第二操作系统;

第二测试模块804,用于启动第二操作系统,对待测试对象进行测试。

其中,第一获取模块801的详细内容可以参见步骤606、步骤607的描述,第一命令可以来自管理设备420。第一测试模块802的详细内容可以参见步骤609的描述。第二获取模块803可以参见步骤609、步骤610的描述,第二命令可以来自管理设备420。第二测试模块804的详细内容可以参见步骤611的描述。

需要说明的是,测试装置部署在服务器420中。

示例地,测试装置用于执行本申请实施例提供的管理设备410执行的测试方法,图9是本申请实施例提供的测试装置的结构示意图。如图9所示,本申请实施例提供的测试装置,包括:

第一命令确定模块901,用于根据测试信息,向服务器发送第一命令;测试信息指示了至少两个操作系统的测试顺序;第一命令指示用于指示在服务器中启动至少两个操作系统中的第一操作系统;服务器启动第一操作系统,对待测试对象进行测试;

第二命令确定模块902,用于根据测试信息和第一操作系统,向服务器发送第二命令;第二命令指示了服务器启动至少两个操作系统中的第二操作系统;服务器启动第二操作系统,对待测试对象进行测试。

其中,第一命令确定模块901可以参见上文对步骤606和步骤607的描述,第二命令确定模块902可以参见上文对步骤609和步骤610的描述。

基于与本申请方法实施例相同的构思,本申请实施例还提供了一种服务器,服务器的结构可以参见图4中服务器420的结构。

在具体应用中,硬盘123可以存储计算机程序,在服务器420运行时,CPU111可以读取硬盘123存储的计算机程序,实现图6中服务器420执行的步骤,例如图6中的步骤608和步骤611。

示例性的,计算机程序可以被分割成一个或多个模块/单元,所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述一个或者多个模块/单元被存储在硬盘123中,并由CPU111执行,以完成本申请。例如,计算机程序可以被分割成第一获取模块801、第一测试模块802,第二获取模块803、第二测试模块804,各模块具体功能参见上文描述。

基于与本申请方法实施例相同的构思,本申请实施例还提供了一种管理设备,管理设备的结构可以参见图4中服务器420的结构,额外加上显示屏。

在具体应用中,硬盘123可以存储计算机程序,在管理设备420运行时,CPU111可以读取硬盘123存储的计算机程序,实现图6中管理设备410执行的步骤,例如图6中的步骤606、步骤607、步骤609、步骤610。

示例性的,计算机程序可以被分割成一个或多个模块/单元,所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述一个或者多个模块/单元被存储在硬盘123中,并由CPU111执行,以完成本申请。例如,计算机程序可以被分割成第一命令确定模块901、第二命令确定模块902,各模块具体功能参见上文描述。

除了上述方法、装置和电子设备以外,本申请实施例还可以提供了一种计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时,使得所述处理器执行本说明书上述“方法”部分中描述的本申请各种实施例的测试方法中的步骤。其中,所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。其中,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机程序代码可以完全地在测试人员计算设备上执行、部分地在测试人员设备上执行、作为一个独立的软件包执行、部分在测试人员计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本申请实施例还可以提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“方法”部分中描述的根据本公开各种实施例的测试方法中的步骤。所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。

本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。

还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。

为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。

相关技术
  • 一种基于三维激光点云的料堆体积计算方法
  • 一种基于激光雷达点云数据的堆料体积测量方法
技术分类

06120116538813