一种测试任务调度方法技术

技术编号:13589626 阅读:161 留言:0更新日期:2016-08-25 17:06
本发明专利技术公开了一种测试任务调度方法。所述方法包括:设置一定数量的测试任务队列,为每个测试任务队列指定可入列测试任务的优先级范围;根据优先级所处范围将测试任务添加到相应的测试任务队列中;在测试任务调度时,取所有测试任务中优先级最高的测试任务作为待切换任务;在测试任务调度后,根据测试任务的当前优先级、最近一次更新优先级的时间、需执行时间和所在测试任务队列的优先级权重得到所有测试任务新的优先级,并根据各测试任务新的优先级重新添加到相应的测试任务的队列中。本发明专利技术提出的方法保证了测试任务调度的公平性和有序性,提高了测试任务队列组织的效率,可支持测试任务的串行调度和并行调度。

【技术实现步骤摘要】

本专利技术涉及一种测试任务调度方法,属于软件自动化测试

技术介绍
随着高新技术的快速发展,自动测试系统在很多行业得到广泛应用,而目前大多数研究机构和企业对自动测试系统测试任务调度的研究是针对并行测试技术的。目前并行测试任务调度是在测试任务已经确定的基础上对所有测试任务进行建模分析获得测试任务的最大并行量和最小运行时间等,对大量测试任务进行建模分析的时间一般很长。有些自动测试系统处理的测试任务并不确定,即在自动测试系统运行过程中,测试任务集会发生变化,譬如添加新的测试任务、删除队列里的测试任务、修改队列里的测试任务的相关参数等,如果采用传统的并行测试任务调度的方法来处理不确定的测试任务集,则在测试任务发生变化时,就需要对所有测试任务进行建模分析,如果变动频繁,则需要频繁建模分析,这样会消耗大量时间和资源。基于此,有必要提供一种可以处理测试任务集动态变化的测试任务调度方法。
技术实现思路
本专利技术的技术解决问题是:克服现有技术的不足,提供一种测试任务调度方法,该方法对测试任务的优先级进行动态更新,保证了测试任务调度的公平性,并设置了多个测试任务队列,可支持测试任务并行调度,在处理测试任务优先级的过程中对测试任务的优先级更新速度进行了差异化处理,保证了测试任务调度的有序性和测试任务队列组织的效率。本专利技术提供了一种测试任务调度方法,所述方法包括:设置一定数量的测试任务队列,为每个测试任务队列指定可入列测试任务的优先级范围;根据优先级所处范围将测试任务添加到对应的测试任务队列中;在测试任务调度时,取所有测试任务中优先级最高的测试任务作为待切换任务;在测试任务调度后,根据测试任务的当前优先级、最近一次更新优先级的时间、需执行时间和所在测试任务队列的优先级权重得到所有测试任务新的优先级,并根据各测试任务新的优先级重新添加到相应的测试任务队列中,其中所述测试任务的需执行时间为所述测试任务执行一次的预估时间与所述测试任务执行次数的乘积,所述测试任务的优先级更新方法为根据公式更新所述测试任务的优先级,其中pripre为所述测试任务的当前优先级,te为更新所有测试任务优先级的开始时间,ts为所述测试任务最近一次更新优先级的时间,tt*count为所述测试任务的需执行时间,tt为所述测试任务执行一次的预估时间,count为所述测试任务需执行的次数,factor为所述测试任务所在测试任务队列的优先级权重。本专利技术对应的技术方案包括如下步骤:步骤一,设置一定数量的测试任务队列,为每个测试任务队列指定可入列测试任务的优先级范围。步骤二,根据优先级所处范围将测试任务添加到对应的测试任务队列中。步骤三,在测试任务调度时,取所有测试任务中优先级最高的测试任务作为待切换任务。步骤四,在测试任务调度后,根据测试任务的当前优先级、最近一次更新优先级的时间、需执行时间和所在测试任务队列的优先级权重得到所有测试任务新的优先级,并根据各测试任务新的优先级重新添加到相应的测试任务队列中。所述测试任务的需执行时间为所述测试任务执行一次的预估时间与所述测试任务执行次数的乘积,所述测试任务的优先级更新方法为根据公式更新所述测试任务的优先级,其中pripre为所述测试任务的当前优先级,te为更新所有测试任务优先级的开始时间,ts为所述测试任务最近一次更新优先级的时间,tt*count为所述测试任务的需执行时间,tt为所述测试任务执行一次的预估时间,count为所述测试任务需执行的次数,factor为所述测试任务所在测试任务队列的优先级权重。本专利技术与现有技术相比优点在于:(1)本专利技术对测试任务的优先级进行动态更新,保证了测试任务调度的公平性。(2)本专利技术能够在目标运行系统请求测试任务时给出待切换的测试任务,使得目标运行系统无需等待就可继续运行测试任务,在一定程度上可以有效利用目标运行系统的资源。(3)本专利技术设置了多个测试任务队列,可支持测试任务并行调度。(4)本专利技术在处理测试任务优先级的过程中对测试任务的优先级更新速度进行了差异化处理,保证了测试任务调度的有序性和测试任务队列组织的效率。附图说明图1为本专利技术实施例中测试任务调度方法的流程图;图2为本专利技术实施例中测试任务优先级更新流程图。具体实施方式以下结合本专利技术实施例附图来对本专利技术实施例中的技术方案进行清楚、完整地描述,显然所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本专利技术的实施,能够保证了测试任务调度的公平性和有序性,提高了测试任务队列组织的效率,可支持测试任务的串行调度和并行调度。如图1为本专利技术实施例中测试任务调度方法的流程图,所述方法包括以下步骤:步骤101,设置一定数量的测试任务队列,为每个测试任务队列指定可入列测试任务的优先级范围。测试任务队列数量可以根据最大优先级数、最小优先级数以及测试任务队列的优先级范围来确定,即其中count为测试任务队列数量,primax为最大优先级数,primin为最小优先级数,interval为每个测试任务队列能够存取的优先级的范围大小。步骤102,根据优先级所处范围将测试任务添加到对应的测试任务队列中。步骤103,在测试任务调度时,取所有测试任务中优先级最高的测试任务作为待切换任务。取所有测试任务中优先级最高的测试任务的方法可直接在最高优先级范围的测试任务队列里取队首的测试任务,如果最高优先级范围的测试任务队列里没有测试任务,则取第二高优先级范围的测试任务队列里的测试任务,依此类推。步骤104,在测试任务调度后,根据测试任务的当前优先级、最近一次更新优先级的时间、需执行时间和所在测试任务队列的优先级权重得到所有测试任务新的优先级,并根据各测试任务新的优先级重新添加到相应的测试任务队列中。所述测试任务的需执行时间为所述测试任务执行一次的预估时间与所述测试任务执行次数的乘积,所述测试任务的优先级更新方法为根据公式更新所述测试任务的优先级,其中pripre为所述测试任务的当前优先级,te为更新所有测试任务优先级的开始时间,ts为所述测试任务最近一次更新优先级的时间,tt*count为所述测试任务的需执行时间,tt为所述测试任务执行一次的预估时间,count为所述测试任务需执行的次数,factor为所述测试任务所在测试任务队列的优先级权重。其中,动态更新所述测试任务的优先级,参照图2,包含以下步骤:步骤201,获得测试任务的当前优先级和所在测试任务队列的优先级权重。步骤202,获得测试任务最近一次更新优先级的时间和更新所有测试任务优先级的开始时间。步骤203,计算测试任务的需执行时间tt*count。步骤204,根据测试任务的当前优先级、最近一次更新优先级的时间、需执行时间和所在测试任务队列的优先级权重得到所有测试任务新的优先级。步骤205,根据各测试任务新的优先级重新添加到相应的测试任务队列中。测试任务队列的权重可以根据测试任务队列优先级范围的最大值来确定,即其中weight为测试任务队列的权重,primax(queuei)为第i个测试任务队列的最大优先级数,primax为所有测试任务队列中可存取的最大优先级数。本专利技术提供的测试任务调度方法设置了多个测试任务队列,可支持测试任务串行调度和并行调度,并提出了新的计算测试任务优先级的方法,其中计算优先本文档来自技高网...

【技术保护点】
一种测试任务调度方法,其特征在于包括以下步骤:设置一定数量的测试任务队列,为每个测试任务队列指定可入列测试任务的优先级范围;根据优先级所处范围将测试任务添加到对应的测试任务队列中;在测试任务调度时,取所有测试任务中优先级最高的测试任务作为待切换任务;在测试任务调度后,根据测试任务的当前优先级、最近一次更新优先级的时间、需执行时间和所在测试任务队列的优先级权重得到所有测试任务新的优先级,并根据各测试任务新的优先级重新添加到相应的测试任务队列中。

【技术特征摘要】
1.一种测试任务调度方法,其特征在于包括以下步骤:设置一定数量的测试任务队列,为每个测试任务队列指定可入列测试任务的优先级范围;根据优先级所处范围将测试任务添加到对应的测试任务队列中;在测试任务调度时,取所有测试任务中优先级最高的测试任务作为待切换任务;在测试任务调度后,根据测试任务的当前优先级、最近一次更新优先级的时间、需执行时间和所在测试任务队列的优先级权重得到所有测试任务新的优先级,并根据各测试任务新的优先级重新添加到相应的测试任务队列中。2.根据权利要求1所述的一种测试任务调度方法,其特征在于:所述...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:北京智能综电信息技术有限责任公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1