本发明涉及虚拟技术领域,尤其涉及一种测试方法及测试装置。
背景技术:
软件测试是指在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
相关技术中,测试往往都是依靠计算机的物理资源(如物理存储空间、物理设备等)去进行的。
然而,这种方法在进行测试前需要为测试用例分配物理资源,但由于物理资源之间不具备逻辑隔离性,因此所分配的物理资源往往都是一整块独立的物理资源,而在实际的测试过程中,待测试用例往往无法充分利用所分配的这一整块物理资源,从而造成物理资源无法充分被利用。
技术实现要素:
为了解决上述技术问题,本发明提供一种测试方法及测试装置,能够实现物理资源的充分利用。
为了达到本发明目的,本发明提供了一种测试方法,包括:
在预先建立的虚拟资源中获取测试待测试用例的虚拟资源信息;
根据所述待测试用例的虚拟资源信息对所述待测试用例进行测试。
所述在预先建立的虚拟资源中获取测试待测试用例的虚拟资源信息,包括:
获取所述待测试用例的虚拟资源池类型;
若所述待测试用例的虚拟资源池类型是空白类型,在预先建立的虚拟机使用情况表中获取未被占用的目标虚拟机的参数信息,作为测试所述待测试用例的虚拟资源信息;
若所述待测试用例的虚拟资源池类型不是所述空白类型,根据所述虚拟资源池类型、预先建立的虚拟机与资源池映射关系表、预先建立的虚拟机使用情况表和预先建立的资源池使用情况表获取目标虚拟机的参数信息和所述目标虚拟资源池的参数信息,作为测试所述待测试用例的虚拟资源信息;其中,所述目标虚拟资源池为分配给所述目标虚拟机的虚拟资源池。
所述获取目标虚拟机的参数信息和目标虚拟资源池的参数信息,作为测试待测试用例的虚拟资源信息,包括:
在预先建立的虚拟机与资源池映射关系表中查找未被占用且所分配的虚拟资源池与所述待测试用例的虚拟资源池类型相同的目标虚拟机;
获取所述目标虚拟机的id号和所述目标资源池的id号;
根据所述目标虚拟机的id号在预先建立的虚拟机使用情况表中获取所述目标虚拟机的参数信息;
根据所述目标资源池的id号在预先建立的资源使用情况表中获取所述目标资源池的参数信息;
确定所述目标虚拟机的参数信息和目标虚拟资源池的参数信息作为测试所述待测试用例的虚拟资源信息。
所述获取待测试用例的虚拟资源池类型之前,还包括:
获取创建k个虚拟资源池类型是空白类型的虚拟机和ni个虚拟资源池类型是第i种类型的虚拟机的指令;其中,i=1、2…m;m、k为正整数;
采用预先生成的虚拟机模板创建k+n1+n2+…+nm个虚拟机;
根据预先建立的虚拟资源池使用情况表为ni个虚拟机中每个虚拟机分配一个第i种类型的虚拟资源池,得到ni个虚拟资源池类型是第i种类型的虚拟机。
所述获取创建k个虚拟资源池类型是空白类型的虚拟机和ni个虚拟资源池类型是第i种类型的虚拟机的指令之前,还包括:
查找虚拟资源池;其中,所查找到的第i种类型的虚拟资源池的个数不少于ni个;
对查找到的虚拟资源池分配id号;
获取查找到的虚拟资源池的参数信息;
根据所述虚拟资源池的id号、所述虚拟资源池的参数信息和所述虚拟资源池的分配状态建立所述虚拟资源池使用情况表;其中,初始时所述虚拟资源池的分配状态均为未分配;
所述根据预先建立的虚拟资源池使用情况表为ni个虚拟机中每个虚拟机分配一个第i种类型的虚拟资源池,得到ni个虚拟资源池类型是第i种类型的虚拟机,包括:
根据所述虚拟资源池的分配状态在所述虚拟资源池使用情况表中查找未分配的第i种类型的虚拟资源池;
将查找到的虚拟资源池分配给所述ni个虚拟机中第1个虚拟机并将分配的虚拟资源池的分配状态修改为已分配,直到将查找到虚拟资源池分配给所述ni个虚拟机中第ni个虚拟机并将分配的虚拟资源池的分配状态修改为已分配。
所述根据预先建立的虚拟资源池使用情况表为ni个虚拟机中每个虚拟机分配一个第i种类型的虚拟资源池,得到ni个虚拟资源池类型是第i种类型的虚拟机之后,还包括:
对得到的虚拟机分配id号;
获取得到的虚拟机的参数信息;
根据所述虚拟机的id号、所述虚拟机的类型、所述虚拟机的参数信息和所述虚拟机的使用状态建立虚拟机使用情况表;
所述根据虚拟机的id号、虚拟机的类型、虚拟机的参数信息和虚拟机的使用状态建立虚拟机使用情况表之后,还包括:
根据所述虚拟机id号、分配给所述虚拟机的虚拟资源池id号、所述虚拟机的类型和所述虚拟机的使用状态建立所述虚拟机与资源池映射关系表。
所述在预先建立的虚拟机使用情况表中获取未被占用的目标虚拟机的参数信息,作为测试待测试用例的虚拟资源信息之后,还包括:
将所述虚拟机使用情况表中所述目标虚拟机的使用状态修改为已占用;
所述获取目标虚拟机的参数信息和目标虚拟资源池的参数信息,作为测试待测试用例的虚拟资源信息之后,还包括:
将所述虚拟机与资源池映射关系表中所述目标虚拟机的使用状态修改为已占用。
所述根据预先建立的虚拟资源池使用情况表为ni个虚拟机中每个虚拟机分配一个第i种类型的虚拟资源池,得到ni个虚拟资源池类型是第i种类型的虚拟机之后,还包括:
为k个虚拟资源池类型是空白类型的虚拟机、ni个虚拟资源池类型是第i种类型的虚拟机创建快照;
所述根据待测试用例的虚拟资源信息对待测试用例进行测试之后,还包括:
待测试完成后,对所述目标虚拟机进行快照恢复,并将所述目标虚拟机的使用状态修改为未占用。
所述根据待测试用例的虚拟资源信息对待测试用例进行测试之前,还包括:
设定对所述待测试用例进行测试的测试时间段;
所述根据待测试用例的虚拟资源信息对待测试用例进行测试,包括:
根据待测试用例的虚拟资源信息对待测试用例进行测试并从测试开始时计时;
若计时时间超过所述测试时间段且没有完成测试,停止测试。
本发明还提供了一种测试方法,包括:获取模块,用于在预先建立的虚拟资源中获取测试待测试用例的虚拟资源信息;其中,所述虚拟资源是根据物理资源生成的;
测试模块,用于根据所述待测试用例的虚拟资源信息对所述待测试用例进行测试。
与现有技术相比,本发明至少包括在预先建立的虚拟资源中获取测试待测试用例的虚拟资源信息;根据待测试用例的虚拟资源信息对待测试用例进行测试。从本发明提供的技术方案可见,由于虚拟资源是由物理资源生成的,而基于同一个物理资源能够生成多个具备逻辑隔离性的不同的虚拟资源,以使得能够依照待测试用例的具体需求在生成的虚拟资源中获取虚拟资源信息并根据该信息对待测试用例进行测试,从而实现了物理资源测的充分利用。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例提供的一种测试方法的流程示意图;
图2为本发明实施例提供的另一种测试方法的流程示意图;
图3为本发明实施例提供的又一种测试方法的流程示意图;
图4为本发明实施例提供的又一种测试方法的流程示意图;
图5为本发明实施例提供的又一种测试方法的流程示意图;
图6为本发明实施例提供的又一种测试方法的流程示意图;
图7为本发明实施例提供的一种测试装置的结构示意图;
图8为本发明实施例提供的另一种测试装置的结构示意图;
图9为本发明实施例提供的又一种测试装置的结构示意图;
图10为本发明实施例提供的又一种测试装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明实施例提供一种测试方法,如图1所示,该方法包括:
步骤101、在预先建立的虚拟资源中获取测试待测试用例的虚拟资源信息。
需要说明的是,虚拟资源是根据物理资源生成的。
具体的,虚拟资源包括虚拟机和虚拟资源池,在预先建立的虚拟资源中获取待测试用例的虚拟资源信息可能是虚拟机的信息,也可能是虚拟机的信息和虚拟资源池的信息。
步骤102、根据待测试用例的虚拟资源信息对待测试用例进行测试。
本发明实施例所提供的测试方法,在预先建立的虚拟资源中获取测试待测试用例的虚拟资源信息;根据待测试用例的虚拟资源信息对待测试用例进行测试。从本发明提供的技术方案可见,由于,虚拟资源是由物理资源生成的,而基于同一个物理资源能够生成多个具备逻辑隔离性的不同的虚拟资源,以使得能够依照待测试用例的具体需求在生成的虚拟资源中获取虚拟资源信息并根据该信息对待测试用例进行测试,从而实现了物理资源测的充分利用
本发明实施例提供另一种测试方法,如图2所示,该方法包括:
步骤201、获取待测试用例的虚拟资源池类型。
具体的,待测试用例的个数可能是一个,也可能是多个,本发明对此不作限制。
步骤202、若待测试用例的虚拟资源池类型是空白类型,在预先建立的虚拟机使用情况表中获取未被占用的目标虚拟机的参数信息,作为测试待测试用例的虚拟资源信息。
需要说明的是,某些待测试用例的测试过程无需借助虚拟资源池进行,因此这些待测试用例的虚拟资源池类型是空白类型,即pure类型,而某些待测试用例的测试过程需要借助虚拟资源池进行,因此这些待测试用例的虚拟资源池类型不是空白类型,即非pure类型,具体可以是串行高级技术附件(serialadvancedtechnologyattachment,sata)磁盘组成的容量存储类型,串行连接小型计算机系统接口(serialattachedsmallcomputersysteminterface,sas)磁盘组成性能存储类型或固态硬盘(solidstatedrives,ssd)组成性能存储类型,或软件定义存储(softwaredefinedstorage,sds)类型等,其中sds类型包括分布式文件系统ceph类型或网络文件系统(networkfilesystem,nfs)类型。
具体的,在预先建立的虚拟机使用情况表中获取未被占用的目标虚拟机的参数信息,作为测试待测试用例的虚拟资源信息指的是:在预先建立的虚拟机使用情况表中获取未被占用的虚拟机,作为目标虚拟机,获取目标虚拟机的参数信息作为测试待测试用例的虚拟资源信息。
步骤203、若待测试用例的虚拟资源池类型不是空白类型,根据虚拟资源池类型、预先建立的虚拟机与资源池映射关系表、预先建立的虚拟机使用情况表和预先建立的资源池使用情况表获取目标虚拟机的参数信息和目标虚拟资源池的参数信息,作为测试待测试用例的虚拟资源信息。
其中,目标虚拟资源池为分配给目标虚拟机的虚拟资源池。
需要说明的是,由于目标虚拟资源池为分配给目标虚拟机的虚拟资源池,目标虚拟资源池的参数信息指的就是分配给目标虚拟机的虚拟资源池的参数信息。
步骤204、根据待测试用例的虚拟资源信息对待测试用例进行测试。
具体的,由于若待测试用例的虚拟资源池类型是空白类型,最终获取的测试待测试用例的虚拟资源信息为目标虚拟机的参数信息,若待测试用例的虚拟资源池类型不是所述空白类型,最终获取的测试待测试用例的虚拟资源信息为目标虚拟机的参数信息和目标虚拟资源池的参数信息,因此能够分别为二种待测试用例(一种是需要借助虚拟资源池的待测试用例,另一种是无需借助虚拟资源池的待测试用例)提供必备的信息,根据这两种测试待测试用例的虚拟资源信息可以让与之对应的两种待测试用例进行测试。
本发明实施例所提供的测试方法,获取待测试用例的虚拟资源池类型;若待测试用例的虚拟资源池类型是空白类型,在预先建立的虚拟机使用情况表中获取未被占用的目标虚拟机的参数信息,作为测试待测试用例的虚拟资源信息;若待测试用例的虚拟资源池类型不是空白类型,根据虚拟资源池类型、预先建立的虚拟机与资源池映射关系表、预先建立的虚拟机使用情况表和预先建立的资源池使用情况表获取目标虚拟机的参数信息和目标虚拟资源池的参数信息,作为测试待测试用例的虚拟资源信息;其中,目标虚拟资源池为分配给目标虚拟机的虚拟资源池;根据待测试用例的虚拟资源信息对待测试用例进行测试。从本发明提供的技术方案可见,由于在预先建立的虚拟机与资源池映射关系表、虚拟机使用情况表和资源池使用情况表中能够获取测试不同待测试用例需要的虚拟资源信息,因此根据获取的虚拟资源信息实现了对待测试用例的自动测试;并且由于测试是借助虚拟机和虚拟资源池进行的,而虚拟机、虚拟资源池之间具有逻辑隔离性,因此实现了物理资源的充分利用。
本发明实施例提供又一种测试方法,如图3所示,该方法包括:
步骤301、获取创建k个虚拟资源池类型是空白类型的虚拟机和ni个虚拟资源池类型是第i种类型的虚拟机的指令。
其中,i=1、2…m;m、k为正整数。
具体的,获取创建k个虚拟资源池类型是空白类型的虚拟机和ni个虚拟资源池类型是第i种类型的虚拟机的指令指的是:获取创建k个虚拟资源池类型是空白类型的虚拟机、n1个虚拟资源池类型是第1种类型的虚拟机、n2个虚拟资源池类型是第2种类型的虚拟机…nm个虚拟资源池类型是第m种类型的虚拟机的指令,其中指令可以是通过<类型,个数>的格式预先定义在配置文件中的,若需要创建5个资源池类型是空白类型的虚拟机、8个资源池类型是nfs类型的虚拟机和10个资源池类型是ceph类型的虚拟机,指令是通过<类型,个数>的格式预先定义在配置文件中的,指令可以表示为{<pure,5>;<nsf,8>;<ceph,10>}。
步骤302、采用预先生成的虚拟机模板创建k+n1+n2+…+nm个虚拟机。
需要说明的是,待测试系统是将要进行测试的系统,它可以包括一个待测试软件,也可以包括多个待测试软件。虚拟机模板是根据待测试系统生成的,而测试用例是待测试系统写出的用例,因此采用预先生成的虚拟机模板创建的k+n1+n2+…+nm个虚拟机都能够运行待测试用例,并且,这k+n1+n2+…+nm个虚拟机在刚创建出来都是没有分配虚拟资源池的,而其中k个是不准备分配虚拟资源池,其中n1个是准备分配第1种类型的虚拟资源池,其中n2个是准备分配第2种类型的虚拟资源池…其中nm个是准备分配第m种类型的虚拟资源池。
步骤303、根据预先建立的虚拟资源池使用情况表为ni个虚拟机中每个虚拟机分配一个第i种类型的虚拟资源池,得到ni个虚拟资源池类型是第i种类型的虚拟机。
具体的,根据预先建立的虚拟资源池使用情况表为ni个虚拟机中每个虚拟机分配一个第i种类型的虚拟资源池,得到ni个虚拟资源池类型是第i种类型的虚拟机指的是:根据预先建立的虚拟资源池使用情况表为n1个虚拟机中每个虚拟机分配一个第1种类型的虚拟资源池,得到n1个虚拟资源池类型是第1种类型的虚拟机;根据预先建立的虚拟资源池使用情况表为n2个虚拟机中每个虚拟机分配一个第2种类型的虚拟资源池,得到n2个虚拟资源池类型是第2种类型的虚拟机…根据预先建立的虚拟资源池使用情况表为nm个虚拟机中每个虚拟机分配一个第m种类型的虚拟资源池,得到nm个虚拟资源池类型是第m种类型的虚拟机。
步骤304、获取待测试用例的虚拟资源池类型。
步骤305、若待测试用例的虚拟资源池类型是空白类型,在预先建立的虚拟机使用情况表中获取未被占用的目标虚拟机的参数信息,作为测试待测试用例的虚拟资源信息。
需要说明的是,虚拟机使用情况表中记录有分配虚拟资源池的虚拟机的使用情况和未分配虚拟资源池的虚拟机的使用情况,而虚拟机与资源池映射关系表中只记录有分配虚拟资源池的虚拟机的使用情况,因此当待测试用例的虚拟资源池类型是空白类型时,需要在虚拟机使用情况表中获取未被占用的目标虚拟机的参数信息。
步骤306、若待测试用例的虚拟资源池类型不是空白类型,在预先建立的虚拟机与资源池映射关系表中查找未被占用且所分配的虚拟资源池与待测试用例的虚拟资源池类型相同的目标虚拟机。
具体的,虚拟机在待测试系统每一次初始化过程中确定是否分配虚拟资源池以及分配何种虚拟资源池,直到下一次初始化,虚拟机才能重新确定是否分配虚拟资源池以及分配何种虚拟资源池,而在相邻的二次初始化过程之间,虚拟机是否分配虚拟资源池以及分配何种虚拟资源池都是确定好的,并且虚拟机分配虚拟资源池以及分配何种虚拟资源池的信息记录在虚拟机与资源池映射关系表中。为虚拟机分配了某种虚拟资源池可以说是实现了该种虚拟资源池和该虚拟机的绑定。
步骤307、获取目标虚拟机的id号和目标资源池的id号。
具体的,获取目标虚拟机的id号和目标资源池的id号指的是:获取目标虚拟机的id号和分配给目标虚拟机的虚拟资源池的id号。
步骤308、根据目标虚拟机的id号在预先建立的虚拟机使用情况表中获取目标虚拟机的参数信息。
具体的,由于预先建立的虚拟机使用情况表中记录有所有虚拟机的参数信息,因此根据唯一的虚拟机的id号可以在该表中获取所对应虚拟机的参数信息。
步骤309、根据目标资源池的id号在预先建立的资源使用情况表中获取目标资源池的参数信息。
具体的,由于预先建立的资源使用情况表中记录有资源池的参数信息,因此根据唯一的资源池id号可以在该表中获取所对应资源池的参数信息。
步骤310、确定目标虚拟机的参数信息和目标虚拟资源池的参数信息作为测试待测试用例的虚拟资源信息。
需要说明的是,步骤305和步骤306~310是选择执行的关系,若待测试用例的虚拟资源池类型是空白类型,执行步骤305,若待测试用例的虚拟资源池类型不是空白类型,执行步骤306~310。
具体的,若待测试用例的虚拟资源池类型不是空白类型,最终确定的测试待测试用例的虚拟资源信息就不止是虚拟机的参数信息,还包括有分配特定类型的虚拟资源池的参数信息,拥有了这两者信息就可以使用目标虚拟机资源和目标虚拟资源池资源。
步骤311、根据待测试用例的虚拟资源信息对待测试用例进行测试。
本发明实施例所提供的测试方法,获取待测试用例的虚拟资源池类型;若待测试用例的虚拟资源池类型是空白类型,在预先建立的虚拟机使用情况表中获取未被占用的目标虚拟机的参数信息,作为测试待测试用例的虚拟资源信息;若待测试用例的虚拟资源池类型不是空白类型,根据虚拟资源池类型、预先建立的虚拟机与资源池映射关系表、预先建立的虚拟机使用情况表和预先建立的资源池使用情况表获取目标虚拟机的参数信息和目标虚拟资源池的参数信息,作为测试待测试用例的虚拟资源信息;其中,目标虚拟资源池为分配给目标虚拟机的虚拟资源池;根据待测试用例的虚拟资源信息对待测试用例进行测试。从本发明提供的技术方案可见,由于在预先建立的虚拟机与资源池映射关系表、虚拟机使用情况表和资源池使用情况表中能够获取测试不同待测试用例需要的虚拟资源信息,因此根据获取的虚拟资源信息实现了对待测试用例的自动测试;并且由于测试是借助虚拟机和虚拟资源池进行的,而虚拟机、虚拟资源池之间具有逻辑隔离性,因此实现了物理资源的充分利用。
本发明实施例提供又一种测试方法,如图4所示,该方法包括:
步骤401、查找虚拟资源池。
其中,所查找到的第i种类型的虚拟资源池的个数不少于ni个。
需要说明的是,由于需要保证能够有足够的虚拟资源池能够分配给虚拟机,因此所查找到的资源池的类型必须包含创建指令中所要求的虚拟资源池的类型,并且所查找到的每种虚拟资源池的数量都要大于创建指令中所要求的虚拟机的数量。若在该步骤中没有寻找到某种类型的虚拟资源池,后续的创建指令不能要求创建该分配该类型虚拟资源池的虚拟机;若在该步骤中只寻找到了5个nfs类型的虚拟资源池,而100个待测试用例中有10个待测试用例需要借助nfs类型的虚拟资源池,由于资源池的限制,无法创建10个分配nfs类型的虚拟资源池的虚拟机,因此这10个待测试用例无法并发地实现测试,而根据寻找到的5个nfs类型的虚拟资源池可以确定能够创建5个分配nfs类型的虚拟资源池的虚拟机,因此所确定的该类型待测试用例的最大并发数为5,也就是说,同一批测试的待测试用例中最多只能存在5个需要借助nfs类型的虚拟资源池的待测试用例。
步骤402、对查找到的虚拟资源池分配id号。
需要说明的是,id号能够唯一标识虚拟资源池。
步骤403、获取查找到的虚拟资源池的参数信息。
步骤404、根据虚拟资源池的id号、虚拟资源池的参数信息和虚拟资源池的分配状态建立虚拟资源池使用情况表。
其中,初始时虚拟资源池的分配状态均为未分配。
具体的,虚拟资源池的分配状态可以以分配标记“0”和“1”进行表示,其中,“0”可以表示为该虚拟资源池未分配,“1”可以表示为该虚拟资源池已分配。
步骤405、获取创建k个虚拟资源池类型是空白类型的虚拟机和ni个虚拟资源池类型是第i种类型的虚拟机的指令。
其中,i=1、2…m;m、k为正整数。
步骤406、采用预先生成的虚拟机模板创建k+n1+n2+…+nm个虚拟机。
步骤307、根据预先建立的虚拟资源池使用情况表为ni个虚拟机中每个虚拟机分配一个第i种类型的虚拟资源池,得到ni个虚拟资源池类型是第i种类型的虚拟机。
具体的,步骤407可以通过步骤407a、407b实现:
步骤407a、根据虚拟资源池的分配状态在虚拟资源池使用情况表中查找未分配的第i种类型的虚拟资源池。
步骤407b、将查找到的虚拟资源池分配给ni个虚拟机中第1个虚拟机并将分配的虚拟资源池的分配状态修改为已分配,直到将查找到虚拟资源池分配给ni个虚拟机中第ni个虚拟机并将分配的虚拟资源池的分配状态修改为已分配。
具体的,将查找到的未分配的第i种类型的虚拟资源池分配给了ni个虚拟机中第1个虚拟机,因此需要在虚拟资源池使用情况表中将分配的虚拟资源池的分配状态修改为已分配,直到将查找到的未分配的第i种类型的虚拟资源池分配给了ni个虚拟机中第ni个虚拟机,因此需要在虚拟资源池使用情况表中将分配的虚拟资源池的分配状态修改为已分配;如果虚拟资源池的分配状态是以分配标记“0”和“1”表示,那么将查找到的分配状态以“0”标记的第i种类型的虚拟资源分配给了ni个虚拟机中第1个虚拟机,在虚拟资源池使用情况表中则将该虚拟资源池的分配状态的标记由“0”改为“1”,以表示该虚拟资源池已分配;将查找到的分配状态以“0”标记的第i种类型的虚拟资源分配给了ni个虚拟机中第2个虚拟机,在虚拟资源池使用情况表中则将该虚拟资源池的分配状态的标记由“0”改为“1”,以表示该虚拟资源池已分配…将查找到的分配状态以“0”标记的第i种类型的虚拟资源分配给了ni个虚拟机中第ni个虚拟机,在虚拟资源池使用情况表中则将该虚拟资源池的分配状态的标记由“0”改为“1”,以表示该虚拟资源池已分配。
步骤408、对得到的虚拟机分配id号。
需要说明的是,id号能够唯一标识虚拟机。
步骤409、获取得到的虚拟机的参数信息。
具体的,虚拟机的参数信息包括虚拟机的网络协议(internetprotocol,ip)地址、用户名和密码。
步骤410、根据虚拟机的id号、虚拟机的类型、虚拟机的参数信息和虚拟机的使用状态建立虚拟机使用情况表。
具体的,虚拟机的使用状态可以以使用标记“0”和“1”进行表示,其中“0”可以表示为该虚拟机未被占用,“1”可以表示该虚拟机被占用。
需要说明的是,虚拟机使用情况表中记录有所有虚拟机的使用情况信息,其中所有虚拟机是指经过上述步骤创建出的k+n1+n2+…+nm个虚拟机,但仅仅记录了所有虚拟机的使用情况信息,没有n1+n2+…+nm个虚拟机分配何种虚拟池资源的信息。
步骤411、根据虚拟机id号、分配给虚拟机的虚拟资源池id号、虚拟机的类型和虚拟机的使用状态建立虚拟机与资源池映射关系表。
需要说明的是,虚拟机与资源池映射关系表中记录有分配虚拟资源池虚拟机的信息,而没有未分配虚拟资源池虚拟机的信息。
还需要说明的是,到此,虚拟资源池使用情况表、虚拟机使用情况表和虚拟机与资源池映射关系表都建立好了。
步骤412、获取待测试用例的虚拟资源池类型。
步骤413、若待测试用例的虚拟资源池类型是空白类型,在预先建立的虚拟机使用情况表中获取未被占用的目标虚拟机的参数信息,作为测试待测试用例的虚拟资源信息。
步骤414、若待测试用例的虚拟资源池类型不是空白类型,根据虚拟资源池类型、预先建立的虚拟机与资源池映射关系表、预先建立的虚拟机使用情况表和预先建立的资源池使用情况表获取目标虚拟机的参数信息和目标虚拟资源池的参数信息,作为测试待测试用例的虚拟资源信息。
其中,目标虚拟资源池为分配给目标虚拟机的虚拟资源池。
具体的,步骤414可以通过步骤414a~414d实现:
步骤414a、获取目标虚拟机的id号和目标资源池的id号。
步骤414b、根据目标虚拟机的id号在预先建立的虚拟机使用情况表中获取目标虚拟机的参数信息。
步骤414c、根据目标资源池的id号在预先建立的资源使用情况表中获取目标资源池的参数信息。
步骤414d、确定目标虚拟机的参数信息和目标虚拟资源池的参数信息作为测试待测试用例的虚拟资源信息。
需要说明的是,步骤414和步骤415是选择执行的关系,若待测试用例的虚拟资源池类型是空白类型,执行步骤414,若待测试用例的虚拟资源池类型不是空白类型,执行步骤415。
步骤415、将虚拟机与资源池映射关系表中目标虚拟机的使用状态修改为已占用。
具体的,若虚拟机的使用状态是以使用标记“0”和“1”进行表示的,那么在确定了目标虚拟机的参数信息和目标虚拟资源池的参数信息作为测试待测试用例的虚拟资源信息后,就说明要使用目标虚拟机和目标资源池,因此需要在虚拟机与资源池映射关系表中将目标虚拟机的使用状态的标记由“0”改为“1”,以表示该虚拟机已被占用。
步骤416、根据待测试用例的虚拟资源信息对待测试用例进行测试。
本发明实施例所提供的测试方法,获取待测试用例的虚拟资源池类型;若待测试用例的虚拟资源池类型是空白类型,在预先建立的虚拟机使用情况表中获取未被占用的目标虚拟机的参数信息,作为测试待测试用例的虚拟资源信息;若待测试用例的虚拟资源池类型不是空白类型,根据虚拟资源池类型、预先建立的虚拟机与资源池映射关系表、预先建立的虚拟机使用情况表和预先建立的资源池使用情况表获取目标虚拟机的参数信息和目标虚拟资源池的参数信息,作为测试待测试用例的虚拟资源信息;其中,目标虚拟资源池为分配给目标虚拟机的虚拟资源池;根据待测试用例的虚拟资源信息对待测试用例进行测试。从本发明提供的技术方案可见,由于在预先建立的虚拟机与资源池映射关系表、虚拟机使用情况表和资源池使用情况表中能够获取测试不同待测试用例需要的虚拟资源信息,因此根据获取的虚拟资源信息实现了对待测试用例的自动测试;并且由于测试是借助虚拟机和虚拟资源池进行的,而虚拟机、虚拟资源池之间具有逻辑隔离性,因此实现了物理资源的充分利用。
本发明实施例提供又一种测试方法,如图5所示,该方法包括:
步骤501、获取创建k个虚拟资源池类型是空白类型的虚拟机和ni个虚拟资源池类型是第i种类型的虚拟机的指令。
其中,i=1、2…m;m、k为正整数。
步骤502、采用预先生成的虚拟机模板创建k+n1+n2+…+nm个虚拟机。
步骤503、根据预先建立的虚拟资源池使用情况表为ni个虚拟机中每个虚拟机分配一个第i种类型的虚拟资源池,得到ni个虚拟资源池类型是第i种类型的虚拟机。
步骤504、为k个虚拟资源池类型是空白类型的虚拟机、ni个虚拟资源池类型是第i种类型的虚拟机创建快照。
具体的,为最终得到的k+n1+n2+…+nm个创建快照能够在当前一拨待测试用例测试完毕后恢复被使用的虚拟机至未被使用的状态前,从而能够测试下一拨待测试用例。
步骤505、获取待测试用例的虚拟资源池类型。
步骤506、若待测试用例的虚拟资源池类型是空白类型,在预先建立的虚拟机使用情况表中获取未被占用的目标虚拟机的参数信息,作为测试待测试用例的虚拟资源信息。
步骤507、若待测试用例的虚拟资源池类型不是空白类型,根据虚拟资源池类型、预先建立的虚拟机与资源池映射关系表、预先建立的虚拟机使用情况表和预先建立的资源池使用情况表获取目标虚拟机的参数信息和目标虚拟资源池的参数信息,作为测试待测试用例的虚拟资源信息。
其中,目标虚拟资源池为分配给目标虚拟机的虚拟资源池。
步骤508、根据待测试用例的虚拟资源信息对待测试用例进行测试。
步骤509、待测试完成后,对目标虚拟机进行快照恢复,并将目标虚拟机的使用状态修改为未占用。
具体的,由于目标虚拟机进行了快照恢复,之前在目标虚拟机上测试的待测试用例所占用的资料被释放掉了,因此需要将目标虚拟机的使用状态修改为未占用,待下一批待测试用例需要被测试时,该虚拟机可以再次用于测试待测试用例。
本发明实施例所提供的测试方法,获取待测试用例的虚拟资源池类型;若待测试用例的虚拟资源池类型是空白类型,在预先建立的虚拟机使用情况表中获取未被占用的目标虚拟机的参数信息,作为测试待测试用例的虚拟资源信息;若待测试用例的虚拟资源池类型不是空白类型,根据虚拟资源池类型、预先建立的虚拟机与资源池映射关系表、预先建立的虚拟机使用情况表和预先建立的资源池使用情况表获取目标虚拟机的参数信息和目标虚拟资源池的参数信息,作为测试待测试用例的虚拟资源信息;其中,目标虚拟资源池为分配给目标虚拟机的虚拟资源池;根据待测试用例的虚拟资源信息对待测试用例进行测试。从本发明提供的技术方案可见,由于在预先建立的虚拟机与资源池映射关系表、虚拟机使用情况表和资源池使用情况表中能够获取测试不同待测试用例需要的虚拟资源信息,因此根据获取的虚拟资源信息实现了对待测试用例的自动测试;并且由于测试是借助虚拟机和虚拟资源池进行的,而虚拟机、虚拟资源池之间具有逻辑隔离性,因此实现了物理资源的充分利用。
本发明实施例提供又一种测试方法,如图6所示,该方法包括:
步骤601、获取创建k个虚拟资源池类型是空白类型的虚拟机和ni个虚拟资源池类型是第i种类型的虚拟机的指令。
其中,i=1、2…m;m、k为正整数。
步骤602、采用预先生成的虚拟机模板创建k+n1+n2+…+nm个虚拟机。
步骤603、根据预先建立的虚拟资源池使用情况表为ni个虚拟机中每个虚拟机分配一个第i种类型的虚拟资源池,得到ni个虚拟资源池类型是第i种类型的虚拟机。
步骤604、为k个虚拟资源池类型是空白类型的虚拟机、ni个虚拟资源池类型是第i种类型的虚拟机创建快照。
步骤605、获取待测试用例的虚拟资源池类型。
步骤606、若待测试用例的虚拟资源池类型是空白类型,在预先建立的虚拟机使用情况表中获取未被占用的目标虚拟机的参数信息,作为测试待测试用例的虚拟资源信息。
步骤607、若待测试用例的虚拟资源池类型不是空白类型,根据虚拟资源池类型、预先建立的虚拟机与资源池映射关系表、预先建立的虚拟机使用情况表和预先建立的资源池使用情况表获取目标虚拟机的参数信息和目标虚拟资源池的参数信息,作为测试待测试用例的虚拟资源信息。
其中,目标虚拟资源池为分配给目标虚拟机的虚拟资源池。
步骤608、设定对待测试用例进行测试的测试时间段。
步骤609、根据待测试用例的虚拟资源信息对待测试用例进行测试并从测试开始时计时。
步骤610、若计时时间超过测试时间段且没有完成测试,停止测试。
需要说明的是,通过设定测试时间段可以有效防止测试用例被卡死而导致的一致占用资源的问题,在计算时间超过测试时间段后即使测试仍然没有完成,强制停止测试。
步骤611、待测试完成后,对目标虚拟机进行快照恢复,并将目标虚拟机的使用状态修改为未占用。
本发明实施例所提供的测试方法,获取待测试用例的虚拟资源池类型;若待测试用例的虚拟资源池类型是空白类型,在预先建立的虚拟机使用情况表中获取未被占用的目标虚拟机的参数信息,作为测试待测试用例的虚拟资源信息;若待测试用例的虚拟资源池类型不是空白类型,根据虚拟资源池类型、预先建立的虚拟机与资源池映射关系表、预先建立的虚拟机使用情况表和预先建立的资源池使用情况表获取目标虚拟机的参数信息和目标虚拟资源池的参数信息,作为测试待测试用例的虚拟资源信息;其中,目标虚拟资源池为分配给目标虚拟机的虚拟资源池;根据待测试用例的虚拟资源信息对待测试用例进行测试。从本发明提供的技术方案可见,由于在预先建立的虚拟机与资源池映射关系表、虚拟机使用情况表和资源池使用情况表中能够获取测试不同待测试用例需要的虚拟资源信息,因此根据获取的虚拟资源信息实现了对待测试用例的自动测试;并且由于测试是借助虚拟机和虚拟资源池进行的,而虚拟机、虚拟资源池之间具有逻辑隔离性,因此实现了物理资源的充分利用。
本发明实施例提供又一种测试方法,该方法包括:
步骤一、提供一套虚拟化平台管理系统,如:vmwarevsphere,incloudsphere等,创建虚拟机vm,作为测试用例的管理节点。
步骤二、将待测试系统部署在虚拟机vm1中,并保证该系统的可用。
步骤三、在虚拟机vm1的某一自定义路径下编写脚本,该脚本实现按照输入参数设定ip的功能,运行和测试该脚本的可用性。
步骤四、将该虚拟机制作为模板template,用于后续从该模板自动化部署虚拟机,提供测试基础环境。
步骤五、在管理节点vm定义待测试系统现有的环境资源,如:为incloudsphere定义nfs存储池路径,分布式存储地址等,定义在配置文件中,其格式为:<名称,类型,参数>,资源个数视本次自动化测试用例中预估的为准,需要考虑资源的并发。
步骤六、在管理节点vm定义本次自动化测试用例中需要的测试环境,如:需要提供已经连接了nfs存储池的incloudsphere系统环境,定义在配置文件中,其格式为:<类型,个数>,测试环境的定义视本次自动化测试用例中实际需求为准。
步骤七:测试系统初始化。
具体的,初始化包括:
1、将步骤五中定义的资源环境写入数据库中,如sqlite,标记为可用。
2、根据步骤六中定义的环境需求,调用虚拟化管理平台提供的接口,从步骤四创建的模板template创建虚拟机。
3、调用虚拟化管理平台提供的接口和步骤三中的脚本,为新创建的虚拟机设置自定义ip。
4、根据步骤六中定义的环境需求,从数据库中查询可使用的资源,调用虚拟化管理平台提供的接口为响应的虚拟机添加资源,然后更新数据库中该资源为已使用状态。
5、调用虚拟化管理平台提供的接口为进行虚拟池连接后的虚拟机创建快照。
6、更新数据库,记录虚拟机与资源环境的关联信息,并标记虚拟机可用。
至此,环境的准备和创建已经结束,待测试系统需要的相关环境信息均记录在数据库中。
基于上述设计,以下对用例执行和结束流程实施描述;执行某一个用例时,以该用例所需要的测试环境为参数在数据库中查询,返回相应的个数的虚拟机及其具体参数信息,更新这些虚拟机的数据库信息为已分配状态;若未查询到合适的资源,返回错误;用例执行结束后,需要释放资源,即先调用虚拟化管理平台提供的接口对上述虚拟机进行快照恢复,然后将其数据库信息更新为未分配,即可用状态。
此外,为了避免测试用例卡死引起的系统超时,导致无法归还虚拟机的操作,在从数据库中获取资源时定义一个定时器,定义该资源被使用的最长时间,超过时间未归还虚拟机的将会被强制收回,即回复快照和更新数据库。
本发明实施例提供一种测试装置,如图7所示,该测试装置7包括:
获取模块71,用于在预先建立的虚拟资源中获取测试待测试用例的虚拟资源信息;其中,所述虚拟资源是根据物理资源生成的。
测试模块72,用于根据所述待测试用例的虚拟资源信息对所述待测试用例进行测试。
进一步,在图7对应的实施例的基础上,本发明实施例提供另一种测试装置,如图8所示,获取模块71包括:
第一获取单元7101,用于获取获取待测试用例的虚拟资源池类型。
第二获取单元7102,用于若待测试用例的虚拟资源池类型是空白类型,在预先建立的虚拟机使用情况表中获取未被占用的目标虚拟机的参数信息,作为测试待测试用例的虚拟资源信息。
第三获取单元7103,用于若待测试用例的虚拟资源池类型不是空白类型,根据虚拟资源池类型、预先建立的虚拟机与资源池映射关系表、预先建立的虚拟机使用情况表和预先建立的资源池使用情况表获取目标虚拟机的参数信息和目标虚拟资源池的参数信息,作为测试待测试用例的虚拟资源信息;其中,目标虚拟资源池为分配给目标虚拟机的虚拟资源池。
进一步,第三获取单元7103具体用于:
在预先建立的虚拟机与资源池映射关系表中查找未被占用且所分配的虚拟资源池与待测试用例的虚拟资源池类型相同的目标虚拟机。
获取目标虚拟机的id号和目标资源池的id号。
根据目标虚拟机的id号在预先建立的虚拟机使用情况表中获取目标虚拟机的参数信息。
根据目标资源池的id号在预先建立的资源使用情况表中获取目标资源池的参数信息。
确定目标虚拟机的参数信息和目标虚拟资源池的参数信息作为测试待测试用例的虚拟资源信息。
进一步,在图8对应的实施例的基础上,本发明实施例提供又一种测试装置,如图9所示,获取模块71还包括:
第四获取单元7104,用于获取创建k个虚拟资源池类型是空白类型的虚拟机和ni个虚拟资源池类型是第i种类型的虚拟机的指令;其中,i=1、2…m;m、k为正整数。
第一创建单元7105,用于采用预先生成的虚拟机模板创建k+n1+n2+…+nm个虚拟机。
第一处理单元7106,用于根据预先建立的虚拟资源池使用情况表为ni个虚拟机中每个虚拟机分配一个第i种类型的虚拟资源池,得到ni个虚拟资源池类型是第i种类型的虚拟机。
查找单元7107,用于查找虚拟资源池;其中,所查找到的第i种类型的虚拟资源池的个数不少于ni个。
第一分配单元7108,用于对查找到的虚拟资源池分配id号。
第五获取单元7109,用于获取查找到的虚拟资源池的参数信息。
第一建立单元7110,用于根据虚拟资源池的id号、虚拟资源池的参数信息和虚拟资源池的分配状态建立虚拟资源池使用情况表;其中,初始时虚拟资源池的分配状态均为未分配。
进一步,第一处理单元7106具体用于:
根据虚拟资源池的分配状态在虚拟资源池使用情况表中查找未分配的第i种类型的虚拟资源池。
将查找到的虚拟资源池分配给ni个虚拟机中第1个虚拟机并将分配的虚拟资源池的分配状态修改为已分配,直到将查找到虚拟资源池分配给ni个虚拟机中第ni个虚拟机并将分配的虚拟资源池的分配状态修改为已分配。
进一步,在图9对应的实施例的基础上,本发明实施例提供又一种测试装置,如图10所示,获取模块71还包括:
第二分配单元7111,用于对得到的虚拟机分配id号。
第六获取单元7112,用于获取得到的虚拟机的参数信息。
第二建立单元7113,用于根据虚拟机的id号、虚拟机的类型、虚拟机的参数信息和虚拟机的使用状态建立虚拟机使用情况表。
第三建立单元7114,用于根据虚拟机id号、分配给虚拟机的虚拟资源池id号、虚拟机的类型和虚拟机的使用状态建立虚拟机与资源池映射关系表。
第一修改单元7115,用于将虚拟机使用情况表中目标虚拟机的使用状态修改为已占用。
第二修改单元7116,用于将虚拟机与资源池映射关系表中目标虚拟机的使用状态修改为已占用。
第二创建单元7117,用于为k个虚拟资源池类型是空白类型的虚拟机、ni个虚拟资源池类型是第i种类型的虚拟机创建快照。
第二处理单元7118,用于对目标虚拟机进行快照恢复,并将目标虚拟机的使用状态修改为未占用。
设定单元7119,用于设定对待测试用例进行测试的测试时间段。
进一步,测试模块72具体用于:
根据待测试用例的虚拟资源信息对待测试用例进行测试并从测试开始时计时。
若计时时间超过测试时间段且没有完成测试,停止测试。
在实际应用中,所述获取模块71、第一获取单元7101、第二获取单元7102、第三获取单元7103、第四获取单元7104、第一创建单元7105、第一处理单元7106、查找单元7107、第一分配单元7108、第五获取单元7109、第一建立单元7110、第二分配单元7111、第六获取单元7112、第二建立单元7113、第三建立单元7114、第一修改单元7115、第二修改单元7116、第二创建单元7117、第二处理单元7118、设定单元7119、测试模块72均可由位于测试装置中的中央处理器(centralprocessingunit,cpu)、微处理器(microprocessorunit,mpu)、数字信号处理器(digitalsignalprocessor,dsp)或现场可编程门阵列(fieldprogrammablegatearray,fpga)等实现。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。