CN110287008B - 一种测试任务调度方法、装置及电子设备 - Google Patents
一种测试任务调度方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110287008B CN110287008B CN201910428021.6A CN201910428021A CN110287008B CN 110287008 B CN110287008 B CN 110287008B CN 201910428021 A CN201910428021 A CN 201910428021A CN 110287008 B CN110287008 B CN 110287008B
- Authority
- CN
- China
- Prior art keywords
- test
- machine
- subtask
- scheduled
- individual
- 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.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 749
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000035772 mutation Effects 0.000 claims description 41
- 230000004083 survival effect Effects 0.000 claims description 31
- 238000004364 calculation method Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012216 screening Methods 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 description 13
- 230000002068 genetic effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明涉及计算机技术领域,提供一种测试任务调度方法、装置及电子设备,以解决测试任务执行效率低的问题。该方法包括:从待调度测试任务集中确定目标测试任务;基于目标测试任务对应的机器与测试子任务的对应关系,确定执行目标测试任务中第一测试子任务的第一机器;通过第一机器执行第一测试子任务。由于第一测试子任务的测试数据预先存储于第一机器中,确定第一机器后,第一机器无需再进行第一测试子任务的测试数据的下载,基于第一机器预先存储的第一测试子任务的测试数据执行第一测试子任务即可,节约测试数据下载时间,提高任务执行效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种测试任务调度方法、装置、电子设备及计算机可读存储介质。
背景技术
随着智能技术的快速发展,越来越多的应用以及***涌现。用户可通过各种应用执行对应的操作实现相关功能。在应用开发完成之后,正式上线使用之前,为确保应用能正常运行,需要进行测试。由于应用会涉及多种多样的模块,需要对每个模块进行测试,一个应用的***级测试任务可以理解为由应用中各模块的测试子任务组成,完成一个应用中各模块的测试子任务的执行,则认为该应用的***级测试任务完成。
目前,可通过***级测试任务调度平台对测试任务进行调度,测试任务可以包括对多个测试模块(即需要测试的模块)的测试子任务,要求测试任务中所有模块都集齐测试需要的测试数据和执行资源(例如,CPU和内存),任务才能被调度。然而,目前在执行测试模块对应的测试子任务的过程中,是从待选的机器(可执行测试子任务的设备)中随机选取机器执行测试模块的测试子任务,对于需要较大测试数据的测试模块,随机选取的机器在执行测试过程中,需要花费较多的时间进行测试数据的下载,影响测试子任务的执行效率,从而容易导致测试任务执行效率低。
发明内容
本发明实施例提供一种测试任务调度方法、装置、电子设备及计算机可读存储介质,以解决现有技术测试任务执行效率低的问题。
第一方面,本发明实施例提供了一种测试任务调度方法,所述方法包括:
从待调度测试任务集中确定目标测试任务;
基于所述目标测试任务对应的机器与测试子任务的对应关系,确定执行所述目标测试任务中第一测试子任务的第一机器,其中,所述第一测试子任务的测试数据预先存储于所述第一机器中;
通过所述第一机器执行所述第一测试子任务。
可选的,所述从待调度测试任务集中确定目标测试任务之后,所述方法还包括:
确定执行所述目标测试任务中第二测试子任务的第二机器;
通过所述第二机器下载所述第二测试子任务的测试数据并执行所述第二测试子任务。
可选的,所述目标测试任务的优先级高于待定测试任务的优先级,所述待定测试任务为所述待调度测试任务集中除所述目标测试任务以外的测试任务。
可选的,所述从待调度测试任务集中确定目标测试任务之前,还包括:
基于所述待调度测试任务的特征参数,确定所述待调度测试任务集中各所述待调度测试任务的优先级,其中,所述特征参数包括资源特征参数以及时长特征参数。
可选的,所述基于所述目标测试任务对应的机器与测试子任务的对应关系,确定执行所述目标测试任务中第一测试子任务的第一机器之前,还包括:
基于所述第一测试子任务的第一预设并发数,初始化多个个体获得第一种群;
计算所述第一种群中每个所述个体的适应度;
基于所述第一种群中每个所述个体的适应度,对所述第一种群进行个体选择,获得存活个体群;
获取所述存活个体群中待变异个体;
对所述存活个体群中所述待变异个体进行变异处理,确定变异种群;
在不满足预设终止条件的情况下,将所述变异种群作为所述第一种群,返回所述计算所述第一种群中每个所述个体的适应度的步骤,直到满足预设终止条件,将所述变异种群中适应度最大的个体对应的内容作为所述机器与测试子任务的对应关系。
可选的,所述计算所述第一种群中每个所述个体的适应度,包括:
根据每个所述个体的第一资源以及第二资源,计算每个所述个体的执行资源冲突度;其中,所述第一资源为所述个体中每个机器分别对应的至少一个测试子任务所需的执行资源之和,所述第二资源为所述个体中每个机器对应的执行资源;
根据每个所述个体的执行资源冲突度以及变异成本,计算所述第一种群中每个所述个体的适应度。
可选的,所述对所述存活个体群中所述待变异个体进行变异处理,确定变异种群,包括:
根据所述待变异个体中每个机器的执行资源冲突度,确定所述待变异个体中待变异机器;
根据所述待变异个体中所述待变异机器对应的至少一个测试子任务的资源占用量,确定所述待变异个体中所述待变异机器对应的待变异子任务;
根据M个待选机器的执行资源冲突度,从所述M个待选机器确定变异目标机器;所述M为大于或等于1的整数;
将所述待变异个体中所述待变异子任务对应的待变异机器更换为所述变异目标机器,获得变异个体;
根据所述存活个体群和所述变异个体,确定所述变异种群。
第二方面,本发明实施例还提供一种测试任务调度装置,包括:
任务确定模块,用于从待调度测试任务集中确定目标测试任务;
第一机器确定模块,用于基于所述目标测试任务对应的机器与测试子任务的对应关系,确定执行所述目标测试任务中第一测试子任务的第一机器,其中,所述第一测试子任务的测试数据预先存储于所述第一机器中;
调度模块,用于通过所述第一机器执行所述第一测试子任务。
可选的,所述装置还包括第二机器确定模块;
所述第二机器确定模块,用于确定执行所述目标测试任务中第二测试子任务的第二机器;
所述调度模块,还用于通过所述第二机器下载所述第二测试子任务的测试数据并执行所述第二测试子任务。
可选的,所述目标测试任务的优先级高于待定测试任务的优先级,所述待定测试任务为所述待调度测试任务集中除所述目标测试任务以外的测试任务。
可选的,所述装置还包括:
任务优先级确定模块,用于基于所述待调度测试任务的特征参数,确定所述待调度测试任务集中各所述待调度测试任务的优先级,其中,所述特征参数包括资源特征参数以及时长特征参数。
可选的,所述装置还包括:
种群初始化模块,用于基于所述第一测试子任务的第一预设并发数,初始化多个个体获得第一种群;
适应度计算模块,用于计算所述第一种群中每个所述个体的适应度;
筛选模块,用于基于所述第一种群中每个所述个体的适应度,对所述第一种群进行个体选择,获得存活个体群;
待变异个体获取模块,用于获取所述存活个体群中待变异个体;
变异模块,用于对所述存活个体群中所述待变异个体进行变异处理,确定变异种群;
对应关系确定模块,用于在不满足预设终止条件的情况下,将所述变异种群作为所述第一种群,返回所述适应度计算模块执行所述计算所述第一种群中每个所述个体的适应度,直到满足预设终止条件,将所述变异种群中适应度最大的个体对应的内容作为所述机器与测试子任务的对应关系。
可选的,所述适应度计算模块,包括:
个体资源冲突度计算模块,用于根据每个所述个体的第一资源以及第二资源,计算每个所述个体的执行资源冲突度;其中,所述第一资源为所述个体中每个机器分别对应的至少一个测试子任务所需的执行资源之和,所述第二资源为所述个体中每个机器对应的执行资源;
个体适应度获得模块,用于根据每个所述个体的执行资源冲突度以及变异成本,计算所述第一种群中每个所述个体的适应度。
可选的,所述变异模块,包括:
待变异机器确定模块,用于根据所述待变异个体中每个机器的执行资源冲突度,确定所述待变异个体中待变异机器;
待变异子任务确定模块,用于根据所述待变异个体中所述待变异机器对应的至少一个测试子任务的资源占用量,确定所述待变异个体中所述待变异机器对应的待变异子任务;
变异目标机器确定模块,用于根据M个待选机器的执行资源冲突度,从所述M个待选机器确定变异目标机器;所述M为大于或等于1的整数;
更换模块,用于将所述待变异个体中所述待变异子任务对应的待变异机器更换为所述变异目标机器,获得变异个体;
变异种群确定模块,用于根据所述存活个体群和所述变异个体,确定所述变异种群。
第三方面,本发明实施例还提供一种电子设备,包括:存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的测试任务调度方法中的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的测试任务调度方法中的步骤。
本申请实施例的测试任务调度方法中,可通过基于所述目标测试任务对应的机器与测试子任务的对应关系,确定执行所述目标测试任务中第一测试子任务的第一机器。由于所述第一测试子任务的测试数据预先存储于第一机器中,在确定第一机器后,即可通过第一机器执行第一测试子任务,第一机器无需再进行第一测试子任务的测试数据的下载,基于本地预先已存储的第一测试子任务的测试数据执行第一测试子任务即可,节约第一测试子任务的测试数据的下载时间,减少第一测试子任务执行时间,从而提高目标测试任务的执行效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的测试任务调度方法的流程图之一;
图2是本发明实施例提供的测试任务调度方法的流程图之二;
图3是本发明实施例提供的测试任务调度方法的原理图之一;
图4是本发明实施例提供的电子设备的示意图之一;
图5是本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,在一个实施例中,提供了一种测试任务调度方法,可应用于任务调度平台(任务调度平台可以包括电子设备),包括:
S101:从待调度测试任务集中确定目标测试任务。
对测试任务进行调度,通过机器进行测试任务的执行,待调度测试任务可以理解为待执行测试任务。待调度测试任务集中包括至少一个待调度测试任务,通过任务调度平台可待调度测试任务集中的待调度测试任务进行调度,以执行待调度测试任务。在任务调度过程中,首选需从待调度测试任务集中确定目标测试任务,即确定需要执行的测试任务,后续对执行该目标测试任务中的测试子任务的机器进行确定后,即可通过确定的机器执行对应的测试子任务,从而完成目标测试任务的执行。
S102:基于目标测试任务对应的机器与测试子任务的对应关系,确定执行目标测试任务中第一测试子任务的第一机器。
其中,第一测试子任务的测试数据预先存储于第一机器中。预先已确定目标测试任务对应的机器与测试子任务的对应关系,机器与测试子任务的对应关系中测试子任务的测试数据预先存储于对应的机器。在从待调度测试任务集中确定目标测试任务后,即可基于机器与测试子任务的对应关系,确定执行目标测试任务中第一测试子任务的第一机器。目标测试任务包括多个测试子任务,例如,包括第一测试子任务和第二测试子任务,其中,第一测试子任务在机器与测试子任务的对应关系中有对应的机器,且所需的测试数据预先存储在对应的机器中,可从该对应关系中与该第一测试子任务对应的机器中,确定执行第一测试子任务的第一机器。其中,第一机器的执行资源(可使用的资源)大于或等于第一测试子任务所需的执行资资源。若一个第一机器对应执行至少一个第一测试子任务,则该第一机器的执行资源大于或等于对应执行的至少一个第一测试子任务所需的执行资源之和。
比如,目标测试任务包括测试子任务a、测试子任务b和测试子任务c,在机器与测试子任务的对应关系中,机器1与测试子任务a对应,机器2与测试子任务a对应,机器2与测试子任务b对应,机器3与测试子任务c对应。测试子任务a的测试数据分别存储在机器1和机器2,测试子任务b的测试数据存储在机器2,测试子任务c的测试数据存储在机器3。目标测试任务的第一测试子任务为测试子任务a,可在上述机器与测试子任务的对应关系中,与测试子任务a对应的机器1和机器2中确定执行测试子任务a的第一机器,例如,若机器1的执行资源大于或等于执行测试子任务a所需的执行资源,则可将机器1作为执行测试子任务a的第一机器。又例如,机器1和机器2的执行资源均大于或等于执行测试子任务a所需的执行资源,则可在机器1和机器2中选择任意一个作为执行测试子任务a的第一机器。
若目标测试任务的第一测试子任务包括测试子任务a和测试子任务b,可在上述机器与测试子任务的对应关系中,与测试子任务a对应的机器1和机器2中确定执行测试子任务a的第一机器,在上述机器与测试子任务的对应关系中,与测试子任务b对应的机器为机器2,即可将机器2确定为执行测试子任务b的第一机器,机器2的执行资源大于或等于执行测试子任务b所需的执行资源,若将机器2确定为执行测试子任务a的第一机器,则机器2的执行资源大于或等于测试子任务a和测试子任务b所需的执行资源之和。如此,可确保机器2有足够的执行资源来执行测试子任务b。此时,可以理解,第一测试子任务的第一机器包括执行测试子任务a的第一机器和执行测试子任务b的第一机器。
S103:通过第一机器执行第一测试子任务。
确定第一机器后,即可将第一测试子任务分配给第一机器,通过第一机器执行第一测试子任务。由于第一测试子任务的测试数据预先已存储在第一机器中,在对目标测试任务中第一测试子任务执行过程中,无需再进行第一测试子任务的测试数据的下载,减少执行时间,提高测试效率。
本申请实施例的测试任务调度方法中,可通过基于所述目标测试任务对应的机器与测试子任务的对应关系,确定执行所述目标测试任务中第一测试子任务的第一机器。由于所述第一测试子任务的测试数据预先存储于第一机器中,在确定第一机器后,即可通过第一机器执行第一测试子任务,第一机器无需再进行第一测试子任务的测试数据的下载,基于本地预先已存储的第一测试子任务的测试数据执行第一测试子任务即可,节约第一测试子任务的测试数据的下载时间,减少第一测试子任务执行时间,从而提高目标测试任务的执行效率。与此同时,无需在线进行机器与测试子任务的对应关系的确定,可预先确定机器与测试子任务的对应关系,在线进行测试任务调度时,通过目标测试任务对应的机器与测试子任务的对应关系,确定执行所述目标测试任务中第一测试子任务的第一机器即可,利用第一机器即可进行第一测试子任务的执行,避免在线确定机器与测试子任务的对应关系耗时久的问题,能满足测试任务调度的实时性要求。
在一个实施例中,所述从待调度测试任务集中确定目标测试任务之后,所述方法还包括:确定执行所述目标测试任务中第二测试子任务的第二机器;通过所述第二机器下载所述第二测试子任务的测试数据并执行所述第二测试子任务。
由于目标测试子任务除了包括第一测试子任务外,还可包括第二测试子任务,因此,还需确定执行目标测试任务中第二测试子任务的第二机器。第二机器的执行资源大于或等于第二测试子任务所需的执行资资源,若一个第二机器上执行至少一个第二测试子任务,则该第二机器的执行资源大于或等于对应执行的至少一个第二测试子任务所需的执行资源之和。例如,机器4和机器5有足够的执行资源,机器4和机器5不属于目标测试任务对应的机器与测试子任务的对应关系中的机器,在确定目标测试任务后,可在机器4和机器5中确定执行第二测试子任务的第二机器。比如,第二测试子任务为测试子任务d,则可在机器4和机器5中任意选择一个机器作为执行第二测试子任务的第二机器,选择的机器的执行资源大于或等于测试子任务d所需的执行资源,例如,可选择机器4作为执行测试子任务d的第二机器。
又例如,第二测试子任务包括测试子任务d和测试子任务e,则可在机器4和机器5中任意选择一个机器作为执行测试子任务d的第二机器以及任意选择一个机器作为执行测试子任务e的第二机器,执行测试子任务d的第二机器和执行测试子任务e的第二机器可以相同,例如,机器4,但机器4的执行资源大于或等于测试子任务d和测试子任务e所需的执行资源之和。执行测试子任务d的第二机器和执行测试子任务e的第二机器可以不相同,例如,机器4为执行测试子任务d的第二机器,机器5为执行测试子任务e的第二机器,机器4的执行资源大于或等于测试子任务d所需的执行资源,机器5的执行资源大于或等于测试子任务e所需的执行资源。
确定第二机器后,即可将第二测试任务分配给第二机器,通过第二机器执行第二测试子任务,其中,第二机器下载第二测试子任务的测试数据后进行任务的执行,例如,可向第二机器提供第二测试子任务的测试数据的下载地址,第二机器根据下载地址下载测试数据即可。可避免第二测试子任务的测试数据存储于第二机器对第二机器的资源的占用,给第二机器造成压力而影响第二机器的任务执行。
在本实施例中,确定第一机器和第二机器后,即可将第一测试子任务分配给第一机器进行执行,将第二测试任务分配给第二机器进行执行,其中,第二机器下载第二测试子任务的测试数据后进行任务的执行,第一测试子任务的测试数据预先已存储在第一机器中,在任务执行过程中,无需再进行测试数据的下载,减少执行时间,提高测试效率。
在一个示例中,第一测试子任务为目标测试任务包括的多个测试子任务中对应的测试数据的量大于预设数据量的测试子任务,可以理解为大测试数据子任务,需要较大的测试数据,为避免对较大的测试数据的下载影响执行效率,可将其对应的测试数据预先存储于机器与测试子任务的对应关系中对应的机器中。第二测试子任务为目标测试任务包括的多个测试子任务中对应的测试数据的量小于或等于预设数据量的测试子任务,可以理解为小测试数据子任务,第二机器只需花费较少的时间下载测试数据并执行任务。
在一个实施例中,第一机器与第二机器交集为空,即若第一机器和第二机器的数量为一个,表示第一机器与第二机器不同,若第一机器或第二机器的数量为至少两个,则表示第一机器和第二机器中不存在相同。如此,可确保执行第一测试子任务的第一机器不会执行第二测试子任务,可以理解,第一机器属于目标测试任务对应的机器与测试子任务的对应关系中的机器,第二机器不属于目标测试任务对应的机器与测试子任务的对应关系中的机器,即不允许将第二测试子任务往第一机器分配,避免第二测试子任务对执行第一测试子任务的第一机器的资源竞争,从而避免对第一机器的资源的抢占,确保对第一测试子任务的执行效率,提升整体吞吐量,缩短任务排队时长,从而提高整体任务的执行效率,缩短对应产品交付周期。
在一个实施例中,确定执行所述目标测试任务中第一测试子任务的第一机器,包括:若存在满足第一预设要求的N个第一目标机器,则从所述N个第一目标机器中确定第一机器;其中,所述N为大于或等于1的正整数。其中,第一预设要求包括为机器与测试子任务的对应关系中与第一测试子任务对应的机器,且执行资源大于或等于第一测试子任务所需的资源。
即所述第一目标机器为所述机器与测试子任务的对应关系中与第一测试子任务对应的机器,且所述第一目标机器的执行资源大于或等于第一测试子任务所需的执行资源。在机器与测试子任务的对应关系中,若第一测试子任务对应至少一个机器,且都满足第一预设要求,可在满足第一预设要求的N个第一目标机器中任意选择一个作为第一测试子任务的第一机器。对于第一测试子任务有多个的情况,可通过上述过程分别对每个第一测试子任务确定其对应的第一机器。
在一个实施例中,目标测试任务的优先级高于待定测试任务的优先级,待定测试任务为待调度测试任务集中除目标测试任务以外的测试任务。
即是将待调度测试任务集中优先级较高的测试任务作为目标测试任务,后续即可对目标测试任务中的测试子任务进行执行,以完成目标测试任务的执行。不再是根据先来后到的顺序调度任务,而是根据测试任务的优先级调度任务,避免在先来的测试任务中存在所需的执行资源较大的测试子任务的情况下,集齐所需的执行资源花费的时间较长而影响整体调度效率的问题,提高整体任务调度的效率。
在一个实施例中,从待调度测试任务集中确定目标测试任务之前,还包括:
基于待调度测试任务的特征参数,确定待调度测试任务集中各待调度测试任务的优先级,其中,特征参数包括资源特征参数以及时长特征参数。
执行测试任务需要一定的执行资源,对于不同的测试任务(例如,所需的测试数据的大小不同或测试过程不同),所需的执行资源不同,比如,测试数据越大,则所需的执行资源越大。不同的测试任务,当前所能收集的资源也不同(不同测试任务,其机器与测试子任务的对应关系不同,其中的测试子任务,对应可选择的机器不同,从而测试子任务能收集的资源不同)。另外,对于不同的测试任务,其对应等待的时长也不同。因此,在本实施例中,根据待调度测试任务的资源特征参数以及时长特征参数来确定待调度测试任务的优先级,根据优先级高低来确定目标测试任务,可以确保任务的合理调度,以提高整体调度效率,从而提高整体执行效率。
在一个示例中,资源特征参数可以包括资源集齐率和所需的执行资源占比,时长特征参数可以包括等待时长占比。待调度测试任务的优先级与等待时长占以及资源集齐率成正比,与所需的执行资源成反比。当待调度测试任务所需的执行资源少,资源集齐率高,可优先被调度,有利于缩短任务平均排队时长,提高整体执行效率。当待调度测试任务所需的执行资源多,资源集齐率低,通过等待时长的增加,能被调度,可以控制最长排队时长。即本实施例的确定优先级过程中,综合考虑了执行资源的需求情况、任务的等待时长以及资源集齐情况,从而可减少小测试数据测试子任务见缝插针,大测试数据测试子任务长时间无法集齐资源,排队时长两极分化严重的情况。
在一个示例中,确定待调度测试任务的优先级的公式为:
其中,1≤i≤n,n为待调度测试任务集中待调度测试任务的总数,Ui为第i个待调度测试任务的优先级,Ji为第i个待调度测试任务的资源集齐率,Xi为第i个待调度测试任务的所需的执行资源占比,Ti为第i个待调度测试任务的等待时长占比,a为第一预设系数,b为第二预设系数,c为第三预设系数。
其中,第i个待调度测试任务的资源集齐率Ji的计算公式为:
其中,λ为第四预设系数,S1i为第i个待调度测试任务能申请到的CPU资源(即第i个待调度测试任务中m1个测试子任务所需的CPU资源之和,其中,m1个测试子任务表示能申请到CPU资源且申请到的CPU资源等于测试子任务本身所需的CPU资源的测试子任务,m1为大于或等于零的整数,为零0时,表示目前第i个待调度测试任务中没有测试子任务能申请到与所需的CPU资源相等的CPU资源),Z1i为第i个待调度测试任务所需的CPU资源(即第i个待调度测试任务中多个测试子任务所需的CPU资源之和),S2i为第i个待调度测试任务能申请到的内存资源(即第i个待调度测试任务中m2个测试子任务所需的内存资源之和,其中,m2个测试子任务表示能申请到内存资源且申请到的内存资源等于测试子任务本身所需的内存资源的测试子任务,m2为大于或等于零的整数,为零时,表示目前第i个待调度测试任务中没有测试子任务能申请到与所需的内存资源相等的内存资源),Z2i为第i个待调度测试任务所需的内存资源。
第i个待调度测试任务的所需的执行资源占比Xi的计算公式为:
其中,β为第五预设系数,L1为待调度测试任务集中所需的CPU资源最大的待调度测试任务所需的CPU资源,L2为待调度测试任务集中所需的内存资源最大的待调度测试任务所需的CPU资源。
第i个待调度测试任务的等待时长占比Ti的计算公式为:
其中,ti为第i个待调度测试任务的等待时长(以分钟为单位),th为预设时长,例如,可以为30分钟。
在一个实施例中,上述测试任务调度方法中,从待调度测试任务集中确定目标测试任务之后,还包括:若目标测试任务在预设时长内未被调度,则重新确定待调度测试任务集中各待调度测试任务的优先级。后续根据更新后的待调度测试任务集中各待调度测试任务的优先级,确定目标测试任务,即可更新目标测试任务。可避免目标测试任务等待被调度的时长太长,影响后续的任务调度,导致整体任务执行效率低的问题,重新进行优先级确定,根据更新后的优先级重新确定目标测试任务,提高任务执行效率。
参照图2,在一个实施例中,基于目标测试任务对应的机器与测试子任务的对应关系,确定执行目标测试任务中第一测试子任务的第一机器之前,还包括:
S201:基于第一测试子任务的第一预设并发数,初始化多个个体获得第一种群。
在本实施例中,是通过遗传算法,确定目标测试任务对应的机器与测试子任务的对应关系。遗传算法是一种启发式搜索算法,所要解决的问题是模拟成一个生物进化的过程,通过复制、交叉以及突变等操作产生下一代的个体,并逐步淘汰适应度较低的个体,增加适应度高的个体,适应度高的个体遗产到下一代的机会大,这样可能会进化出适应度很高的个体。在本实施例中,遗传算法中的一个个体表示一种机器与测试子任务的对应关系,即一个个体表示机器与测试子任务的部署方案,也可以理解为,一个个体对应的内容为一种机器与测试子任务的对应关系。
具体地,首先初始化多个个体,以得到第一种群,第一种群中包括多个个体,上述第一预设并发数为基于历史任务数据确定的。通过历史任务数据(已执行的任务数据)可知,多个任务可能包括同一第一测试子任务,若多个任务同时执行,则需要与多个任务的数量相同份数的同一第一测试子任务的测试数据,即要在多个机器中分别预先存储上述同一第一测试子任务的测试数据,以便在多个任务同时执行的情况下,保证每个任务的同一第一测试子任务的测试数据有效且足够。即预设并发数为预存份数,第一预设并发数为第一测试子任务的测试数据预存份数。其中,个体中机器与测试子任务的对应关系则包括多个机器与测试子任务对,机器与测试子任务对的数量即为第一预设并发数。若第一测试子任务的数量有多个,即数量至少为两个,则每个第一测试子任务有对应的一个第一预设并发数,则个体中机器与测试子任务对数量即为多个第一预设并发数之和。也就是说,本实施例在确定机器与测试子任务的对应关系过程中,考虑了第一测试子任务对应历史实际需要的预分发份数(测试数据预存份数),且避开了第二测试子任务对预先存储第一测试子任务的测试数据的第一机器的资源竞争,提高集齐第一测试资资源所需的执行资源的效率。
例如,第一测试子任务为测试子任务a,最大可被3个测试任务依赖,3个测试任务同时执行时,需执行测试子任务a,则测试子任务a的测试数据预先存储在3个不同的机器,则第一预设并发数为3。初始化个体时,每个个体中机器与测试子任务对应关系中机器与测试子任务对的数量为3,即上述测试任务a分别与3个不同机器对。又例如,第一测试子任务包括测试子任务a和测试子任务b,测试子任务a最大可被3个测试任务依赖,3个测试任务同时执行时,需执行该测试子任务a,则测试子任务a的测试数据预先存储在3个不同的机器,则测试子任务a对应的第一预设并发数为3。测试子任务b最大可被2个测试任务依赖,2个测试任务同时执行时,需执行该测试子任务b,则测试子任务b的测试数据预先存储在2个不同的机器,则测试子任务b对应的第一预设并发数为2。初始化个体时,每个个体中机器与测试子任务对应关系中机器与测试子任务对的数量为5,即上述测试任务a分别与3个不同机器对以及测试任务分别与2个不同机器对。
S202:计算第一种群中每个个体的适应度。
初始化个体得到对种群后,可计算每个个体的适应度,遗传算法中以个体的适应度大小来评定各个个体的优劣程度,从而决定其遗传机会的大小。
S203:基于第一种群中每个个体的适应度,对第一种群进行个体选择,获得存活个体群。
根据个体的适应度,对第一种群进行个体选择(通过轮盘赌算法进行个体的选择,又称比例选择算法.各个个体被选中的概率与其适应度大小成正比),以获得存活个体群,存活个体群中包括对第一种群选中的个体。第一种群中个体的适应度越大,被选中的概率越大,即选中的概率与适应度成正比。
S204:获取存活个体群中待变异个体;
S205:对存活个体群中待变异个体进行变异处理,确定变异种群;
再进行个体变异处理,则需要从存活个体群中随机选取需要变异的个体,即待变异个体,其数量可以为一个或至少两个,对待变异个体进行变异处理,得到变异个体,即得到的变异个体可以为一个或至少两个,与待变异个体数量相同,将变异个体与存活个体群合并得到变异种群。
S206:在不满足预设终止条件的情况下,将变异种群作为第一种群,返回计算第一种群中每个个体的适应度的步骤,直到满足预设终止条件,将变异种群中适应度最大的个体对应的内容作为机器与测试子任务的对应关系。
在得到变异种群后,则需要判断此时是否满足预设终止条件,即停止遗传算法的条件,若不满足,则将变异种群作为第一种群,即更新第一种群,再返回计算所述第一种群中每个所述个体的适应度的步骤,继续之前的个体选择以及变异处理等过程,直到满足预设终止条件,再将最后得到的变异种群中适应度最大的个体的内容作为所述机器与测试子任务的对应关系,完成目标测试任务对应的机器与测试子任务的对应关系的确定,然后可将机器与测试子任务的对应关系中测试子任务的测试数据预先存储于对应的机器,后续机器与测试子任务的对应关系中的机器执行第一测试子任务过程中,可调用对应的预先存储的测试数据。通过上述遗传算法确定的机器与测试子任务的对应关系为适应度最大的个体的内容,从而可确保得到的目标测试任务对应的机器与测试子任务的对应关系的合理性,避免资源的浪费。
在一个实施例中,预设终止条件可以包括迭代次数超过预设最大迭代次数。即在初始化多个个体获得第一种群之前,可初始化迭代次数为零,在确定变异种群之后,将迭代次数加一,在迭代次数不超过预设最大迭代次数,则表示不满足预设停止条件,变异种群作为所述第一种群,再返回进行适应度的计算,如此循环,直到迭代次数超过预设最大迭代次数,将变异种群中适应度最大的个体的内容作为目标测试任务对应的机器与测试子任务的对应关系。
在一个实施例中,计算第一种群中每个个体的适应度,包括:
根据每个个体的第一资源以及第二资源,计算每个个体的执行资源冲突度;其中,第一资源为个体中每个机器分别对应的至少一个测试子任务所需的执行资源之和,第二资源为个体中每个机器对应的执行资源;根据每个个体的执行资源冲突度以及变异成本,计算第一种群中每个个体的适应度。
每个个体对应机器与测试子测试模块的对应关系,在一个个体中,一台机器可对应不同的测试子任务,比如,机器1对应测试子任务a和测试子任务b均可选择机器1进行执行,任务执行需要机器1的资源,则该机器1的资源冲突度根据机器1的执行资源以及测试子任务a和测试子任务b所需的执行资源之和(对应第一资源)以及机器1的执行资源(对应第二资源)确定。一个个体的机器与测试子任务的对应关系中,可以存在至少一个机器,例如,有机器1和机器2,上述为对机器1的资源冲突度的计算,根据同样的原理,可计算机器2的资源冲突度,个体的执行资源冲突度即为个体中至少一个机器的资源冲突度之和。
变异成本可以理解为搬迁成本,一次变异相当于一次搬迁,即要更换待变异子任务对应的机器。则每变异一次,需要变异成本。可根据每个个体的执行资源冲突度以及变异成本,计算第一种群中每个个体的适应度,以确保在通过遗传算法得到的机器与测试子任务的对应关系的过程中,考虑执行资源冲突度以及变异成本,使得到的对应关系更加合理。
在一个示例中,个体的执行资源冲突度的计算公式为:
其中,K为第j个个体中机器个数(不同机器的数量),Dj为第j个个体的执行资源冲突度,δ为第六预设系数,yjk为第j个个体中机器k的CPU资源,Δyjk为第j个个体中机器k对应的测试子任务所需的CPU资源之和减去第j个个体中机器k的CPU资源的差值,f(Δyjk)为判别函数,若Δyjk小于0,则f(Δyjk)等于0,若Δyjk大于或等于0,则f(Δyjk)等于Δyjk。hjk为第j个个体中机器k的内存资源,Δhjk为第j个个体中机器k对应的测试子任务所需的内存资源之和减去第j个个体中机器k的内存资源的差值,f(Δhjk)为判别函数,若Δhjk小于0,则f(Δhjk)等于0,若Δhjk大于或等于0,则f(Δhjk)等于Δhjk。
在一个示例中,个体的变异成本的计算公式为:
Bj=Rj/Rrj。
Bj为第j个个体的变异成本,Rj为第j个个体中待变异子任务的数量,Rrj为第j个个体中机器与测试子任务的对应关系中测试子任务总数(重复的测试子任务,数量重复计算)。
在一个示例中,个体的适应度计算公式为:Bj=ω*Dj+(1-ω)*Bj,其中,ω为第七预设系数。
在一个实施例中,所述存活个体群中个体数量与所述第一种群中个体数量的比值等于预设存活率。即每次进行个体选择,选中的个体占第一种群中个体的比例为预设存活率,如此可确保存活的比例。例如,预设存活率为5%,若第一种群中有1000个个体,则进行个体选择,得到的存活个体群中的个体数量为50个。
在一个实施例中,对存活个体群中待变异个体进行变异处理,确定变异种群,包括:根据待变异个体中每个机器的执行资源冲突度,确定待变异个体中待变异机器;根据待变异个体中待变异机器对应的至少一个测试子任务的资源占用量,确定待变异个体中待变异机器对应的待变异子任务;根据M个待选机器的执行资源冲突度,从M个待选机器确定变异目标机器;M为大于或等于1的整数;将待变异个体中待变异子任务对应的待变异机器更换为变异目标机器,获得变异个体;根据存活个体群和变异个体,确定变异种群。
在变异过程中,需要确定待变异机器、待变异机器对应的待变异子任务以及变异目标机器,如此,即可将待变异子任务的待变异机器更换为变异目标机器,实现变异,得到的变异种群包括存活个体群和变异个体。待变异机器的数量可以为至少一个,待变异子任务可以为至少一个。可以理解,变异的过程,是改变机器与测试子任务之间的对应关系的过程。其中,可预先确定M个待选机器,目标测试任务对应的机器与测试子任务的对应关系中涉及的机器从M个待选机器中确定,即预先为执行第一测试子任务提供备选的机器,具体如何从M个待选机器中确定,则通过上述遗传算法过程。上述第一机器属于M个待选机器。
在根据待变异个体中每个机器的执行资源冲突度,确定待变异个体中待变异机器过程中,执行资源冲突度越大的机器,被确定为待变异机器的可能性越大,即将其更换为其他机器的可能性越大,如此,能减少资源冲突。个体中一个机器可对应至少一个测试子任务,在根据待变异个体中待变异机器对应的至少一个测试子任务的资源占用量,确定待变异个体中待变异机器对应的待变异子任务过程中,测试子任务的资源占用量越大,被确定为待变异子任务的可能性越大,将其对应的待变异机器更更换的可能性越大,以确保有足够的资源来执行该测试子任务,其中,待变异机器对应的测试子任务的资源占用量为该测试子任务所需的执行资源占待变异机器对应的至少一个测试子任务所需的执行资源总和的比例。在根据M个待选机器的执行资源冲突度,从M个待选机器确定变异目标机器过程中,执行资源冲突度越小的机器,被确定为变异目标机器的可能性越大,执行资源冲突度越小,表示该机器发生资源冲突的可能性越小,表示该机器越有足够的执行资源,该机器对应的测试子任务所需的执行资源越没有达到该机器的执行资源,将待变异个体中待变异子任务对应的待变异机器更换为变异目标机器,可减少执行待变异子任务过程中发生资源冲突。
下面以一个具体实施例对上述测试任务调度方法加以具体说明。
如图3所示,首先,根据历史任务数据进行特征提取,获得待调度测试任务的资源集齐率、所需的执行资源占比以及等待时长占比,根据资源集齐率、所需的执行资源占比以及等待时长占比,可计算待调度测试任务的优先级,然后可确定目标测试任务,即采用在线任务排序调度。另外,根据历史任务数据进行特征提取,还可获得目标测试任务中每个第一测试子任务的第一预设并发数(即预设最大并发数)、目标测试任务中每个测试子任务所需的CPU资源(即CPU需求量)以及所需的内存资源(内存需求量)。可预先离线根据第一测试子任务的第一预设并发数、目标测试任务中每个测试子任务所需的CPU资源以及所需的内存资源,通过遗传算法确定待调度测试任务对应的机器与测试子任务的对应关系,将测试子任务的测试数据预先分发至对应的机器,即离线大数据预分发调度,减少资源竞争导致的排队。在进行任务调度过程中,确定目标测试任务后,可使用目标测试任务对应的机器与测试子任务的对应关系来确定第一测试子任务的第一机器。
遗传算法中的一个个体表示一种机器与测试子任务的对应关系,即一种部署方案,机器与测试子任务对应,即是可将该测试子任务部署在对应机器上,如下表1所示,为一种机器与测试子任务的对应关系表,即一种部署方案,测试子任务a对应机器1和机器2,机器1和机器2分别预先存储有测试子任务a的测试数据,测试子任务b对应机器3,机器3预先存储有测试子任务b的测试数据。初始化种群,种群中包括多个个体,评估个体的适应度,根据是适应度进行个体选择,然后进行个体变异,直到满足算法的预设停止条件,将变异种群中适应度最高的个体中机器与测试子任务的对应关系作为目标测试任务对应的机器与测试子任务的对应关系即可。
表1
机器1 | 机器2 | 机器3 |
测试子任务a | 测试子任务a | 测试子任务b |
然后,基于所述目标测试任务对应的机器与测试子任务的对应关系,确定执行所述目标测试任务中第一测试子任务的第一机器,确定执行所述目标测试任务中第二测试子任务的第二机器,通过所述第一机器根据本地预先存储的测试数据执行所述第一测试子任务,以及通过所述第二机器下载所述第二测试子任务的测试数据并执行所述第二测试子任务。
如图4所示,本发明还提供一个实施例的测试任务调度装置400,包括:
任务确定模块401,用于从待调度测试任务集中确定目标测试任务;
第一机器确定模块402,用于基于目标测试任务对应的机器与测试子任务的对应关系,确定执行目标测试任务中第一测试子任务的第一机器,其中,第一测试子任务的测试数据预先存储于第一机器中;
调度模块403,用于通过第一机器执行第一测试子任务。
在一个实施例中,装置还包括第二机器确定模块。
第二机器确定模块,用于确定执行目标测试任务中第二测试子任务的第二机器;
调度模块,还用于通过第二机器下载第二测试子任务的测试数据并执行第二测试子任务。
在一个实施例中,目标测试任务的优先级高于待定测试任务的优先级,待定测试任务为待调度测试任务集中除目标测试任务以外的测试任务。
在一个实施例中,装置还包括:
任务优先级确定模块,用于基于待调度测试任务的特征参数,确定待调度测试任务集中各待调度测试任务的优先级,其中,特征参数包括资源特征参数以及时长特征参数。
在一个实施例中,装置还包括:
种群初始化模块,用于基于第一测试子任务的第一预设并发数,初始化多个个体获得第一种群;
适应度计算模块,用于计算第一种群中每个个体的适应度;
筛选模块,用于基于第一种群中每个个体的适应度,对第一种群进行个体选择,获得存活个体群;
待变异个体获取模块,用于获取存活个体群中待变异个体;
变异模块,用于对存活个体群中待变异个体进行变异处理,确定变异种群;
对应关系确定模块,用于在不满足预设终止条件的情况下,将变异种群作为第一种群,返回适应度计算模块执行计算第一种群中每个个体的适应度,直到满足预设终止条件,将变异种群中适应度最大的个体对应的内容作为机器与测试子任务的对应关系。
在一个实施例中,适应度计算模块,包括:
个体资源冲突度计算模块,用于根据每个个体的第一资源以及第二资源,计算每个个体的执行资源冲突度;其中,第一资源为个体中每个机器分别对应的至少一个测试子任务所需的执行资源之和,第二资源为个体中每个机器对应的执行资源;
个体适应度获得模块,用于根据每个个体的执行资源冲突度以及变异成本,计算第一种群中每个个体的适应度。
在一个实施例中,变异模块,包括:
待变异机器确定模块,用于根据待变异个体中每个机器的执行资源冲突度,确定待变异个体中待变异机器;
待变异子任务确定模块,用于根据待变异个体中待变异机器对应的至少一个测试子任务的资源占用量,确定待变异个体中待变异机器对应的待变异子任务;
变异目标机器确定模块,用于根据M个待选机器的执行资源冲突度,从M个待选机器确定变异目标机器;M为大于或等于1的整数;
更换模块,用于将待变异个体中待变异子任务对应的待变异机器更换为变异目标机器,获得变异个体;
变异种群确定模块,用于根据存活个体群和变异个体,确定变异种群。
在一个实施例中,上述装置还包括:更新模块,用于若目标测试任务在预设时长内未被调用,则重新确定待调度测试任务集中个待调度测试任务的优先级。
本发明实施例提供的测试任务调度装置中的技术特征与上述测试任务调度方法中的技术特征对应,通过测试任务调度装置实现上述测试任务调度方法的各个过程,并能得到相同的效果,为避免重复,在此不再赘述。
请参阅图5,本发明实施例还提供一种电子设备500,包括处理器501和存储器502,存储器502存储有可在处理器501上运行的计算机程序,该计算机程序被处理器501执行时实现上述测试任务调度方法实施例中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述测试任务调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者电子设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者电子设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者电子设备中还存在另外的相同要素。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台电子设备(可以是计算机)执行本发明各个实施例的方法。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (12)
1.一种测试任务调度方法,其特征在于,所述方法包括:
从待调度测试任务集中确定目标测试任务;
基于所述目标测试任务对应的机器与测试子任务的对应关系,确定执行所述目标测试任务中第一测试子任务的第一机器,其中,所述第一测试子任务的测试数据预先存储于所述第一机器中,所述第一测试子任务为所述目标测试任务包括的多个测试子任务中,对应的测试数据的量大于预设数据量的测试子任务;
通过所述第一机器执行所述第一测试子任务;
所述从待调度测试任务集中确定目标测试任务之后,所述方法还包括:
确定执行所述目标测试任务中第二测试子任务的第二机器,所述第二测试子任务为所述目标测试任务包括的多个测试子任务中对应的测试数据的量小于或等于所述预设数据量的测试子任务;
通过所述第二机器下载所述第二测试子任务的测试数据并执行所述第二测试子任务;
所述从待调度测试任务集中确定目标测试任务之前,还包括:
基于所述待调度测试任务的特征参数,确定所述待调度测试任务集中各所述待调度测试任务的优先级,其中,所述特征参数包括资源特征参数以及时长特征参数;其中,所述资源特征参数包括资源集齐率和所需的执行资源占比,所述时长特征参数包括等待时长占比,待调度测试任务的优先级与等待时长占比以及资源集齐率成正比,与所需的执行资源占比成反比;
所述从待调度测试任务集中确定目标测试任务,包括:基于所述待调度测试任务集中的待调度测试任务的优先级确定目标测试任务;
确定待调度测试任务的优先级的公式为:
其中,1≤i≤n,n为待调度测试任务集中待调度测试任务的总数,Ui为第i个待调度测试任务的优先级,Ji为第i个待调度测试任务的资源集齐率,Xi为第i个待调度测试任务的所需的执行资源占比,Ti为第i个待调度测试任务的等待时长占比,a为第一预设系数,b为第二预设系数,c为第三预设系数;
第i个待调度测试任务的资源集齐率Ji的计算公式为:
其中,λ为第四预设系数,S1i为第i个待调度测试任务能申请到的CPU资源,Z1i为第i个待调度测试任务所需的CPU资源,S2i为第i个待调度测试任务能申请到的内存资源,Z2i为第i个待调度测试任务所需的内存资源。
2.根据权利要求1所述的方法,其特征在于,所述目标测试任务的优先级高于待定测试任务的优先级,所述待定测试任务为所述待调度测试任务集中除所述目标测试任务以外的测试任务。
3.根据权利要求1所述的方法,其特征在于,所述基于所述目标测试任务对应的机器与测试子任务的对应关系,确定执行所述目标测试任务中第一测试子任务的第一机器之前,还包括:
基于所述第一测试子任务的第一预设并发数,初始化多个个体获得第一种群;
计算所述第一种群中每个所述个体的适应度;
基于所述第一种群中每个所述个体的适应度,对所述第一种群进行个体选择,获得存活个体群;
获取所述存活个体群中待变异个体;
对所述存活个体群中所述待变异个体进行变异处理,确定变异种群;
在不满足预设终止条件的情况下,将所述变异种群作为所述第一种群,返回所述计算所述第一种群中每个所述个体的适应度的步骤,直到满足预设终止条件,将所述变异种群中适应度最大的个体对应的内容作为所述机器与测试子任务的对应关系。
4.根据权利要求3所述的方法,其特征在于,所述计算所述第一种群中每个所述个体的适应度,包括:
根据每个所述个体的第一资源以及第二资源,计算每个所述个体的执行资源冲突度;其中,所述第一资源为所述个体中每个机器分别对应的至少一个测试子任务所需的执行资源之和,所述第二资源为所述个体中每个机器对应的执行资源;
根据每个所述个体的执行资源冲突度以及变异成本,计算所述第一种群中每个所述个体的适应度。
5.根据权利要求3所述的方法,其特征在于,所述对所述存活个体群中所述待变异个体进行变异处理,确定变异种群,包括:
根据所述待变异个体中每个机器的执行资源冲突度,确定所述待变异个体中待变异机器;
根据所述待变异个体中所述待变异机器对应的至少一个测试子任务的资源占用量,确定所述待变异个体中所述待变异机器对应的待变异子任务;
根据M个待选机器的执行资源冲突度,从所述M个待选机器确定变异目标机器;所述M为大于或等于1的整数;
将所述待变异个体中所述待变异子任务对应的待变异机器更换为所述变异目标机器,获得变异个体;
根据所述存活个体群和所述变异个体,确定所述变异种群。
6.一种测试任务调度装置,其特征在于,所述装置包括:
任务确定模块,用于从待调度测试任务集中确定目标测试任务;
第一机器确定模块,用于基于所述目标测试任务对应的机器与测试子任务的对应关系,确定执行所述目标测试任务中第一测试子任务的第一机器,其中,所述第一测试子任务的测试数据预先存储于所述第一机器中,所述第一测试子任务为所述目标测试任务包括的多个测试子任务中,对应的测试数据的量大于预设数据量的测试子任务;
调度模块,用于通过所述第一机器执行所述第一测试子任务;
所述装置还包括第二机器确定模块;
所述第二机器确定模块,用于确定执行所述目标测试任务中第二测试子任务的第二机器,所述第二测试子任务为所述目标测试任务包括的多个测试子任务中对应的测试数据的量小于或等于所述预设数据量的测试子任务;
所述调度模块,还用于通过所述第二机器下载所述第二测试子任务的测试数据并执行所述第二测试子任务;
所述装置还包括:
任务优先级确定模块,用于基于所述待调度测试任务的特征参数,确定所述待调度测试任务集中各所述待调度测试任务的优先级,其中,所述特征参数包括资源特征参数以及时长特征参数;其中,所述资源特征参数包括资源集齐率和所需的执行资源占比,所述时长特征参数包括等待时长占比,待调度测试任务的优先级与等待时长占比以及资源集齐率成正比,与所需的执行资源占比成反比;
所述从待调度测试任务集中确定目标测试任务,包括:基于所述待调度测试任务集中的待调度测试任务的优先级确定目标测试任务;
确定待调度测试任务的优先级的公式为:
其中,1≤i≤n,n为待调度测试任务集中待调度测试任务的总数,Ui为第i个待调度测试任务的优先级,Ji为第i个待调度测试任务的资源集齐率,Xi为第i个待调度测试任务的所需的执行资源占比,Ti为第i个待调度测试任务的等待时长占比,a为第一预设系数,b为第二预设系数,c为第三预设系数;
第i个待调度测试任务的资源集齐率Ji的计算公式为:
其中,λ为第四预设系数,S1i为第i个待调度测试任务能申请到的CPU资源,Z1i为第i个待调度测试任务所需的CPU资源,S2i为第i个待调度测试任务能申请到的内存资源,Z2i为第i个待调度测试任务所需的内存资源。
7.根据权利要求6所述的装置,其特征在于,所述目标测试任务的优先级高于待定测试任务的优先级,所述待定测试任务为所述待调度测试任务集中除所述目标测试任务以外的测试任务。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
种群初始化模块,用于基于所述第一测试子任务的第一预设并发数,初始化多个个体获得第一种群;
适应度计算模块,用于计算所述第一种群中每个所述个体的适应度;
筛选模块,用于基于所述第一种群中每个所述个体的适应度,对所述第一种群进行个体选择,获得存活个体群;
待变异个体获取模块,用于获取所述存活个体群中待变异个体;
变异模块,用于对所述存活个体群中所述待变异个体进行变异处理,确定变异种群;
对应关系确定模块,用于在不满足预设终止条件的情况下,将所述变异种群作为所述第一种群,返回所述适应度计算模块执行所述计算所述第一种群中每个所述个体的适应度,直到满足预设终止条件,将所述变异种群中适应度最大的个体对应的内容作为所述机器与测试子任务的对应关系。
9.根据权利要求8所述的装置,其特征在于,所述适应度计算模块,包括:
个体资源冲突度计算模块,用于根据每个所述个体的第一资源以及第二资源,计算每个所述个体的执行资源冲突度;其中,所述第一资源为所述个体中每个机器分别对应的至少一个测试子任务所需的执行资源之和,所述第二资源为所述个体中每个机器对应的执行资源;
个体适应度获得模块,用于根据每个所述个体的执行资源冲突度以及变异成本,计算所述第一种群中每个所述个体的适应度。
10.根据权利要求8所述的装置,其特征在于,所述变异模块,包括:
待变异机器确定模块,用于根据所述待变异个体中每个机器的执行资源冲突度,确定所述待变异个体中待变异机器;
待变异子任务确定模块,用于根据所述待变异个体中所述待变异机器对应的至少一个测试子任务的资源占用量,确定所述待变异个体中所述待变异机器对应的待变异子任务;
变异目标机器确定模块,用于根据M个待选机器的执行资源冲突度,从所述M个待选机器确定变异目标机器;所述M为大于或等于1的整数;
更换模块,用于将所述待变异个体中所述待变异子任务对应的待变异机器更换为所述变异目标机器,获得变异个体;
变异种群确定模块,用于根据所述存活个体群和所述变异个体,确定所述变异种群。
11.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至5中任意一项所述的测试任务调度方法中的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的测试任务调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910428021.6A CN110287008B (zh) | 2019-05-22 | 2019-05-22 | 一种测试任务调度方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910428021.6A CN110287008B (zh) | 2019-05-22 | 2019-05-22 | 一种测试任务调度方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110287008A CN110287008A (zh) | 2019-09-27 |
CN110287008B true CN110287008B (zh) | 2023-12-19 |
Family
ID=68002218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910428021.6A Active CN110287008B (zh) | 2019-05-22 | 2019-05-22 | 一种测试任务调度方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110287008B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737118B (zh) * | 2020-06-11 | 2024-02-20 | 百度在线网络技术(北京)有限公司 | 一种流水线测试方法、装置、电子设备及存储介质 |
CN113487201B (zh) * | 2021-07-14 | 2022-11-11 | 海南马良师傅网络科技有限公司 | 仪器搬迁任务分配*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101324854A (zh) * | 2008-07-21 | 2008-12-17 | 武汉理工大学 | 一种基于并行遗传算法的网格资源分配方法 |
WO2012159500A1 (zh) * | 2011-05-26 | 2012-11-29 | ***通信集团公司 | 一种路测数据的获取方法、路测数据的获取***及装置 |
CN107234616A (zh) * | 2017-07-07 | 2017-10-10 | 上海木爷机器人技术有限公司 | 多机器人控制方法及装置 |
CN108733464A (zh) * | 2017-04-18 | 2018-11-02 | 华为软件技术有限公司 | 一种确定计算任务的调度方案的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291548B (zh) * | 2016-03-31 | 2021-04-13 | 阿里巴巴集团控股有限公司 | 任务的资源调度方法及装置 |
-
2019
- 2019-05-22 CN CN201910428021.6A patent/CN110287008B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101324854A (zh) * | 2008-07-21 | 2008-12-17 | 武汉理工大学 | 一种基于并行遗传算法的网格资源分配方法 |
WO2012159500A1 (zh) * | 2011-05-26 | 2012-11-29 | ***通信集团公司 | 一种路测数据的获取方法、路测数据的获取***及装置 |
CN108733464A (zh) * | 2017-04-18 | 2018-11-02 | 华为软件技术有限公司 | 一种确定计算任务的调度方案的方法及装置 |
CN107234616A (zh) * | 2017-07-07 | 2017-10-10 | 上海木爷机器人技术有限公司 | 多机器人控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110287008A (zh) | 2019-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Maghsoudlou et al. | Multi-skilled project scheduling with level-dependent rework risk; three multi-objective mechanisms based on cuckoo search | |
Geiger | A multi-threaded local search algorithm and computer implementation for the multi-mode, resource-constrained multi-project scheduling problem | |
Blythe et al. | Task scheduling strategies for workflow-based applications in grids | |
CN108182109B (zh) | 一种云环境下的工作流调度与数据分配方法 | |
EP2176751B1 (en) | Scheduling by growing and shrinking resource allocation | |
CN112416585B (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
CN112053002B (zh) | 一种基于效用感知的云制造多任务调度方法 | |
Özcan | Balancing stochastic parallel assembly lines | |
WO2012151054A1 (en) | Scheduling in mapreduce-like systems for fast completion time | |
CN111913785B (zh) | 多星任务调度方法和*** | |
CN110287008B (zh) | 一种测试任务调度方法、装置及电子设备 | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
Liu et al. | A reinforcement learning based resource management approach for time-critical workloads in distributed computing environment | |
CN113886034A (zh) | 任务调度方法、***、电子设备及存储介质 | |
CN106934537A (zh) | 基于反向工作流调度的子期限获取优化方法 | |
Rawson et al. | Old or heavy? Decaying gracefully with age/weight shapes | |
CN112150035B (zh) | 数据处理方法和装置 | |
CN102184124B (zh) | 任务调度方法及*** | |
CN113641448A (zh) | 一种边缘计算容器分配和层下载排序体系结构及其方法 | |
Gong et al. | Chic: experience-driven scheduling in machine learning clusters | |
Adamu et al. | Metaheuristics for scheduling on parallel machine to minimize weighted number of early and tardy jobs | |
Mirsoleimani et al. | A parallel memetic algorithm on GPU to solve the task scheduling problem in heterogeneous environments | |
Hassan et al. | Genetic algorithms for job scheduling in cloud computing | |
CN106897199A (zh) | 一种基于大数据处理框架共有特征的批作业执行时间预测方法 | |
CN116069473A (zh) | 一种基于深度强化学习的Yarn集群工作流调度方法 |
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 |