一种资源调度方法、计算机设备和系统与流程

文档序号:15594155发布日期:2018-10-02 19:18阅读:196来源:国知局
本公开涉及通信
技术领域
,具体而言,涉及一种资源调度方法、计算机设备和系统。
背景技术
:随着自动化测试的发展,进行自动化测试的测试脚本的规模不断扩大,测试脚本支持的测试场景也逐渐增多,如,冒烟测试、版本回归测试、主线遍历测试等等。随着测试脚本执行需要的测试环境越来越多、越来越复杂,依靠手动来控制测试脚本执行的方式已经难以为继。目前,通过两级调度方式为自动化测试任务分配测试组网中的测试设备以保证测试脚本的执行,两级调度方式中一般包括一个中央调度器和多个框架调度器。中央调度器可以根据自动化测试任务中的测试脚本的数目依次为各自动化测试任务分配对应数目的测试组网,中央调度器将分配的测试组网的标识发送给相应的框架调度器,框架调度器可以根据执行测试脚本需要的测试设备的数目和测试设备类型,从分配的测试组网中为测试脚本选择测试设备,将测试脚本下发到选择的测试设备,由测试设备执行。在当前自动化测试任务执行过程中,每个测试脚本仅需要少数几台测试设备即可完成测试。因此,该自动化测试任务可能仅占用到测试组网中的一小部分测试设备,而其它自动化测试任务又无法使用上述测试组网中的测试设备进行测试,进而导致测试组网中测试设备利用率比较低。技术实现要素:有鉴于此,本公开的目的在于提供一种资源调度方法、计算机设备和系统,用于解决现有技术中通过两级调度方式为测试任务分配测试设备时的测试设备利用率比较低的问题。第一方面,本公开实施例提供一种资源调度方法,该方法包括:状态感知调度器接收框架调度器发送的针对目标测试任务的资源占用请求;所述资源占用请求中携带有中央调度器为所述目标测试任务分配的第一测试组网标识和所述框架调度器为所述目标测试任务分配的拓扑标识;所述拓扑标识用于标识执行所述目标测试任务的多个测试设备之间的拓扑关系;根据数据库中存储的各测试设备的占用信息,从所述第一测试组网标识对应的第一测试组网下的各测试设备中,查找满足所述拓扑关系、且未被其它测试任务占用的空闲测试设备;将查找到的空闲测试设备的信息返回给所述框架调度器,并更新所述数据库中查找到的所述空闲测试设备的占用信息。第二方面,本公开实施例提供了一种资源调度方法,该方法包括:中央调度器在接收到目标测试任务后,基于所述目标测试任务对应的测试设备类型,为所述目标测试任务分配第一测试组网标识,并将所述第一测试组网标识发送给所述目标测试任务对应的框架调度器,以使框架调度器向状态感知调度器发送针对目标测试任务的资源占用请求;若确定所述状态感知调度器根据数据库中存储的各测试设备的占用信息,未在所述第一测试组网标识对应的第一测试组网下查找到满足所述目标测试任务对应的拓扑关系的测试设备,则为所述目标测试任务分配第二测试组网标识,或者为所述目标测试任务分配所述第一测试组网下满足所述目标测试任务对应的拓扑关系、但正在被其它测试任务占用的非空闲测试设备。第三方面,本公开实施例提供了一种计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。第四方面,本公开实施例提供了一种计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。第五方面,本公开实施例提供了一种资源调度系统,包括:中央调度的器、至少一个框架调度器和状态感知调度器。本公开实施例提出的资源调度方法,通过数据库来维护测试组网中各测试设备的占用信息,框架调度器在需要为目标测试任务分配第一测试组网下的测试设备时,指示状态感知调度器基于数据库中各测试设备的占用信息,从第一测试组网下的各测试设备中,查找满足拓扑关系的空闲测试设备,这样,第一测试组网若能够同时满足多个测试任务所需要的拓扑关系,就能够在不引起资源冲突的情况下,同时执行多个测试任务,从而提高了测试设备的利用率。为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本公开一实施例提供的一种资源调度系统的结构示意图;图2为本公开一实施例提供的一种资源调度方法的第一种流程示意图;图3为本公开一实施例提供的一种资源调度方法的第二种流程示意图;图4为本公开一实施例提供的一种资源调度方法的第三种流程示意图;图5为本公开一实施例提供的一种资源调度方法的第四种流程示意图;图6为本公开一实施例提供的一种资源调度方法的第五中流程示意图;图7为本公开一实施例提供的一种资源调度装置的第一种结构示意图;图8为本公开一实施例提供的一种资源调度装置的第二种结构示意图;图9为本公开一实施例提供的一种计算机设备900的结构示意图;图10为本公开一实施例提供的另一种计算机设备1000的结构示意图。具体实施方式本公开实施例提供了一种资源调度系统,如图1所示,该系统包括:中央调度器、至少一个框架调度器和状态感知调度器,中央调度器分别与至少一个框架调度器通信连接,各框架调度器还分别与状态感知调度器通信连接。其中,中央调度器、至少一个框架调度器和状态感知调度器可以为布置在同一台计算设备中的进程或模块,也可以为分别布置在不同计算设备中的进程或模块,可根据实际情况布置。中央调度器用于接收测试任务,各测试任务的信息和每个测试任务对应的拓扑的信息预先存储在数据库中。若中央调度器、框架调度器和状态感知调度器位于同一台计算设备中,数据库可以设置于该台计算设备中,也可以设置于除该台计算设备外的其它计算设备中;若中央调度器、至少一个框架调度器和状态感知调度器均位于不同的计算设备中,数据库可以设置于上述具有中央调度器、或者具有框架调度器、或者具有状态感知调度器的计算设备中,也可以设置于除具有中央调度器、具有框架调度器、具有状态感知调度器的计算设备外的其它计算设备中,本公开对此不予限制。在中央调度器接收到各测试任务之后、未执行测试任务之前,中央调度器可以对应每个测试任务建立框架调度器(一个测试任务对应一个框架调度器),中央调度器针对每个测试任务,为该测试任务分配测试组网标识,并将该测试组网标识发送给该测试任务对应的框架调度器,该框架调度器在接收到测试组网标识后,向状态感知调度器发送资源占用请求,状态感知调度器基于接收到的资源占用请求,查找满足要求的测试设备,若状态感知调度器查找到满足要求的测试设备,状态感知调度器指示框架调度器下发测试脚本。若状态感知调度器无法查找到满足要求的测试设备,框架调度器向状态感知调度器发送资源冲突查找请求,以查找满足要求的非空闲测试设备,若状态感知调度器查找到满足资源冲突要求的非空闲测试设备,框架调度器从状态感知调度器中获取非空闲测试设备的信息。框架调度器也会在每个调度周期监测并维护测试组网和拓扑的使用情况,中央调度器在从框架调度器中实时获取到测试设备的信息(空闲还是非空闲)、测试组网使用情况后,确定是否为该测试任务分配新的测试组网标识,若确定为该测试任务分配新的测试组网标识,则为该测试任务分配新的测试组网标识,若无法分配新的测试组网标识,则确定该测试任务是否可以抢占其它测试任务的测试组网,若可以抢占,中央调度器将其它测试任务的测试组网标识分配给该测试任务,若无法抢占,则结束。下文进行详细叙述。这里应当注意,本公开的调度周期指代的并不是传统意义的时间周期,本公开的系统执行完一轮指定操作就可以称为一个调度周期,指定操作可以是但不限于资源占用操作、冲突查找操作、测试组网状态维护操作、拓扑信息表维护操作等等。由于一个测试组网中的测试设备可能能够同时满足多个测试任务所需要的拓扑关系,为了能够充分利用每个测试组网的测试设备资源,且避免资源冲突,本公开实施例提出了这样的资源调度方法:通过数据库来维护测试组网中各测试设备的占用信息,框架调度器在需要为目标测试任务分配第一测试组网下的测试设备时,指示状态感知调度器基于数据库中各测试设备的占用信息,从第一测试组网下的各测试设备中,查找满足拓扑关系的空闲测试设备,这样,第一测试组网若能够同时满足多个测试任务所需要的拓扑关系,就能够在不引起资源冲突的情况下,同时执行多个测试任务,从而提高了测试设备的利用率。为使本公开的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本公开做进一步详细的说明。本公开实施例中,执行资源调度方法的设备分别为状态感知调度器和中央调度器。下面从执行主体为状态感知调度器对本公开实施例所提供的资源调度方法加以说明。如图2所示,本公开实施例提供的资源调度方法包括以下步骤:s201,状态感知调度器接收框架调度器发送的针对目标测试任务的资源占用请求,其中,资源占用请求中携带有中央调度器为目标测试任务分配的第一测试组网标识和框架调度器为目标测试任务分配的拓扑标识;拓扑标识用于标识执行目标测试任务的多个测试设备之间的拓扑关系。具体地,测试组网标识用于标识能够执行测试任务的逻辑组网下的测试设备之间的连接关系,其中,逻辑组网一般为事先设置的能够满足测试任务中多个拓扑关系的测试设备之间的连接关系;每个测试任务均对应有多个拓扑关系,框架调度器在数据库中存储拓扑关系时,为每个拓扑关系分配拓扑标识,拓扑关系表征执行测试脚本需要的测试设备的测试设备类型、端口以及测试设备之间的连接关系等。第一测试组网标识一般包括多个测试组网标识,不同测试组网标识对应的测试组网下的测试设备一般为不同类型的测试设备,其中,不同测试组网标识对应的测试组网下的测试设备的数目可以相同,也可以不同,可根据实际情况确定。当然,若实际应用中需要不同测试组网下具有相同类型的测试设备,不同测试组网标识对应的测试组网下的测试设备也可以是相同类型的测试设备。框架调度器依次针对每个拓扑标识向状态感知调度器发送资源占用请求,资源占用请求中一般携带有待占用的拓扑标识和中央调度器分配给目标测试任务的待查找的第一测试组网标识、空任务标识和目标任务标识,资源占用请求用于指示状态感知调度器在第一测试组网中查找任务标识为空任务标识和/或目标任务标识的且满足该拓扑关系的空闲测试设备,资源占用请求中携带的空任务标识表征框架调度器期望状态感知调度器占用未执行任何测试任务的测试设备。其中,中央调度器为目标测试任务分配第一测试组网标识的步骤可参考下文的实施例。s202,状态感知调度器根据数据库中存储的各测试设备的占用信息,从所述第一测试组网标识对应的第一测试组网下的各测试设备中,查找满足所述拓扑关系、且未被其它测试任务占用的空闲测试设备;具体地,数据库中除了存储有测试任务的信息、每个测试任务对应的拓扑的信息外,还存储有测试组网的信息。测试任务的信息一般包括:测试任务的任务标识、拓扑标识、测试设备类型等之间的对应关系;任务标识用于标识测试设备正在或待执行的测试任务;测试任务中的测试设备类型用于表征执行测试脚本的测试设备的类型。测试任务信息表如表1所示:表1测试任务信息表每个测试任务对应的拓扑的信息包括拓扑标识、测试脚本、拓扑状态、测试设备之间的连接关系、测试设备端口、拓扑状态之间的对应关系,一个拓扑标识可以对应一个测试脚本,也可以对应多个测试脚本,可依据实际情况确定。为了简化描述,拓扑信息表以两个拓扑标识为例进行说明,拓扑信息表可参考表2:表2拓扑信息表测试组网的信息包括:测试组网标识、测试组网中各测试设备的信息和占用信息之间的对应关系;其中,测试设备的信息一般为测试设备的标识、测试设备的测试设备类型等,如,测试设备的标识一般为测试设备的序列号等,占用信息可以包括任务标识和任务执行状态,任务执行状态可以包括空闲状态、占用状态、预约状态等。其中,空闲状态表征测试设备中未执行任何测试脚本,占用状态表征测试设备中正在执行测试脚本,预约状态表征测试设备等待执行测试脚本但未执行测试脚本。这里需要解释一下,每个测试组网中测试设备之间的连接关系可以以一个树结构的方式存储在数据库中,每个树结构中还存储有当前测试组网中各测试设备的测试设备名称、测试设备类型、测试设备标识等,例如,测试设备的名称为a1,对应的测试设备类型为服务器、序列号为1234567。为了便于后文对测试组网信息表的使用,此处不在测试组网信息表中显示测试设备类型、测试设备标识、测试设备名称等信息,测试组网信息表中包括测试组网r1和r2,测试组网r1包括测试设备a1-a10,测试组网r2包括测试设备b1-b20,为了简化描述,测试组网信息表以一个测试设备为例进行说明,可参考表3。中央调度器在为测试任务分配测试组网时,基于数据库中的对应测试组网的树结构匹配测试组网(下文详述)。表3测试组网信息表在具体实施中,状态感知调度器在接收到拓扑标识和第一测试组网标识后,从数据库中的第一测试组网中,查找能够满足拓扑关系且任务执行状态为空闲状态、任务标识为空(例如,任务标识为0)的测试设备;和,状态感知调度器从数据库中的第一测试组网中,查找能够满足拓扑关系且任务执行状态为空闲状态且任务标识为目标任务标识的测试设备。这里,为了给优先级高的测试任务预留测试资源,中央调度器在为目标测试任务分配第一测试组网标识后,可以在确定目标测试任务的优先级高于设定优先级时,将第一测试组网下未执行测试任务的测试设备的任务标识变更为目标测试任务的目标任务标识,下文实施例进行详细叙述。例如,目标测试任务的目标任务标识为m1,目标测试任务m1对应的拓扑标识分别为tp100、tp101、tp102,为目标测试任务m1分配的第一测试组网标识中的测试组网的标识可以为r1、r2、r3,框架调度器会针对每个拓扑标识发送资源占用请求,资源占用请求中可以携带有测试组网标识(r1、r2、r3)、拓扑标识tp100、目标任务标识m1和空任务标识(如,0),这样,状态感知调度器在接收到资源占用请求后,会在测试组网r1、r2、r3中,查找能够满足拓扑标识tp100对应的拓扑关系且任务标识为m1和/或0的测试设备。s203,状态感知调度器将查找到的空闲测试设备的信息返回给框架调度器,并更新数据库中查找到的空闲测试设备的占用信息。具体地,空闲测试设备的信息一般是任务执行状态为空闲状态的测试设备的标识,框架调度器基于这些信息下发测试脚本。状态感知调度器在查找到空闲测试设备后,可以通过以下方式返回空闲测试设备的信息:方式一:将查找的空闲测试设备的信息直接发送给框架调度器;方式二:在查找到空闲测试设备后,将空闲测试设备的信息更新到数据库中相应的拓扑信息表中,并向框架调度器返回查找成功指令,框架调度基于接收到的查找成功指令,从数据库获取对应的空闲测试设备的信息。更新测试设备信息后的拓扑信息表如下表4所示:例如,目标测试任务的目标任务标识为m1,目标测试任务对应的拓扑标识为tp100,若状态感知调度器针对tp100查询到空闲测试设备信息为1234567和1023456,则将1234567和1023456更新到拓扑信息表中对应拓扑标识为tp100的测试设备信息列中,拓扑标识tp101的更新方式与tp100相同,不再过多介绍。进一步地,状态感知调度器若确定在第一测试组网标识对应的第一测试组网下的各测试设备中,不存在满足拓扑关系的空闲测试设备,但存在满足拓扑关系、正在被其它测试任务占用的非空闲测试设备,则将非空闲测试设备的信息返回给框架调度器。这里,在将非空闲测试设备的信息返回给框架调度器时,可参考状态感知调度器返回空闲测试设备的信息的方式,非空闲测试设备的信息一般存储在应用框架调度器的计算设备的本地内存中,此处不再进行过多叙述。为了更清楚地了解本公开方案,下面通过另一个实施例作进一步详细说明。如图3所示,为本公开一实施例提供的资源调度方法的流程图,包括以下步骤:s301,中央调度器在接收到目标测试任务后,基于目标测试任务对应的测试设备类型,为目标测试任务分配第一测试组网标识,并将第一测试组网标识发送给目标测试任务对应的框架调度器;这里,数据库中存储有测试任务的任务标识和对应的测试设备类型,测试设备类型一般有一个或多个,中央调度器可以从数据库中查找与目标任务标识匹配的任务标识对应的测试设备类型,将查找到的测试设备类型确定为目标测试任务的测试设备类型,若数据库中的测试组网中的测试设备的测试设备类型能够与目标测试任务的测试设备类型匹配成功,则可以将数据库中存储的测试组网(树结构)中测试设备的测试设备类型能够与目标测试任务的测试设备类型匹配成功的测试组网的测试组网标识,作为第一测试组网标识分配给目标测试任务。例如,目标测试任务对应有三个测试设备类型,将上述三个测试设备类型分别作为目标测试设备类型,中央调度器针对每个目标测试设备类型,基于数据库中存储的测试组网的测试设备的测试设备类型,查找测试组网中与该目标测试设备类型匹配的测试组网,将查找到的测试组网作为第一测试组网,若存在三个测试组网与上述三个测试设备类型匹配,则为目标测试任务分配三个测试组网标识。若三个测试设备类型中存在一个或两个测试设备类型匹配到测试组网,则仅为目标测试任务分配能够匹配到三个测试设备类型中的一个或两个测试设备类型的测试组网标识,若三个测试设备类型均无法匹配到测试组网,则需要手动或其它方式设置测试组网中测试设备的连接关系。例如,目标测试任务m1对应的测试设备类型包括服务器、交换机、路由器,如果三个测试组网(r1、r2、r3)中的存在的测试设备类型包括服务器、交换机、路由器,如,r1中包括服务器、r2中包括交换机、r3中包括路由器,则将测试组网(r1、r2、r3)分配给m1,若仅测试组网r1中存在测试设备类型包括服务器,而除r1外的其它测试组网中测试设备类型均不包括交换机、路由器,则仅将r1分配给m1,如果任意一个测试组网中的测试设备类型均不包括服务器、交换机、路由器,如,r1、r2、r3中均不存在服务器、交换机、路由器这三个测试设备类型,此时,无法为m1分配测试组网,需要调整测试组网中测试设备之间的连接关系。中央调度器将在为测试任务分配测试组网时,测试组网的数目一般与测试任务对应的测试设备类型的数目相同,但是,分配的测试组网的数目不超过设定组网数目阈值(n1),每个测试组网可分配的测试任务的数目不超过设定任务数目阈值(n2)。n1和n2通过以下公式确定:n1=tn/art其中,n1为设定组网数目阈值,即,测试任务能够被分配的测试组网的最大数,tn为测试任务对应的拓扑标识的数目,art为测试组网中可满足拓扑标识对应的拓扑关系的拓扑数目,通常取值为1。n2=dn/mdn其中,n2为设定任务数目阈值,即,中央调度器可分配给测试任务的测试组网的最大数,dn为测试组网中包含的测试设备的数目,mdn为执行测试任务需要的测试设备的最小数,通常取值为1。由于测试组网和测试任务可能均具有优先级,不同优先级的测试任务能够被分配的测试组网的最大数n1可能不同、以及不同优先级的测试组网能够分配给的测试任务的最大数n2也可能不同,因此,中央调度器在为不同测试任务分配测试组网时,需要变更上述公式中的n1和n2进行计算,并确定为不同测试任务分配的测试组网标识。测试任务一般包括有多个测试脚本,能够执行各测试脚本的测试设备除了主测试设备外,可能还需要辅助测试设备,而测试任务的执行主要依赖于主测试设备,辅助测试设备在测试任务执行过程中的贡献占比比较小,可以忽略,因此,在一种可选的实施方式中,中央调度器可以根据测试任务对应的主测试设备的测试设备类型为该测试任务分配测试组网标识。例如,参考测试任务信息表(表1),目标测试任务为m1,在为目标测试任务分配测试组网标识时,中央调度器依据表1中m1对应的主测设备类型为m1分配测试组网标识。在为目标测试任务分配第一测试组网标识时,针对目标测试任务对应的每个主测试设备的测试设备类型,从测试组网中,查询与该主测试设备的测试设备类型匹配的测试设备,如果在多个测试组网中查询到与该测试设备类型匹配的测试设备,则随机选择一个测试组网,将随机选择的测试组网对应的标识分配给目标测试任务,并将随机选择的测试组网作为第一测试组网。s302,框架调度器在接收到第一测试组网标识后,向状态感知调度器发送针对目标测试任务的资源占用请求。其中,资源占用请求中携带有目标任务标识、空任务标识、第一测试组网标识和拓扑标识。在具体实施中,应用有框架调度器的计算设备的本地内存中也存储有拓扑标识与拓扑状态之间的对应关系(拓扑状态表);框架调度器依次针对每个拓扑标识发送资源占用请求,发送的资源占用请求中携带有目标测试任务标识、空任务标识、该拓扑标识和至少一个第一测试组网标识;资源占用请求中携带的测试组网标识的数量可以是分配给测试任务的测试组网的总数目,也可以是根据框架调度器中维护的测试组网状态表确定的。其中,资源占用请求中的拓扑标识可以是从数据库的拓扑信息表中获取的,也可以是从框架调度器中维护的拓扑状态表中获取的,每次发送资源占用请求时,资源占用请求中携带的拓扑标识的数目一般为一个。其中每个框架调度器均维护自己的拓扑状态表和自身被分配的测试组网标识对应的测试组网状态表。这里需要解释一下,每个资源占用请求中一般携带有一个拓扑标识,该拓扑标识可以是框架调度器根据预先设定的选择规则,从数据库中的拓扑信息表或拓扑状态表中获取的。优选地,框架调度器在发送资源占用请求时,携带的拓扑标识为根据预先设定的选择规则从拓扑状态表中获取的,而拓扑状态表存储在框架调度器的本地内存中,这样,可以避免框架调度器频繁访问数据库,减少应用有框架调度器的计算设备的压力。其中,选择规则可以是按照拓扑标识由高到低的顺序,也可以是按照拓扑标识由低到高的顺序,本公开对此不予限制。以下针对根据测试组网状态表确定资源占用请求中携带的测试组网标识的数目进行介绍:框架调度器中维护有:该框架调度器对应的测试任务所占用的测试组网的组网状态的测试组网状态表,测试组网状态表中包括测试组网标识和组网状态,组网状态包括使用(normal)状态、可使用(release)状态和抛弃(abandon)状态。在测试任务执行过程中,框架调度器可以实时监测该框架调度器中维护的测试组网状态表中各测试组网的组网状态。若当前的测试组网中存在测试设备能够满足该测试任务对应的拓扑关系且正在被该测试任务占用,则该当前测试组网的组网状态为使用状态,若当前测试组网中不存在空闲测试设备能够满足该测试任务对应的拓扑关系,但存在正在被其它测试任务占用的非空闲测试设备能够满足该测试任务对应的拓扑关系,则该当前测试组网的组网状态为可使用状态,若当前测试组网中的测试设备不满足该测试任务对应的任意一个拓扑关系,则该当前测试组网的组网状态为抛弃状态。框架调度器可以实时监测各个第一测试组网(如,第一测试组网中包括r1、r2、r3三个测试组网为例)的组网状态。具体的,当框架调度器监测到处于release状态的测试组网r1中存在满足该框架调度器对应的目标测试任务的拓扑关系且未被其它测试任务占用的空闲测试设备,则将测试组网r1的组网状态变更为使用状态。当监测到测试组网r1处于release状态的时长超过第一设定时长阈值,则将测试组网r1的任务状态变更为normal状态。这样,若其它测试任务释放掉测试组网r1中的测试设备满足目标测试任务的拓扑关系时,目标测试任务可以使用测试组网r1中的测试设备;当监测到处于abandon状态的测试组网r1中存在测试设备满足目标测试任务对应的拓扑关系,则将测试组网r1的组网状态变更为使用状态,当监测到处于abandon状态的测试组网r1中不存在测试设备满足目标测试任务对应的拓扑标识的拓扑关系,且处于抛弃状态的时长超过第二设定时长阈值,则从测试组网状态表中删除测试组网r1的记录。其中,第一设定时长阈值与第二设定时长阈值可以相等,也可以不相等。因此,框架调度器在向状态感知调度器发送针对测试任务的资源占用请求时,可以发送分配给测试任务的各测试组网的标识,也可以仅发送处于使用状态的测试组网的标识。优选地,框架调度器仅发送处于使用状态的测试组网的标识,这样,状态感知调度器在接收到测试组网标识后,就会仅在使用处于使用状态的测试组网中查询测试设备,相对于在分配给测试任务的各测试组网中查询测试设备,可以减少状态感知调度器查询测试设备消耗的查询时间,提高状态感知调度器的查询效率。例如,参考第一测试组网状态表(表5),框架调度器在向状态感知调度器发送针对目标测试任务m1的资源占用请求时,可以在资源占用请求中携带测试组网标识r1、r2、r3和拓扑标识tp100,状态感知调度器可以在r1、r2、r3中查询满足tp100对应的拓扑关系空闲测试设备。为了缩小状态感知调度器的查询范围,优选地,框架调度器在发送资源占用请求中,可以仅在资源占用请求中携带处于使用状态的测试组网r1和拓扑标识tp100,而不携带测试任务m1占不到测试设备的测试组网r2和测试组网r3,这样,状态感知调度器仅在测试组网r1中查询空闲测试设备,相对于在r1、r2、r3中查询空闲测试设备,减少了状态感知调度器的查询时间,提高了查询效率。表5第一测试组网状态表组网标识组网状态r1normal状态r2release状态r3abandon状态上述过程适用于各测试任务,此处不针对每个测试任务一一进行介绍。s303,状态感知调度器根据数据库中存储的各测试设备的占用信息,从所述第一测试组网标识对应的第一测试组网下的各测试设备中,查找满足所述拓扑关系、且未被其它测试任务占用的空闲测试设备。若是,进入s304,直到步骤s309结束;若未查找到满足所述拓扑关系、且未被其它测试任务占用的空闲测试设备,则执行s3031-s3035,下文进行详细叙述。s304,状态感知调度器若查找到满足拓扑关系且未被其它测试任务占用的空闲测试设备,则更新数据库中查找到的空闲测试设备的占用信息,并向述框架调度器发送占用成功指令。在具体实施中,状态感知调度器若查找到满足拓扑关系且未被其它测试任务占用的空闲测试设备,将查找到的空闲测试设备的占用信息中的任务执行状态由空闲状态变更为预约状态,状态感知调度器在查找到处于预约状态的空任务标识对应的测试设备后,不变更该测试设备的任务标识,向框架调度器发送占用成功指令,这样,框架调度器在接收到状态感知调度器发送的占用成功指令后,将变更为预约状态的空任务标识的测试设备的任务标识变更为目标任务标识,并向处于预约状态的测试设备发送测试脚本。例如,目标测试任务为m1,对应的拓扑标识为tp100,分配的测试组网标识为r1,状态感知调度器查询之前测试组网信息表可参考表3。状态感知调度器在测试组网r1中的查找到满足拓扑标识tp100对应的拓扑关系且处于空闲状态的测试设备a1后,将测试设备a1的任务执行状态变更为预约状态,此时,不变更测试设备a1的任务标识,更新后的测试组网信息表如下表:s305,框架调度器从数据库中,获取步骤s304中更新的空闲测试设备的信息,将任务标识为空的测试设备的任务标识变更为目标任务标识,并向上述空闲测试设备下发测试脚本。例如,延续步骤s304中的示例,框架调度器从拓扑信息表(表4)中获取空闲测试设备信息,在下发测试脚本之前,框架调度器将测试设备a1的任务标识由0变更为m1,此时,更新后的测试组网信息表参考下表:在具体实施中,数据库中存储有测试任务中的测试脚本和拓扑标识之间的映射关系,在接收到占用成功指令后,根据资源占用请求中携带的拓扑标识,从数据库中获取对应的测试脚本,将获取的测试脚本下发到上述测试设备,由测试设备执行接收到的测试脚本。例如,目标测试任务为m1,拓扑标识为tp100,拓扑tp100对应的测试脚本为s1001,框架调度器在针对拓扑标识tp100向状态感知调度器发送的资源占用请求并接收到占用成功指令后,从表4中获取对应tp100的测试设备信息分别为1234567、1023456,框架调度器向测试设备1234567和测试设备1023456发送测试脚本s1001。另外,数据库中拓扑信息表(表2)中也维护有拓扑标识的拓扑状态,拓扑状态可以是执行状态、未执行状态、完成状态等,如,框架调度器在下发测试脚本后,可将相应拓扑标识对应的拓扑状态变更为执行状态,测试脚本执行完成后,将对应拓扑的拓扑状态变更为完成状态。更新后的拓扑信息表如下表所示:框架调度器在将测试组网的组网状态变更为release状态或abandon状态后,可将导致测试组网为release状态或abandon状态的拓扑标识对应的拓扑状态变更为未执行状态,以便用户可以实时查看并控制每个测试任务中测试脚本的执行情况。另外,框架调度器可以实时查询数据库中各拓扑对应的测试设备的任务执行状态,并根据查询到的上述任务执行状态,更新每个拓扑的拓扑状态。延续目标测试任务为m1、拓扑标识为tp100、拓扑tp100对应的测试脚本为s1001的示例,框架调度器在下发测试脚本之前,框架调度器中的拓扑状态表可以为:拓扑标识拓扑状态tp100未执行状态框架调度器在下发测试脚本之后,框架调度器中的拓扑状态表更新为:拓扑标识拓扑状态tp100执行状态s306,框架调度器实时监测步骤s305中下发的测试脚本的脚本执行状态,判断测试脚本是否处于执行完成状态,若是,进入s307,否则,执行s306。在进入s307时,延续s305中的示例,测试脚本执行完成后,框架调度器更新的拓扑状态表为:拓扑标识拓扑状态tp100完成状态s307,框架调度器向状态感知调度器发送针对目标测试任务的资源释放请求;资源释放请求中携带有目标测试任务对应的拓扑标识。这里,资源释放请求中携带的拓扑标识一般为处于完成状态的拓扑的标识。例如,延续目标测试任务为m1、拓扑标识为tp100、对应的测试脚本为s1001的示例,在测试脚本s1001执行完成后,框架调度器发送的资源释放请求中携带的拓扑标识为tp100、任务标识为m1。s308,状态感知调度器根据资源释放请求中携带的拓扑标识,确定待释放的测试设备;其中,待释放的测试设备满足拓扑标识对应的拓扑关系。在具体实施中,状态感知调度器基于接收到的资源释放请求中的拓扑标识,从数据库中,查询满足拓扑关系的测试设备,将查询到的测试设备确定为待释放的测试设备。延续步骤s307中的示例,状态感知调度器从拓扑信息表(表4)中获取拓扑tp100对应的测试设备信息1234567、1023456对应的测试设备a1和a2,将测试组网信息表中对应测试设备a1和a2的任务执行状态变更为空闲状态。s309,状态感知调度器将步骤s308中从数据库中确定的待释放的测试设备的占用信息中的任务执行状态变更为空闲状态。这里,状态感知调度器仅将待释放的测试设备的任务执行状态变更为空闲状态,而不变更待释放的测试设备的任务标识。框架调度器在接收到释放成功指令后,可以实时查询数据库中测试组网中各测试设备的占用信息,监测任务标识为框架调度器执行的测试任务的任务标识、且处于空闲状态的测试设备处于空闲状态的空闲时长,并维护测试设备任务执行表,测试设备任务执行表中包括有被释放的测试设备信息和对应的空闲时长;若监测到存在任务标识为框架调度器执行的测试任务的任务标识的处于空闲状态的测试设备的空闲时长超过第三设定时长阈值,框架调度器将空闲时长超过第三设定时长阈值的测试设备的任务标识变更空,也就是将测试设备的任务标识变更为0。这样,其它测试任务可以占用到任务标识为空的测试设备,提高了测试设备的利用率。例如,这里以一个测试设备为例进行说明,测试组网r1中测试设备a在执行完目标测试任务m1中的测试脚本后,测试设备a的任务执行状态会被状态感知调度器修改为空闲状态,但是,此时是状态感知调度器不修改测试设备a的任务标识的,也就是,测试设备a的任务标识依然为m1,由于目标测试任务m1中的其它测试脚本可能会在测试设备a中执行,所以,使测试设备a等待第三设定时长阈值,在测试设备a处于空闲状态的空闲时长超过第三设定时长阈值后,测试设备a依然处于空闲状态,那么,此时框架调度器将测试设备a的任务标识由m1变更为0。如图4所示,本公开又一实施例提供的资源调度方法的流程图,状态感知调度器在执行完步骤s303中根据数据库中存储的各测试设备的任务执行状态,从所述第一测试组网标识对应的第一测试组网下的各测试设备中,查找满足所述拓扑关系、且未被其它测试任务占用的空闲测试设备后,还包括以下步骤:s3031,状态感知调度器在确定框架调度器根据数据库中存储的各测试设备的任务执行状态,未在第一测试组网标识对应的第一测试组网下查找到满足目标测试任务对应的拓扑关系的测试设备后,向框架调度器发送占用失败指令。s3032,框架调度器在接收到占用失败指令后,向状态感知调度器发送资源冲突查找请求,资源冲突查找请求中携带有目标测试任务对应的拓扑标识、第一测试组网标识、非空任务标识。其中,该资源冲突查找请求用于指示状态感知调度器在第一测试组网中,查找满足拓扑关系的、被其它测试任务占用的非空闲测试设备。这里,资源冲突查找请求中携带的拓扑标识一般为对应的资源占用请求中的拓扑标识,第一测试组网标识一般为分配给目标测试任务的第一测试组网标识中的各测试组网标识。这里,资源冲突查找请求中携带的拓扑标识也是从数据库中的拓扑信息表或拓扑状态表中获取的,与资源占用请求中的获取方法相同,此处不再进行过多说明。s3033,状态感知调度器基于接收到的资源冲突查找请求,以及数据库中各测试设备的占用信息,从第一测试组网中,查询满足拓扑关系、正在被其它测试任务占用的非空闲测试设备。若查询到,进入s3034;若未查询到满足拓扑关系、正在被其它测试任务占用的非空闲测试设备,则向框架调度器返回查找失败指令。s3034,状态感知调度器将步骤s3033中查询到的非空闲测试设备的信息更新到数据库中对应的拓扑标识对应的拓扑信息表(表2)中,并向框架调度器发送查找成功指令。更新后的拓扑信息表参考表4。s3035,框架调度器接收到查找成功指令后,从数据库获取s3034中更新的非空闲测试设备的信息,以便中央调度器在实时获取到上述非空闲测试设备的信息后进行后续的测试组网标识分配工作。在执行完s3033后,状态感知调度器若从第一测试组网中,查询到满足拓扑关系、正在被其它测试任务占用的非空闲测试设备,可以将上述非空闲测试设备的信息发送给框架调度器,此时,不需要执行s3034-s3035。在测试任务执行过程中,中央调度器根据测试任务的执行情况为测试任务分配测试组网标识,下面以执行主体为中央调度器对本公开实施例所提供的资源调度方法加以说明。如图5所示,本公开再一实施例提供了一种资源调度方法,包括以下步骤:s501,中央调度器在接收到目标测试任务后,基于目标测试任务对应的测试设备类型,为目标测试任务分配第一测试组网标识,并将所述第一测试组网标识发送给所述目标测试任务对应的框架调度器,以使框架调度器向状态感知调度器发送针对目标测试任务的资源占用请求。在具体实施中,中央调度器在为目标测试任务分配第一测试组网标识后,还包括:若所述目标测试任务的优先级高于设定优先级,则将所述第一测试组网下未被测试任务占用的测试设备的任务标识变更为所述目标测试任务的目标任务标识,从而针对目标测试任务实现测试设备的预留。相应的,状态感知调度器在查找满足目标测试任务对应的拓扑关系的测试设备时,是在第一测试组网下查找具有所述目标任务标识或任务标识为空的测试设备。这里,优先级可以是根据测试任务的紧急程度、重要程度、资源水平、启动时间中的一个,也可以是将紧急程度、重要程度、资源水平、启动时间中多个综合之后而进行设置的。在具体实施中,目标测试任务的优先级为高,中央调度器在为目标测试任务分配第一测试组网后,判断目标测试任务的优先级是否高于设定优先级,若目标测试任务的优先级高于设定优先级(如,中),从数据库中查找第一测试组网下的未被测试任务占用的测试设备,将查找到的第一测试组网下的未被测试任务测试设备的任务标识(如,任务标识为0)变更为目标测试任务的标识。由于变更为目标任务标识的各测试设备可能满足目标测试任务对应的多个拓扑关系,也就是,变更为目标任务标识的各测试设备能够执行目标测试任务中的多个测试脚本,那么,为了保证优先级高的测试任务能够在对应的测试组网中优先占用到测试设备,在一定时长内,变更为目标任务标识的测试设备的任务标识不会变更,也就是不被其它测试任务占用,仅用于执行目标测试任务中的测试脚本。这样,可以提高优先级高的测试任务的测试效率和执行效率,实现资源预留的目的。若在一定时长内,目标测试任务占用不到任何测试设备,框架调度器会将目标任务标识的测试设备的任务标识变更为空(下文详述),这样,其它测试任务可以使用上述测试设备。不过应当注意,为目标测试任务预留资源的过程也适用于其它的测试任务,本公开不针对各个测试任务一一进行介绍。不同的测试任务在执行过程中,一般需要的测试设备的版本不同,若没有为测试任务预留资源,那么,在一定时间内,能够满足多个测试任务的拓扑关系的测试设备,可能会反复执行不同的测试任务,而测试设备在执行不同的测试任务时,有的测试设备可能会需要进行版本升级,版本升级花费的时间往往比较长。因此,采用资源预留的方法可以减少测试设备反复被不同的测试任务占用,进而减少版本升级花费的时间。s502,中央调度器若确定状态感知调度器根据数据库中存储的各测试设备的任务执行状态,未在所述第一测试组网标识对应的第一测试组网下查找到满足所述目标测试任务对应的拓扑关系的测试设备,则为所述目标测试任务分配第二测试组网标识,或者为所述目标测试任务分配第一测试组网下满足目标测试任务对应的拓扑关系、但正在被其它测试任务占用的非空闲测试设备。中央调度器基于以下步骤确定状态感知调度器是否根据数据库中存储的各测试设备的任务执行状态,在第一测试组网标识对应的第一测试组网下查找到满足目标测试任务对应的拓扑关系的测试设备:步骤1:中央调度器从框架调度器获取测试组网状态表,确定组网状态处于使用状态的第一测试组网中测试组网的数目;测试组网状态表中包括测试组网标识与组网状态之间的映射关系;步骤2:中央调度器基于目标测试任务的优先级和确定的第一测试组网中测试组网的数目,以及预设的第一调度策略表,确定目标测试任务对应的第一测试组网的组网使用状态;第一调度策略表中包括测试任务的优先级、处于使用状态的测试组网的数目与组网使用状态的之间的映射关系。步骤3:中央调度器基于确定的目标测试任务的组网使用状态,确定状态感知调度器是否查找到满足目标测试任务对应的拓扑关系的测试设备,其中,状态感知调度器是根据数据库中存储的各测试设备的占用信息,在第一测试组网标识对应的第一测试组网下查找是否存在满足目标测试任务对应的拓扑关系的测试设备的。具体地,测试任务对测试组网的使用情况包括poor1、normal1和rich1,其中,poor1表征分配给测试任务的测试组网能够被使用的数量比较少,normal1表征分配给测试任务的测试组网能够被使用的数量比较正常,rich1表征分配给测试任务的测试组网能够被使用的数量比较多。例如,中央调度器在获取到第一测试组网状态表后,发现目标测试任务仅能够在测试组网r1中的测试设备中执行,无法在测试组网r2和测试组网r3中的测试设备中执行,也就是目标测试任务仅在1个测试组网中占用到测试设备,而目标测试任务的优先级为高,基于目标测试任务的优先级,以及组网状态,对比第一调度策略表,可以确定目标测试任务的组网使用状态为poor状态,此时,可认为状态感知调度器根据数据库中存储的各测试设备的占用信息,未在所述第一测试组网标识对应的第一测试组网下查找到满足所述目标测试任务对应的拓扑关系的测试设备。第一测试组网状态表第一测试组网标识组网状态r1normalr2releaser3abandon第一调度策略表任务优先级poor1normal1rich1低123中<=23>=4高<=34>=5为了更清楚地了解本公开方案,下面通过再一个实施例作进一步详细说明。如图6所示,本公开一实施例提供的资源调度方法的流程图,包括以下步骤:s601,中央调度器在接收到目标测试任务后,基于目标测试任务对应的测试设备类型,为目标测试任务分配第一测试组网标识,并将第一测试组网标识发送给目标测试任务对应的框架调度器。s602,框架调度器在接收第一测试组网标识后,向状态感知调度器发送针对目标测试任务的资源占用请求。资源占用请求中携带有目标任务标识、空任务标识、中央调度器为目标测试任务分配的第一测试组网标识和所述框架调度器为目标测试任务分配的拓扑标识。在具体实施中,框架调度器会实时从数据库获取任务标识为目标任务标识的测试设备的信息,并维护测试设备执行表,测试设备执行表中包括:任务标识为目标任务标识的测试设备的信息和对应的空闲时长,空闲时长为测试设备任务执行状态为空闲状态的时长。框架调度器实时监测测试设备执行表中各测试设备的空闲时长,若监测到存在测试设备的空闲时长超过第三设定时长阈值后,说明目标测试任务无法占用到上述测试设备,此时,框架调度器将数据库中上述测试设备的任务标识变更为空,以便上述测试设备可以被其它测试任务占用,减少资源浪费。这里也适用于为优先级高的测试任务预留资源的测试设备。s603,状态感知调度器根据数据库中存储的各测试设备的占用信息,从第一测试组网标识对应的第一测试组网下的各测试设备中,查找满足拓扑关系、且未被其它测试任务占用的空闲测试设备,若查找满足拓扑关系、且未被其它测试任务占用的空闲测试设备,则进入s604;若未查找到满足拓扑关系、且未被其它测试任务占用的空闲测试设备,则进入s605。s604,状态感知调度器将查找到的空闲测试设备的信息返回给框架调度器,并更新数据库中查找到的空闲测试设备的占用信息。在将空闲测试设备的信息返回给框架调度器后的过程与步骤s305-s309的步骤相同,此处不再进行过多说明。s605,状态感知调度器基于数据库中各测试设备的占用信息,从第一测试组网中,查询是否存在满足拓扑关系、正在被其它测试任务占用的非空闲测试设备,若是,则将查找到的非空闲测试设备返回给框架调度器,否则,向框架调度器发送查找失败指令。s606,中央调度器实时向框架调度器发送信息请求,信息请求用于指示框架调度器返回框架调度器中维护的非空闲测试设备和测试组网状态表。这里,中央调度器在每个调度周期开始时从框架调度器获取非空闲测试设备、第一测试组网状态表,以便执行后续步骤;中央调度器在监测到第一测试组网状态表中处于abandon状态的测试组网的时长超过第二设定时长阈值后,指示框架调度器删除框架调度器中第一测试组网状态表中相应的测试组网的记录。s607,中央调度器接收空闲测试设备信息、第一测试组网状态表。s608,中央调度器基于获取的第一测试组网状态表,确定状态感知调度器是否根据数据库中存储的各测试设备的占用信息,在第一测试组网标识对应的第一测试组网下,查找到满足所述目标测试任务对应的拓扑关系的测试设备。若未查找到满足所述目标测试任务对应的拓扑关系的测试设备,则进入s609;若查找到满足所述目标测试任务对应的拓扑关系的测试设备,则进入s606。s609,中央调度器基于目标测试任务对应的测试设备类型,从除所述第一测试组网外的其它测试组网中,查询是否存在与测试设备类型对应的、且负载没有达到设定阈值的第二测试组网;若不存在与测试设备类型对应的、且负载没有达到设定阈值的第二测试组网,则进入s611;若存在与测试设备类型对应的、且负载没有达到设定阈值的第二测试组网,则进入s610;若其它测试组网中不存在与测试设备类型对应的第二测试组网,则需要调整除第一测试组网外的其它测试组网中的测试设备的类型,以便在执行s609时中央调度器可以在其它测试组网中查询到与测试设备类型对应的第二测试组网。这里,在为目标测试任务分配新的测试组网或抢占其它测试任务的测试组网时,由于目标测试任务无法在第一测试组网下查找到满足目标测试任务对应的拓扑关系的测试设备,因此,不再考虑第一测试组网中的测试组网,仅考虑除第一测试组网外的其它测试组网;设定阈值为测试组网可提供测试服务的测试任务的最大数,也就是,设定任务数目阈值(n2)。第二测试组网标识一般包括多个测试组网标识,不同的上述测试组网标识对应的测试组网下的测试设备一般为不同的测试设备,其中,不同的上述测试组网标识对应的测试组网下的测试设备的数目可以相同,也可以不同,可根据实际情况确定。当然,若实际应用需要不同测试组网下具有相同类型的测试设备,不同测试组网标识对应的测试组网下的测试设备也可以是相同类型的测试设备。其中,上述测试设备类型可以是目标测试任务对应的测试设备类型,也可以是无法在第一测试组网中的测试设备执行的测试脚本对应的测试设备类型。由于测试脚本未执行的原因可能是第一测试组网中不存在满足目标测试任务对应的拓扑关系的测试设备,也可能是第一测试组网中存在满足目标测试任务对应的拓扑关系的测试设备但是该测试设备被其它测试任务占用。所以,中央调度器在为目标测试任务分配其它测试组网时,优先为目标测试任务分配的测试组网一般是与未执行的测试脚本对应的测试设备类型匹配的测试组网,这样,可以提高测试任务的执行效率。以下针对无法在第一测试组网下的测试设备中执行的测试脚本对应的测试设备类型进行介绍。中央调度器在从除第一测试组网外的其它测试组网中,查找与测试设备类型对应、且负载没有达到设定阈值的第二测试组网之前,可以指示框架调度器基于预先存储的拓扑标识与拓扑状态之间的映射关系,查询处于未执行状态的拓扑,基于数据库中存储的拓扑标识与测试设备类型的之间的映射关系,确定与查询到的处于未执行状态的拓扑对应的测试设备类型,框架调度器将查询到的处于未执行状态的测试设备类型发送给中央调度器,这样,中央调度器可以根据框架调度器发送的测试设备类型为目标测试任务分配测试组网。s610,中央调度器将查询到的第二测试组网的第二测试组网标识发送给框架调度器,以便框架调度器在接收到第二测试组网标识后执行上述步骤s602-s605。其中,在执行s602-s605时,将s602、s603和s605中的第一测试组网变更为第一测试组网和第二测试组网。这里解释一下,框架调度器在接收到第二测试组网标识后,执行步骤s602时,向状态感知调度器发送的资源占用请求中携带有第一测试组网标识、第二测试组网标识、拓扑标识、目标任务标识和空任务标识,执行步骤s603时,状态感知调度器在接收到资源占用请求后,在第一测试组网和第二测试组网中查询满足拓扑关系的空闲测试设备,在执行步骤s605时,状态感知调度器确定是否在第一测试组网和第二测试组网中查询到满足拓扑关系的非空闲测试设备。s611,中央调度器根据各测试组网被占用的测试任务的优先级,从除第一测试组网外的其它测试组网中,确定是否存在与测试设备类型对应的、负载达到设定阈值的第三测试组网;其中,第三测试组网被占用的测试任务的优先级低于目标测试任务。若是,则执行s612;若否,执行s606,或者还可以执行s615。这里,第三测试组网标识一般包括多个测试组网标识,第三测试组网标识中不同测试组网标识对应的测试组网下的测试设备一般为不同的测试设备,其中,上述不同测试组网标识对应的测试组网下的测试设备的数目可以相同,也可以不同,可根据实际情况确定。当然,若实际应用需要上述不同测试组网下具有相同类型的测试设备,不同测试组网标识对应的测试组网下的测试设备也可以是相同类型的测试设备。在具体实施中,中央调度器基于各个测试任务的优先级,从第一测试组网外的其它测试组网中,选择与测试设备类型对应的第一中间测试组网,再从第一中间测试组网中,选择负载达到设定阈值的第二中间测试组网,从第二中间测试组网中,选择被占用的测试任务的优先级低于目标测试任务的第三测试组网。其中,当第二中间测试组网被多个测试任务占用时,只有在每个测试任务的优先级均低于目标测试任务的优先级时,才可以将上述第二中间测试组网确定为第三测试组网。在从第二中间测试组网中选择第三测试组网时,可以依据下述资源调度顺序表执行:资源调度顺序表其中,顺序1中组网使用状态与rich1对应,拓扑使用状态与rich2对应,顺序2中组网使用状态与poor1对应,拓扑使用状态与poor2对应。例如,按照顺序1对应的优先级和调度说明,从第二中间测试组网中,查询符合调度说明的第三测试组网,若查询到第三测试组网,则将第三测试组网中测试组网的标识分配给目标测试任务;若无法查找到第三测试组网,则按照顺序2、3、4,继续从第二中间测试组网中查询第三测试组网,直到查询到第三测试组网。其中,顺序2、3、4参考顺序1的查询过程,上述示例为优选的实施方式,不过应当注意,在具体实施中,不受顺序编号的限制。s612,中央调度器根据选择的第三测试组网中被占用的测试任务的优先级,向优先级低于目标测试任务的第三测试组网中被占用的测试任务所对应的框架调度器发送组网释放请求。在具体实施中,中央调度器根据数据库中存储的各测试设备的任务执行状态,确定第三测试组网下测试设备被占用的测试任务的任务标识,从确定的测试任务中,选择优先级低于目标测试任务的第一测试任务,向第一测试任务对应的框架调度器发送组网释放请求,组网释放请求中携带目标任务标识和第三测试组网标识。这里,若第三测试组网中存在多个第一测试任务优先级低于目标测试任务,向各第一测试任务对应的框架调度器发送组网释放请求,以便各框架调度器将第三测试组网中执行各第一测试任务的测试设备的任务标识变更为目标任务标识。s613,其它框架调度器将数据库中第三测试组网中被优先级低于目标测试任务的测试任务占用的测试设备的任务标识变更为目标任务标识,在将数据库中上述测试设备的任务标识变更为目标任务标识后,进入s614。这里,优先级低于目标测试任务的测试任务对应的框架调度器作为其它框架调度器。s614,其它框架调度器指示状态感知调度器将s613中变更为目标任务标识的数据库中的测试设备的任务执行状态变更为预约状态,并接收状态感知调度器返回的变更成功指令。s615,其它框架调度器在接收到变更成功指令后,向中央调度器发送组网释放成功指令。步骤s613-s615中的其它框架调度器均为优先级低于目标测试任务的测试任务对应的框架调度器。s616,中央调度器在接收到组网释放成功指令后,向目标测试任务对应的框架调度器发送第三测试组网标识,以便框架调度器在接收到第三测试组网标识后执行s602-s605,在执行s602-s605时,将s602、s603和s605中的第一测试组网更新为第一测试组网和第三测试组网,为目标测试任务提供更多的资源。这里,执行步骤s602-s605与步骤s610执行的s602-s605步骤相似,相似之处不再进行赘述。s617,中央调度器确定是否将第一测试组网下满足目标测试任务对应的拓扑关系、但正在被其它测试任务占用的非空闲测试设备分配给目标测试任务。若将第一测试组网下满足目标测试任务对应的拓扑关系、但正在被其它测试任务占用的非空闲测试设备分配给目标测试任务,则进入s618,若未找到第一测试组网下满足目标测试任务对应的拓扑关系、但正在被其它测试任务占用的非空闲测试设备,返回s606。在具体实施中,中央调度器基于数据库中各测试设备的占用信息,确定非空闲测试设备被占用的第二测试任务中包括的测试任务的任务标识,根据数据库中存储的各测试任务的拓扑信息表中的拓扑状态,确定第二测试任务对应的处于执行状态和完成状态的拓扑的数目,根据确定的拓扑的数目,以及第二调度策略表,确定第二测试任务中各测试任务的拓扑使用状态;基于确定的第二测试任务中各测试任务的拓扑使用状态,以及调度策略顺序表,从第二测试任务包括的测试任务中,查询优先级低于目标测试任务的第三测试任务,第三测试任务也可以包括多个测试任务。若查询到优先级低于目标测试任务的包括多个测试任务的第三测试任务,则将被第三测试任务占用的非空闲测试设备分配给目标测试任务。其中,第二调度策略表中包括:测试任务的优先级、处于执行状态的拓扑数目和拓扑使用状态之间的映射关系。此处以基于资源调度顺序表从第二测试任务包括的测试任务中,查询优先级低于目标测试任务的第三测试任务为例进行说明,按照顺序1的优先级和调度说明,从第二测试任务中查询符合调度说明的第三测试任务,若查询到第三测试任务,则将执行第三测试任务的非空闲测试设备分配给目标测试任务;若未查询到第三测试任务,则按照顺序2、3、4,继续从第二测试任务中查询符合对应的调度说明的第三测试任务,直到查询到第三测试任务,并将执行第三测试任务的非空闲测试设备分配给目标测试任务。其中,顺序2、3、4参考顺序1的查询过程,上述示例为优选的实施方式,不过应当注意,在具体实施中,不受顺序编号的限制。第二调度策略表包括测试任务的优先级与测试任务对应的拓扑的执行情况之间的对应关系。测试任务对应的拓扑的执行情况包括poor2、normal2和rich2,其中,poor2表征测试任务对应的拓扑处于使用状态或完成状态的拓扑数目比较少,normal2表征测试任务对应的拓扑处于使用状态或完成状态的拓扑数目比较正常,rich2表征测试任务对应的拓扑处于使用状态或完成状态的拓扑数目比较多。例如,参考非空闲测试设备与对应执行的测试任务的信息的对照表,目标测试任务m1的优先级为高,非空闲测试设备为a7、a8,测试设备a7上正在执行的测试任务的任务标识为m2,测试设备a8上正在执行的测试任务的任务标识为m3,测试任务m2的优先级为中,测试任务m3的优先级为低。若测试任务m2对应的拓扑状态表中有2个拓扑处于执行状态或完成状态,测试任务m3对应的拓扑状态表中有5个处于执行状或完成状态,目标测试任务m1对应的拓扑状态表中有3个处于执行状态或完成状态,对比第二调度策略表,测试任务m2的拓扑使用状态为poor2,测试任务m3的拓扑使用状态为rich2,目标测试任务m1的拓扑使用状态为poor2,此时,基于资源调度顺序表中的顺序,确定测试任务m2和测试任务m3的优先级均低于目标测试任务的优先级,确定将执行测试任务m2和测试任务m3的非空闲测试设备分配给目标测试任务。中央调度器指示测试任务m2、测试任务m3对应的框架调度器,将测试设备a7、测试设备a8的任务标识变更为目标测试任务的标识m1。其中,在基于资源调度顺序表确定重新将非空闲测试设备分配给目标测试任务的过程与上文从第二中间测试组网中选择第三测试组网的过程相似,此处不再进行过多说明。在确定测试任务m2、测试任务m3占用的测试设备可以重新分配给目标测试任务后,中央调度器还可以根据测试任务m2、测试任务m3和目标测试任务的优先级以及各测试任务的测试组网状态表,以及第一调度策略和资源调度顺序表,确定测试任务m2和/或测试任务m3是否可以反向占用重新分配给目标测试任务对应的测试组网,若测试任务m2和测试任务m3均可以反向占用重新分配给目标测试任务中的测试组网,则不将被测试任务m2和测试任务m3占用的非空闲测试设备分配给目标测试任务;若测试任务m2可以反向占用重新分配给目标测试任务中的测试组网,则不将被测试任务m2占用的非空闲测试设备分配给目标测试任务;若测试任务m3可以反向占用重新分配给目标测试任务中的测试组网,则不将被测试任务m3占用的非空闲测试设备分配给目标测试任务。框架调度器在监测到非空闲测试设备超过预设时长后,认为上述测试设备无法重新分配给目标测试任务,则删除框架调度器中的超过预设时长的非空闲测试设备的记录,避免中央调度器重复获取上述非空闲测试设备,从而减少中央调度器分配资源时消耗的时间。非空闲测试设备与被占用的测试任务的信息的对照表第二调度策略表s618,中央调度器向其它框架调度器发送设备释放请求,设备释放请求中携带有被优先级低于目标测试任务的测试任务占用的非空闲测试设备的信息和目标任务标识。这里,其它框架调度器为步骤s617中确定的优先级低于目标测试任务的测试任务对应的框架调度器。s619,其它框架调度器将被优先级低于目标测试任务的测试任务占用的非空闲测试设备的任务标识变更为目标任务标识,在将非空闲测试设备的任务标识变更为目标任务标识后,进入s620。s620,其它框架调度器指示状态感知调度器将s619中变更为目标任务标识的非空闲测试设备的任务执行状态变更为预约状态,并接收状态感知调度器返回的变更成功指令。s621,其它框架调度器在接收到变更成功指令后,向中央调度器发送设备释放成功指令。步骤s620-s621中的其它框架调度器均为步骤s617中确定的优先级低于目标测试任务的测试任务对应的框架调度器。s622,中央调度器在接收到释放成功指令后,向目标测试任务对应的框架调度器发送资源占用指示,资源占用指示用于指示上述框架调度器重新执行s602-s605。如图7所示,本公开实施例提供了一种资源调度装置,应用于状态感知调度器中,包括:接收模块71,用于接收框架调度器发送的针对目标测试任务的资源占用请求;所述资源占用请求中携带有中央调度器为所述目标测试任务分配的第一测试组网标识和所述框架调度器为所述目标测试任务分配的拓扑标识;所述拓扑标识用于标识执行所述目标测试任务的多个测试设备之间的拓扑关系;查找模块72,用于根据数据库中存储的各测试设备的占用信息,从所述第一测试组网标识对应的第一测试组网下的各测试设备中,查找满足所述拓扑关系、且未被其它测试任务占用的空闲测试设备;处理模块73,用于将查找到的空闲测试设备的信息返回给所述框架调度器,并更新所述数据库中查找到的所述空闲测试设备的占用信息。可选地,所述处理模块73还用于:若在所述第一测试组网标识对应的第一测试组网下的各测试设备中,不存在满足所述拓扑关系、且未被其它测试任务占用的空闲测试设备,但存在满足所述拓扑关系、正在被其它测试任务占用的非空闲测试设备,则将所述非空闲测试设备的信息返回给所述框架调度器。可选地,所述占用信息包括任务执行状态,接收模块71还用于:接收框架调度器发送的针对目标测试任务的资源释放请求,所述资源释放请求中携带有所述目标测试任务对应的拓扑标识;所述查找模块72,还用于根据所述资源释放请求中携带的拓扑标识,确定待释放的测试设备;其中,所述待释放的测试设备满足所述拓扑标识对应的拓扑关系;所述处理模块73,还用于将所述数据库中确定的所述待释放的测试设备的任务执行状态变更为空闲状态。如图8所示,本公开另一实施例提供了一种资源调度装置,应用于中央调度器中,该装置包括:第一处理模块81,用于在接收到目标测试任务后,基于所述目标测试任务对应的测试设备类型,为所述目标测试任务分配第一测试组网标识,并将所述第一测试组网标识发送给所述目标测试任务对应的框架调度器,以使框架调度器向状态感知调度器发送针对目标测试任务的资源占用请求;第二处理模块82,若确定所述状态感知调度器根据数据库中存储的各测试设备的占用信息,未在所述第一测试组网标识对应的第一测试组网下查找到满足所述目标测试任务对应的拓扑关系的测试设备,则为所述目标测试任务分配第二测试组网标识,或者为所述目标测试任务分配所述第一测试组网下满足所述目标测试任务对应的拓扑关系、但正在被其它测试任务占用的非空闲测试设备。可选地,所述第二处理模块82具体用于基于所述目标测试任务对应的测试设备类型,从除所述第一测试组网外的其它测试组网中,查询与所述测试设备类型对应的、且负载没有达到设定阈值的第二测试组网;将查询到的所述第二测试组网的第二测试组网标识发送给所述框架调度器。可选地,所述第二处理模块82还用于:若未查询到与所述测试设备类型对应的、且负载没有达到设定阈值的第二测试组网,则根据各测试组网被占用的测试任务的优先级,从除所述第一测试组网外的其它测试组网中,选择与所述测试设备类型对应的、负载达到设定阈值的第三测试组网,其中,所述第三测试组网被占用的测试任务的优先级低于所述目标测试任务;将所述第三测试组网的第三测试组网标识发送给所述框架调度器。可选地,所述占用信息包括任务标识,该装置还包括:变更模块73用于:若所述目标测试任务的优先级高于设定优先级,则将所述第一测试组网下未被测试任务占用的测试设备的任务标识变更为所述目标测试任务的目标任务标识,以使所述状态感知调度器在所述第一测试组网下具有所述目标任务标识或任务标识为空的测试设备中,查找满足所述目标测试任务对应的拓扑关系的测试设备。如图9所示,本公开一实施例提供了一种计算机设备900,用于执行图2中应用于状态感知调度器中的资源调度方法方法,该设备包括存储器901、处理器902及存储在该存储901上并可在该处理器902上运行的计算机程序,其中,上述处理器902执行上述计算机程序时实现上述资源调度方法的步骤。具体地,上述存储器901和处理器902能够为通用的存储器和处理器,这里不做具体限定,当处理器902运行存储器901存储的计算机程序时,能够执行上述资源调度方法,从而解决通过两级调度方式为测试任务分配测试设备时的测试设备利用率比较低的问题,本公开实施例提出的资源调度方法:通过数据库来维护测试组网中各测试设备的占用信息,框架调度器在需要为目标测试任务分配第一测试组网下的测试设备时,指示状态感知调度器基于数据库中各测试设备的占用信息,从第一测试组网下的各测试设备中,查找满足拓扑关系的空闲测试设备,这样,第一测试组网若能够同时满足多个测试任务所需要的拓扑关系,就能够在不引起资源冲突的情况下,同时执行多个测试任务,从而提高了测试设备的利用率。如图10所示,本公开又一实施例提供了一种计算机设备1000,用于执行图5中应用于中央调度器中的资源调度方法,该设备包括存储器1001、处理器1002及存储在该存储器1001上并可在该处理器1002上运行的计算机程序,其中,上述处理器1002执行上述计算机程序时实现上述资源调度方法的步骤。具体地,上述存储器1001和处理器1002能够为通用的存储器和处理器,这里不做具体限定,当处理器1002运行存储器1001存储的计算机程序时,能够执行上述资源调度方法,从而解决通过两级调度方式为测试任务分配测试设备时的测试设备利用率比较低的问题,本公开实施例提出的资源调度方法:通过数据库来维护测试组网中各测试设备的占用信息,框架调度器在需要为目标测试任务分配第一测试组网下的测试设备时,指示状态感知调度器基于数据库中各测试设备的占用信息,从第一测试组网下的各测试设备中,查找满足拓扑关系的空闲测试设备,这样,第一测试组网若能够同时满足多个测试任务所需要的拓扑关系,就能够在不引起资源冲突的情况下,同时执行多个测试任务,从而提高了测试设备的利用率。在本公开所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本公开提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本
技术领域
的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围。都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1