CN112882940A - 用例任务调度方法、系统、装置、设备及存储介质 - Google Patents

用例任务调度方法、系统、装置、设备及存储介质 Download PDF

Info

Publication number
CN112882940A
CN112882940A CN202110225319.4A CN202110225319A CN112882940A CN 112882940 A CN112882940 A CN 112882940A CN 202110225319 A CN202110225319 A CN 202110225319A CN 112882940 A CN112882940 A CN 112882940A
Authority
CN
China
Prior art keywords
task
use case
tasks
case
execution
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.)
Pending
Application number
CN202110225319.4A
Other languages
English (en)
Inventor
曾波
王惠惠
曾庆熙
骆春光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202110225319.4A priority Critical patent/CN112882940A/zh
Publication of CN112882940A publication Critical patent/CN112882940A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种用例任务调度方法、系统、装置、设备及存储介质。执行端根据执行能力最大值和当前执行用例任务数,计算用例任务可执行数量。若用例任务可执行数量大于0,执行端发送用例任务请求,用例任务请求中包括执行端的用例任务可执行数量。服务器接收用例任务请求,根据用例任务请求和计划任务列表,生成待发送用例任务列表。当待发送用例任务列表的长度达到用例任务可执行数量或者计划任务列表遍历完成,服务器发送待发送用例任务列表。执行端计算自身的实际执行能力,向服务器请求用例任务,服务器根据执行端的实际执行能力发送相应数量的用例任务,使得执行端不会积压用例任务,避免了请求超时、被测系统崩溃等问题的发生。

Description

用例任务调度方法、系统、装置、设备及存储介质
技术领域
本发明涉及自动化测试领域,提出了一种用例任务调度方法、系统、装置、设备及存储介质。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Finteh)转变,自动化测试技术也不例外,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。
执行自动化测试用例的系统包含服务器和执行端。一个自动化测试用例就是一个用例任务。服务器负责分发用例任务,多个执行端负责执行用例任务。目前,每个执行端配置固定的执行能力,根据执行端的固定能力,服务器收到用例任务后将所有用例任务按比例分发给执行端。
然而,按比例分发用例任务的方式会导致执行能力弱的执行端积压大量的用例任务,造成请求超时、被测系统崩溃等问题。
发明内容
本申请提供一种用例任务调度方法、系统、装置、设备及存储介质,用以解决现有技术导致执行能力弱的执行端积压大量的用例任务,造成请求超时、被测系统崩溃的问题。
第一方面,本申请提供一种用例任务调度方法,应用于服务器,方法包括:
接收用例任务请求,用例任务请求中包括执行端的用例任务可执行数量;
根据用例任务请求和计划任务列表,生成待发送用例任务列表,计划任务列表根据多个计划任务生成,多个计划任务根据所接收的测试计划生成,测试计划为所有用例任务的集合;
当待发送用例任务列表的长度达到用例任务可执行数量或者计划任务列表遍历完成,发送待发送用例任务列表。
可选地,根据用例任务请求和计划任务列表,生成待发送用例任务列表,包括:
若计划任务列表不为空,确定目标用例状态的计划任务作为当前计划任务,目标用例状态为待执行状态或者执行中状态;
当当前计划任务的执行方式为并发时,根据当前计划任务的正在执行用例任务数和并发数,生成待发送用例任务列表;
当当前计划任务的执行方式为串行时,根据当前计划任务的正在执行用例任务数,生成待发送用例任务列表。
可选地,当当前计划任务的执行方式为并发时,根据当前计划任务的正在执行用例任务数和并发数,生成待发送用例任务列表,包括:
获取当前计划任务的正在执行用例任务数和并发数;
当当前计划任务的正在执行用例任务数等于并发数时,则确定下一条目标用例状态的计划任务作为当前计划任务;
当当前计划任务的正在执行用例任务数小于并发数时,将待执行状态用例任务添加至待发送用例任务列表中,待执行状态用例任务的数量为并发数减去正在执行用例任务数,待执行状态用例任务位于用例任务列表中,用例任务列表包括多个用例任务,位于当前计划任务中。
可选地,当当前计划任务的执行方式为串行时,根据当前计划任务的正在执行用例任务数,生成待发送用例任务列表,包括:
获取当前计划任务的正在执行用例任务数;
当当前计划任务的正在执行用例任务数不为0时,则确定下一条目标用例状态的计划任务作为当前计划任务;
当当前计划任务的正在执行用例任务数为0时,将待执行状态用例任务添加至待发送用例任务列表中,待执行状态用例任务位于用例任务列表中,用例任务列表包括多个用例任务,位于当前计划任务中。
可选地,方法还包括:
根据用例任务的开始时间和结束时间,计算用例任务的消耗时长,开始时间为发送用例任务的时间,结束时间为接收用例任务执行完成指令的时间;
当消耗时长小于等于预设时长时,更新用例任务的状态为执行完成,预设时长根据用例任务的历史执行时间确定;
当消耗时长大于预设时长时,更新用例任务的状态为执行超时。
可选地,接收用例任务请求之前,还包括:
接收测试计划,测试计划为所有用例任务的集合;
根据测试计划,得到多个计划任务;
根据多个计划任务,生成计划任务列表。
第二方面,本申请提供一种用例任务调度方法,应用于执行端,方法包括:
根据执行能力最大值和当前执行用例任务数,计算用例任务可执行数量;
若用例任务可执行数量大于0,发送用例任务请求,用例任务请求中包括执行端的用例任务可执行数量。
可选地,若用例任务可执行数量大于0,发送用例任务请求之后,还包括:
接收待发送用例任务列表;
根据待发送用例任务列表中的用例任务个数和执行能力最大值,更新当前执行用例任务数,更新用例任务可执行数量。
可选地,方法还包括:
若当前执行用例任务数等于执行能力最大值,获取影响执行能力的多个因素值,每个因素值对应一个预设阈值;
若所有因素值小于等于因素值对应的预设阈值,则增大执行能力最大值;否则,减小执行能力最大值。
可选地,增大执行能力最大值,包括:
获取多个平均消耗值,平均消耗值根据因素值和当前执行用例任务数确定;
根据多个平均消耗值、执行能力最大值和多个预设阈值,确定多个执行能力增加值;
根据多个执行能力增加值,确定最终增加值,最终增加值为多个执行能力增加值中的最小值;
根据最终增加值,增大执行能力最大值。
可选地,减小执行能力最大值,包括:
获取多个平均消耗值,平均消耗值根据因素值和当前执行用例任务数确定;
根据多个平均消耗值、执行能力最大值和多个预设阈值,确定多个执行能力减少值;
根据多个执行能力减少值,确定最终减少值,最终减少值为多个执行能力减少值中的最大值;
根据最终减少值,减小执行能力最大值。
第三方面,本申请提供一种用例任务调度系统,系统包括客户端、服务器以及多个执行端;
客户端用于发送测试计划;
服务器用于执行如第一方面及可选方案涉及的用例任务调度方法;
执行端用于执行如第二方面及可选方案涉及的用例任务调度方法。
第四方面,本申请提供一种用例任务调度装置,应用于服务器,装置包括:
接收模块,用于接收用例任务请求,用例任务请求中包括执行端的用例任务可执行数量;
生成模块,用于根据用例任务请求和计划任务列表,生成待发送用例任务列表,计划任务列表根据多个计划任务生成,多个计划任务根据所接收的测试计划生成,测试计划为所有用例任务的集合;
发送模块,用于当待发送用例任务列表的长度达到用例任务可执行数量或者计划任务列表遍历完成,发送待发送用例任务列表。
第五方面,本申请提供一种用例任务调度装置,应用于执行端,装置包括:
计算模块,用于根据执行能力最大值和当前执行用例任务数,计算用例任务可执行数量;
发送模块,用于若用例任务可执行数量大于0,发送用例任务请求,用例任务请求中包括执行端的用例任务可执行数量。
第六方面,本申请提供一种电子设备,包括:存储器,处理器;
存储器;用于存储处理器可执行指令的存储器;
处理器,用于根据存储器存储的可执行指令,实现第一方面及可选方案涉及的或者第二方面及可选方案涉及的用例任务调度方法。
第七方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现第一方面及可选方案涉及的或者第二方面及可选方案涉及的用例任务调度方法。
第八方面,本申请提供一种计算机程序产品,包括指令,该指令被处理器执行时实现第一方面及可选方案涉及的或者第二方面及可选方案涉及的用例任务调度方法。
本申请提供一种用例任务调度方法、系统、装置、设备及存储介质,执行端根据执行能力最大值和当前执行用例任务数,计算用例任务可执行数量。若用例任务可执行数量大于0,执行端向服务器发送用例任务请求,用例任务请求中包括执行端的用例任务可执行数量。服务器接收用例任务请求,根据用例任务请求和计划任务列表,生成待发送用例任务列表。当待发送用例任务列表的长度达到用例任务可执行数量或者计划任务列表遍历完成,服务器向执行端发送待发送用例任务列表。执行端计算自身的实际执行能力,向服务器请求用例任务,服务器根据执行端的实际执行能力发送相应数量的用例任务,使得执行端不会积压用例任务,避免了请求超时、被测系统崩溃等问题的发生。
附图说明
图1为本申请根据一示例性实施例示出的用例任务调度系统的结构示意图;
图2为本申请根据一示例性实施例示出的用例任务调度方法的流程示意图;
图3为本申请根据另一示例性实施例示出的用例任务调度方法的流程示意图;
图4为本申请根据一示例性实施例示出的用例任务调度装置的结构示意图;
图5为本申请根据另一示例性实施例示出的用例任务调度装置的结构示意图;
图6为本申请根据一示例性实施例示出的电子设备的硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。软件自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。执行自动化测试用例的系统包含服务器和执行端。一个自动化测试用例就是一个用例任务。测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。服务器负责分发用例任务,多个执行端负责执行用例任务。
目前,每个执行端配置固定的执行能力,根据执行端的固定能力,服务器收到用例任务后将所有用例任务按比例分发给执行端。
然而,按比例分发用例任务的方式会导致执行能力弱的执行端积压大量的用例任务,造成请求超时、被测系统崩溃等问题。
针对上述问题,本申请提出了一种用例任务调度方法,执行端计算自身的实际执行能力,根据实际执行能力向服务器请求用例任务,服务器根据执行端的实际执行能力发送相应数量的用例任务,使得执行端不会积压用例任务,避免了请求超时、被测系统崩溃等问题的发生。
图1为本申请根据一示例性实施例示出的用例任务调度系统的结构示意图。如图1所示,本实施例提供的用例任务调度系统包括:客户端110、服务器120以及多个执行端130。客户端110和服务器120之间通信,服务器120与执行端130之间通信。客户端110用于向服务器120发送测试计划。服务器120用于接收客户端110发送的测试计划,接收执行端130发送的用例任务请求,向执行端130发送待发送用例任务列表。执行端130用于向服务器120发送用例任务请求,接收服务器120发送的待发送用例任务列表。
图2为本申请根据一示例性实施例示出的用例任务调度方法的流程示意图。如图2所示,本实施例提供的用例任务调度方法基于图1所示的用例任务调度系统,该用例任务调度方法包括如下步骤:
S101、执行端根据执行能力最大值和当前执行用例任务数,计算用例任务可执行数量。
更具体地,执行能力最大值是执行端能够同时执行的最大用例任务数。执行端默认执行能力最大值等于机器CPU核心数。执行能力最大值始终不小于默认执行能力最大值。当前执行用例任务数是正在执行用例任务数。用例任务可执行数量是执行端当前还能接受的用例任务的最大个数。用例任务可执行数量等于执行能力最大值减去正在执行的用例任务数。
例如,最开始执行端执行能力最大值是24,当前执行用例任务数是0,计算得到用例任务可执行数量是24。
S102、若用例任务可执行数量大于0,执行端向服务器发送用例任务请求,用例任务请求中包括执行端的用例任务可执行数量。
更具体地,若用例可执行数量大于0,执行端向服务器发送请求用例任务请求,用例任务请求中包括执行端的用例任务可执行数量。若用例任务可执行数量等于0,执行端暂无执行能力,不向服务器发送请求。
例如,用例任务可执行数量是24,执行端向服务器发送用例任务请求,用例任务请求中包括执行端的用例任务可执行数量24。
S103、服务器接收用例任务请求,用例任务请求中包括执行端的用例任务可执行数量。
S104、服务器根据用例任务请求和计划任务列表,生成待发送用例任务列表,计划任务列表根据多个计划任务生成,多个计划任务根据所接收的测试计划生成,测试计划为所有用例任务的集合。
更具体地,服务器接收到测试计划后,解析测试计划的配置,生成一个一个计划任务,将计划任务放入计划任务列表中。
例如,执行端的用例任务可执行数量是24,服务器所接收的测试计划为12个用例任务的集合。服务器解析测试计划的配置,生成计划任务,将计划任务添加至计划任务列表。根据用例任务请求中的用例任务可执行数量24和计划任务列表中的12个用例任务,将12个用例任务添加至待发送用例任务列表。
S105、当待发送用例任务列表的长度达到用例任务可执行数量或者计划任务列表遍历完成,服务器向执行端发送待发送用例任务列表。
更具体地,当待发送的用例任务列表的长度达到用例任务可执行数量,服务器向执行端发送待发送用例任务列表。或者,计划任务列表遍历完成,服务器向执行端发送待发送用例任务列表。
例如,执行端的用例任务可执行数量是24,计划任务列表遍历完成共有12个用例任务,则将12个用例任务添加至待发送用例任务列表后,服务器向执行端发送待发送用例任务列表。
在本实施例提供的方法中,执行端根据执行能力最大值和当前执行用例任务数,计算用例任务可执行数量。若用例任务可执行数量大于0,执行端向服务器发送用例任务请求,用例任务请求中包括执行端的用例任务可执行数量。服务器接收用例任务请求,根据用例任务请求和计划任务列表,生成待发送用例任务列表。当待发送用例任务列表的长度达到用例任务可执行数量或者计划任务列表遍历完成,服务器向执行端发送待发送用例任务列表。执行端计算自身的实际执行能力,向服务器请求用例任务,服务器根据执行端的实际执行能力发送相应数量的用例任务,使得执行端不会积压用例任务,避免了请求超时、被测系统崩溃等问题的发生。
图3为本申请根据另一示例性实施例示出的用例任务调度方法的流程示意图。如图3所示,该用例任务调度方法包括如下步骤:
S201、客户端发送测试计划,测试计划为所有用例任务的集合。
更具体地,每个测试计划的用例任务数可能都不同。用例任务可以理解为封装了一段测试逻辑的,可以通过代码执行的测试脚本。
S202、服务器接收测试计划,根据测试计划,得到多个计划任务。
更具体地,服务端解析测试计划的配置,生成一个一个的计划任务。
S203、服务器根据多个计划任务,生成计划任务列表。
更具体地,每个计划任务包括计划状态、正在执行用例任务数、已完成用例任务数、总用例任务数、执行方式、并发数、用例任务列表。
其中,计划状态包括待执行、执行中或执行完成。执行方式包括并发或串行。并发是指计划任务中的用例任务可以并发执行,没有执行顺序限制。串行是指计划任务中用例任务按照设置的顺序一个一个执行。并发数包括指定并发数或自动并发数。指定并发数是指计划任务中的用例任务同时允许执行的最大用例任务数。每个被测系统的性能不一样,每个计划任务的并发数可能也不一样。自动并发数是系统根据用例任务可执行数量自动调整得到的。
用例任务列表包括多个用例任务,每个用例任务包括用例状态、开始时间、结束时间。计划任务中的每个用例任务都有一个唯一的顺序ID,当计划任务的执行方式是串行时,用例任务按顺序ID执行。
其中,用例状态包括待执行、执行中、执行完成或执行超时。
S204、执行器根据执行能力最大值和当前执行用例任务数,计算用例任务可执行数量。
其中,步骤S204与图2实施例中的步骤S101实现方式类似,本实施例此处不再赘述。
S205、若用例任务可执行数量大于0,执行器发送用例任务请求,用例任务请求中包括执行端的用例任务可执行数量。
其中,步骤S205与图2实施例中的步骤S102实现方式类似,本实施例此处不再赘述。
S206、接收用例任务请求,用例任务请求中包括执行端的用例任务可执行数量。
S207、根据用例任务请求和计划任务列表,生成待发送用例任务列表,计划任务列表根据多个计划任务生成,多个计划任务根据所接收的测试计划生成,测试计划为所有用例任务的集合。
可选地,根据用例任务请求和计划任务列表,生成待发送用例任务列表,包括:若计划任务列表不为空,确定目标用例状态的计划任务作为当前计划任务,目标用例状态为待执行状态或者执行中状态;当当前计划任务的执行方式为并发时,根据当前计划任务的正在执行用例任务数和并发数,生成待发送用例任务列表;当当前计划任务的执行方式为串行时,根据当前计划任务的正在执行用例任务数,生成待发送用例任务列表。
更具体地,服务端接收执行端发送的用例任务请求,如果计划任务列表不为空,遍历计划任务列表。如果计划任务的计划状态是执行完成,移除该计划任务,处理下一个计划任务。即选择一个计划状态为待执行或执行中的计划任务,判断该计划任务的执行方式是并发或是串行。当前计划任务的执行方式为并发时,根据当前计划任务的正在执行用例任务数和并发数,生成待发送用例任务列表。当前计划任务的执行方式为串行时,根据当前计划任务的正在执行用例任务数,生成待发送用例任务列表。
可选地,当当前计划任务的执行方式为并发时,根据当前计划任务的正在执行用例任务数和并发数,生成待发送用例任务列表,包括:获取当前计划任务的正在执行用例任务数和并发数;当当前计划任务的正在执行用例任务数等于并发数时,则确定下一条目标用例状态的计划任务作为当前计划任务;当当前计划任务的正在执行用例任务数小于并发数时,将待执行状态用例任务添加至待发送用例任务列表中,待执行状态用例任务的数量为并发数减去正在执行用例任务数,待执行状态用例任务位于用例任务列表中,用例任务列表包括多个用例任务,位于当前计划任务中。
更具体地,如果当前计划任务的执行方式是并发,则获取当前计划任务的正在执行用例任务数和当前计划任务的并发数。如果当前计划任务的正在执行用例任务数等于当前计划任务的并发数,则跳过该计划任务,在计划任务列表中选择下一个计划状态为待执行或执行中的计划任务。如果当前计划任务的正在执行用例任务数小于当前计划任务的并发数,则遍历该计划任务下的用例任务列表,选择用例状态为待执行的用例任务,将待执行的用例任务添加到待发送用例任务列表。添加的用例任务个数是并发数减去正在执行用例任务数。
可选地,当当前计划任务的执行方式为串行时,根据当前计划任务的正在执行用例任务数,生成待发送用例任务列表,包括:获取当前计划任务的正在执行用例任务数;当当前计划任务的正在执行用例任务数不为0时,则确定下一条目标用例状态的计划任务作为当前计划任务;当当前计划任务的正在执行用例任务数为0时,将待执行状态用例任务添加至待发送用例任务列表中,待执行状态用例任务位于用例任务列表中,用例任务列表包括多个用例任务,位于当前计划任务中。
更具体地,如果当前计划任务的执行方式是串行,则获取当前计划任务的正在执行用例任务数。如果当前计划任务的正在执行用例任务数不为0,则跳过该计划任务,在计划任务列表中选择下一个计划状态为待执行或执行中的计划任务。如果当前计划任务的正在执行用例任务数为0,在该计划任务下的用例任务列表中,选择用例状态为待执行的用例任务,将待执行的用例任务添加到待发送用例任务列表。
S208、当待发送用例任务列表的长度达到用例任务可执行数量或者计划任务列表遍历完成,发送待发送用例任务列表。
更具体地,待发送用例任务列表的长度达到用例任务可执行数量或者计划任务列表遍历完成,将待发送用例任务列表里面的用例任务发送给执行端。相应地,将已发送的用例任务的用例状态更新为执行中,将已发送的用例任务的开始时间更新为对应用例任务的发送时间。已发送的用例任务所属计划任务的计划状态变为执行中。已发送的用例任务所属计划任务中的正在执行用例任务数增加已发送的用例任务数。
S209、接收待发送用例任务列表。
S210、根据待发送用例任务列表中的用例任务个数和执行能力最大值,更新当前执行用例任务数,更新用例任务可执行数量。
更具体地,执行端收到待发送用例任务列表后,提交给任务执行器。执行器的当前执行用例任务数增加待发送用例任务列表中的用例任务数量,执行端的用例任务可执行数量减少待发送用例任务列表中的用例任务数量。任务执行器是执行用例任务的装置。一个任务执行器代表一个执行能力。执行端根据执行能力最大值,创建和销毁任务执行器。
执行端执行完成用例任务后,发送用例任务执行完成指令通知服务器。执行器的用例任务可执行数量相应增大。服务器收到用例任务执行完成指令后,修改对应用例任务的用例状态为执行完成,结束时间为接收到用例任务执行完成指令的时间。对应计划任务的正在执行用例任务数等于正在执行用例任务数减去执行完成的用例任务数。对应计划任务的已完成用例任务数等于已完成用例任务数加上执行完成的用例任务数。如果计划任务已完成用例任务数等于总用例任务数,将计划任务的计划状态更新为执行完成。
S211、若当前执行用例任务数等于执行能力最大值,获取影响执行能力的多个因素值,每个因素值对应一个预设阈值。
更具体地,假设影响执行能力的多个因素值表示为:ri(i=1,2,…,N),N为正整数。每个因素值对应的预设阈值表示为:yi。预设阈值可以根据实际执行情况进行设置。
S212、若所有因素值小于等于因素值对应的预设阈值,则增大执行能力最大值;否则,减小执行能力最大值。
更具体地,当前执行用例任务数等于执行能力最大值时,并且所有因素值小于等于因素值对应的预设阈值,即ri≤yi,则增大执行能力最大值。当任意一个因素值超过该因素值对应的预设阀值时,例如r1>y1,则减小执行能力最大值。
可选地,增大执行能力最大值,包括:获取多个平均消耗值,平均消耗值根据因素值和当前执行用例任务数确定;根据多个平均消耗值、执行能力最大值和多个预设阈值,确定多个执行能力增加值;根据多个执行能力增加值,确定最终增加值,最终增加值为多个执行能力增加值中的最小值;根据最终增加值,增大执行能力最大值。
更具体地,所有因素值小于等于因素值对应的预设阈值,即ri≤yi时,增大执行能力最大值。将每个因素值除以当前执行用例任务数,得到每个因素值对应的平均消耗值,表示为Avgi(i=1,2,…,N)。根据公式(1)确定N个执行能力增加值ai
(M+ai)×Avgi≤yi 公式(1)
其中,M表示执行能力最大值。
选择多个执行能力增加值ai(i=1,2,…,N)中的最小值作为最终增加值。新的执行能力最大值等于执行能力最大值加上最终增加值。
例如,假设有CPU和内存两个影响因素,执行能力最大值动态调整过程如下:
步骤一、当前执行用例任务数等于执行能力最大值,用例任务可执行数量为0。
步骤二、当前执行用例任务数等于执行能力最大值,当前CPU利用率除以当前执行用例任务数,得到用例任务平均CPU利用率AvgCPU
步骤三、当前执行用例任务数等于执行能力最大值,当前内存利用率除以当前执行用例任务数,得到用例任务平均内存利用率AvgMemory
步骤四、当前执行用例任务数等于执行能力最大值,如果当前机器CPU利用率没有达到预设阀值,并且当前机器内存利用率没有达到预设阀值,增大执行能力最大值M。需要满足条件(1)和条件(2):
条件(1):(M+aCPU)×AvgCPU≤yCPU
条件(2):(M+aMemory)×AvgMemory≤yMemory
根据条件(1)和条件(2)求得aCPU和aMemory,最终增加值等于aCPU和aMemory中较小的值。
执行端的执行能力最大值修改为M+min(aCPU,aMemory)。
那么,执行端的用例任务可执行数量就是min(aCPU,aMemory),如果min(aCPU,aMemory)大于0,则执行端向服务端发送用例任务请求。
可选地,减小执行能力最大值,包括:获取多个平均消耗值,平均消耗值根据因素值和当前执行用例任务数确定;根据多个平均消耗值、执行能力最大值和多个预设阈值,确定多个执行能力减少值;根据多个执行能力减少值,确定最终减少值,最终减少值为多个执行能力减少值中的最大值;根据最终减少值,减小执行能力最大值。
更具体地,任一因素值大于因素值对应的预设阈值,则减小执行能力最大值。确定出大于预设阈值的多个因素值,表示为rj(j=1,2,…,T),T为正整数,T≤N。将每个因素值除以当前执行用例任务数,得到每个因素值对应的平均消耗值,表示为Avgj(j=1,2,…,T)。根据公式(2)确定T个执行能力减少值bj
(M-bj)×Avgj≤yj 公式(2)
其中,M表示执行能力最大值。yj表示每个因素值rj对应的预设阈值。
选择多个执行能力减少值bj(j=1,2,…,T)中的最大值作为最终减少值。新的执行能力最大值等于执行能力最大值减去最终减少值。
当减小执行能力最大值时,如果新的执行能力最大值小于等于当前执行用例任务数,说明最新的调整还没有生效,不做重复减小执行能力最大值的操作。
例如,假设有CPU和内存两个影响因素,执行能力最大值动态调整过程如下:
步骤一、如果当前机器CPU利用率超过预设阀值,减小执行能力最大值。当前CPU利用率除以当前执行用例任务数,得到用例任务平均CPU利用率AvgCPU。减小执行能力最大值需要满足条件(3):(M-bCPU)×AvgCPU≤yCPU。根据条件(3)求得bCPU,最终减少值等于bCPU。执行端的执行能力最大值更新为M-bCPU
如果减小后,执行端的执行能力最大值小于默认执行能力最大值,则执行能力最大值重置为默认执行能力最大值。当前的用例任务可执行数量更新为0。
步骤二、如果当前机器内存利用率超过预设阀值,减小执行能力最大值。当前内存利用率除以当前执行用例任务数,得到任务平均内存利用率AvgMemory。减小执行能力最大值需要满足条件(4):(M-bMemory)×AvgMemory≤yMemory。根据条件(4)求得bMemory。最终减少值等于bMemory。执行端的执行能力最大值更新为M-bMemory。当前的用例任务可执行数量更新为0。
步骤三、如果当前机器CPU利用率超过预设阀值,且当前机器内存利用率也超过预设阀值,执行端的执行能力最大值更新为M-max(bCPU,bMemory)。
可选地,用例任务调度方法方法还包括:根据用例任务的开始时间和结束时间,计算用例任务的消耗时长,开始时间为发送用例任务的时间,结束时间为接收用例任务执行完成指令的时间;当消耗时长小于等于预设时长时,更新用例任务的状态为执行完成,预设时长根据用例任务的历史执行时间确定;当消耗时长大于预设时长时,更新用例任务的状态为执行超时。
更具体地,如果执行端突然挂掉了或者出现了其他情况,比如网络异常,正在执行的用例任务无法正常结束或者服务端无法收到执行端发送的用例任务执行完成指令,就会进入超时处理。超时控制的步骤如下:
步骤一、用例任务第一次执行,服务端如果超过预设时长没有收到执行端发送的用例任务执行完成指令,服务器将用例任务列表中的用例状态设置为执行超时。预设时长可配置,比如配置为1小时。
步骤二、用例任务第一次执行,执行端正常发送用例任务执行完成指令,记录用例任务的结束时间。统计用例任务的消耗时长,用例任务的消耗时长等于结束时间减去开始时间。
步骤三、如果用例任务的消耗时长超过历史执行时间的两倍,认为用例任务执行超时。服务器将用例任务列表中的用例状态设置为执行超时。历史执行时间可以根据用例任务的实际执行情况配置。
在本实施例提供的方法中,执行端计算自己的实际执行能力,向服务端发送用例任务请求。服务端根据执行端的执行能力发送相应数目的用例任务,使执行端不会积压用例任务。计划任务会在相对最优时间的时间内执行完成。执行端根据影响执行能力的因素值自动调整自己的执行能力最大值,让机器资源利用率在一个合理的范围内,系统更加的稳定。通过统计历史执行时间进行超时控制,相比固定的超时时间配置,可以让系统等待一个比较合理的超时时间。计划任务及时进入执行完成状态,及时从计划任务列表中清除,释放资源。
图4为本申请根据一示例性实施例示出的用例任务调度装置的结构示意图。如图4所示,本申请提供一种用例任务调度装置30,应用于服务器,装置30包括:
接收模块31,用于接收用例任务请求,用例任务请求中包括执行端的用例任务可执行数量。
生成模块32,用于根据用例任务请求和计划任务列表,生成待发送用例任务列表,计划任务列表根据多个计划任务生成,多个计划任务根据所接收的测试计划生成,测试计划为所有用例任务的集合。
发送模块33,用于当待发送用例任务列表的长度达到用例任务可执行数量或者计划任务列表遍历完成,发送待发送用例任务列表。
具体地,本实施例可以参见上述方法实施例,其原理和技术效果类似,不再赘述。
图5为本申请根据另一示例性实施例示出的用例任务调度装置的结构示意图。如图5所示,本申请提供一种用例任务调度装置40,应用于执行端,装置40包括:
计算模块41,用于根据执行能力最大值和当前执行用例任务数,计算用例任务可执行数量。
发送模块42,用于若用例任务可执行数量大于0,发送用例任务请求,用例任务请求中包括执行端的用例任务可执行数量。
具体地,本实施例可以参见上述方法实施例,其原理和技术效果类似,不再赘述。
图6为本申请根据一示例性实施例示出的电子设备的硬件结构示意图。如图6所示,本实施例的电子设备50包括:处理器51以及存储器52;其中,
存储器52,用于存储处理器可执行指令的存储器。
处理器51,用于根据存储器存储的可执行指令,以实现上述实施例中的用例任务调度方法。具体可以参见前述方法实施例中的相关描述。
可选地,存储器52既可以是独立的,也可以跟处理器51集成在一起。
当存储器52独立设置时,该电子设备50还包括总线53,用于连接存储器52和处理器51。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机指令,计算机指令被处理器执行时用于实现上述的各种实施方式提供的方法。
其中,计算机可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,计算机可读存储介质耦合至处理器,从而使处理器能够从该计算机可读存储介质读取信息,且可向该计算机可读存储介质写入信息。当然,计算机可读存储介质也可以是处理器的组成部分。处理器和计算机可读存储介质可以位于专用集成电路(Application Specific Integrated Circuits,ASIC)中。另外,该ASIC可以位于用户设备中。当然,处理器和计算机可读存储介质也可以作为分立组件存在于通信设备中。
上述计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random-Access Memory,SRAM),电可擦除可编程只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM),可编程只读存储器(Programmable read-only memory,PROM),只读存储器(Read-OnlyMemory,ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本申请还提供一种计算机程序产品,该程序产品包括执行指令,该执行指令存储在计算机可读存储介质中。设备的至少一个处理器可以从计算机可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得设备实施上述的各种实施方式提供的方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (17)

1.一种用例任务调度方法,其特征在于,应用于服务器,所述方法包括:
接收用例任务请求,所述用例任务请求中包括执行端的用例任务可执行数量;
根据所述用例任务请求和计划任务列表,生成待发送用例任务列表,所述计划任务列表根据多个计划任务生成,所述多个计划任务根据所接收的测试计划生成,所述测试计划为所有用例任务的集合;
当所述待发送用例任务列表的长度达到所述用例任务可执行数量或者所述计划任务列表遍历完成,发送所述待发送用例任务列表。
2.根据权利要求1所述的方法,其特征在于,所述根据所述用例任务请求和计划任务列表,生成待发送用例任务列表,包括:
若所述计划任务列表不为空,确定目标用例状态的计划任务作为当前计划任务,所述目标用例状态为待执行状态或者执行中状态;
当所述当前计划任务的执行方式为并发时,根据所述当前计划任务的正在执行用例任务数和并发数,生成待发送用例任务列表;
当所述当前计划任务的执行方式为串行时,根据所述当前计划任务的正在执行用例任务数,生成待发送用例任务列表。
3.根据权利要求2所述的方法,其特征在于,所述当所述当前计划任务的执行方式为并发时,根据所述当前计划任务的正在执行用例任务数和并发数,生成待发送用例任务列表,包括:
获取所述当前计划任务的正在执行用例任务数和并发数;
当所述当前计划任务的正在执行用例任务数等于所述并发数时,则确定下一条目标用例状态的计划任务作为当前计划任务;
当所述当前计划任务的正在执行用例任务数小于所述并发数时,将待执行状态用例任务添加至所述待发送用例任务列表中,待执行状态用例任务的数量为所述并发数减去所述正在执行用例任务数,所述待执行状态用例任务位于用例任务列表中,所述用例任务列表包括多个用例任务,位于所述当前计划任务中。
4.根据权利要求2所述的方法,其特征在于,所述当所述当前计划任务的执行方式为串行时,根据所述当前计划任务的正在执行用例任务数,生成待发送用例任务列表,包括:
获取所述当前计划任务的正在执行用例任务数;
当所述当前计划任务的正在执行用例任务数不为0时,则确定下一条目标用例状态的计划任务作为当前计划任务;
当所述当前计划任务的正在执行用例任务数为0时,将待执行状态用例任务添加至所述待发送用例任务列表中,所述待执行状态用例任务位于用例任务列表中,所述用例任务列表包括多个用例任务,位于所述当前计划任务中。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
根据所述用例任务的开始时间和结束时间,计算所述用例任务的消耗时长,所述开始时间为发送所述用例任务的时间,所述结束时间为接收所述用例任务执行完成指令的时间;
当所述消耗时长小于等于预设时长时,更新所述用例任务的状态为执行完成,所述预设时长根据所述用例任务的历史执行时间确定;
当所述消耗时长大于所述预设时长时,更新所述用例任务的状态为执行超时。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述接收用例任务请求之前,还包括:
接收所述测试计划,所述测试计划为所有用例任务的集合;
根据所述测试计划,得到所述多个计划任务;
根据所述多个计划任务,生成所述计划任务列表。
7.一种用例任务调度方法,其特征在于,应用于执行端,所述方法包括:
根据执行能力最大值和当前执行用例任务数,计算用例任务可执行数量;
若所述用例任务可执行数量大于0,发送用例任务请求,所述用例任务请求中包括所述执行端的用例任务可执行数量。
8.根据权利要求7所述的方法,其特征在于,所述若所述用例任务可执行数量大于0,发送用例任务请求之后,还包括:
接收待发送用例任务列表;
根据所述待发送用例任务列表中的用例任务个数和执行能力最大值,更新当前执行用例任务数,更新所述用例任务可执行数量。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若所述当前执行用例任务数等于所述执行能力最大值,获取影响执行能力的多个因素值,每个因素值对应一个预设阈值;
若所有所述因素值小于等于所述因素值对应的所述预设阈值,则增大所述执行能力最大值;否则,减小所述执行能力最大值。
10.根据权利要求9所述的方法,其特征在于,所述增大所述执行能力最大值,包括:
获取多个平均消耗值,所述平均消耗值根据所述因素值和所述当前执行用例任务数确定;
根据多个所述平均消耗值、所述执行能力最大值和多个所述预设阈值,确定多个执行能力增加值;
根据多个所述执行能力增加值,确定最终增加值,所述最终增加值为多个所述执行能力增加值中的最小值;
根据所述最终增加值,增大所述执行能力最大值。
11.根据权利要求9所述的方法,其特征在于,所述减小所述执行能力最大值,包括:
获取多个平均消耗值,平均消耗值根据所述因素值和所述当前执行用例任务数确定;
根据多个所述平均消耗值、所述执行能力最大值和多个所述预设阈值,确定多个执行能力减少值;
根据多个所述执行能力减少值,确定最终减少值,所述最终减少值为多个所述执行能力减少值中的最大值;
根据所述最终减少值,减小所述执行能力最大值。
12.一种用例任务调度系统,其特征在于,所述系统包括客户端、服务器以及多个执行端;
所述客户端用于发送所述测试计划;
所述服务器用于执行如权利要求1至6中任意一项所述的用例任务调度方法;
所述执行端用于执行如权利要求7至11中任意一项所述的用例任务调度方法。
13.一种用例任务调度装置,其特征在于,应用于服务器,所述装置包括:
接收模块,用于接收用例任务请求,所述用例任务请求中包括执行端的用例任务可执行数量;
生成模块,用于根据所述用例任务请求和计划任务列表,生成待发送用例任务列表,所述计划任务列表根据多个计划任务生成,所述多个计划任务根据所接收的测试计划生成,所述测试计划为所有用例任务的集合;
发送模块,用于当所述待发送用例任务列表的长度达到所述用例任务可执行数量或者所述计划任务列表遍历完成,发送所述待发送用例任务列表。
14.一种用例任务调度装置,其特征在于,应用于执行端,所述装置包括:
计算模块,用于根据执行能力最大值和当前执行用例任务数,计算用例任务可执行数量;
发送模块,用于若所述用例任务可执行数量大于0,发送用例任务请求,所述用例任务请求中包括所述执行端的用例任务可执行数量。
15.一种电子设备,其特征在于,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
处理器,用于根据所述存储器存储的可执行指令,实现如权利要求1至11中任一项所述的用例任务调度方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至11中任一项所述的用例任务调度方法。
17.一种计算机程序产品,包括指令,其特征在于,该指令被处理器执行时实现如权利要求1至11中任一项所述的用例任务调度方法。
CN202110225319.4A 2021-03-01 2021-03-01 用例任务调度方法、系统、装置、设备及存储介质 Pending CN112882940A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110225319.4A CN112882940A (zh) 2021-03-01 2021-03-01 用例任务调度方法、系统、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110225319.4A CN112882940A (zh) 2021-03-01 2021-03-01 用例任务调度方法、系统、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN112882940A true CN112882940A (zh) 2021-06-01

Family

ID=76055008

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110225319.4A Pending CN112882940A (zh) 2021-03-01 2021-03-01 用例任务调度方法、系统、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112882940A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115586957A (zh) * 2022-11-25 2023-01-10 阿里巴巴(中国)有限公司 一种任务调度系统、方法、装置及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115586957A (zh) * 2022-11-25 2023-01-10 阿里巴巴(中国)有限公司 一种任务调度系统、方法、装置及电子设备
CN115586957B (zh) * 2022-11-25 2023-04-14 阿里巴巴(中国)有限公司 一种任务调度系统、方法、装置及电子设备

Similar Documents

Publication Publication Date Title
CN107423120B (zh) 任务调度方法及装置
CN109144700B (zh) 超时时长的确定方法、装置、服务器和数据处理方法
CN112256417B (zh) 一种数据请求处理方法、装置及计算机可读存储介质
US11068317B2 (en) Information processing system and resource allocation method
CN110659137A (zh) 针对离线任务的处理资源分配方法及系统
CN112882940A (zh) 用例任务调度方法、系统、装置、设备及存储介质
CN114461385A (zh) 线程池调度方法、装置、设备以及可读存储介质
CN111143063B (zh) 任务的资源预约方法及装置
US20210168827A1 (en) Apparatus and method for altruistic scheduling based on reinforcement learning
CN113626173A (zh) 调度方法、装置及存储介质
CN116483546B (zh) 分布式训练任务调度方法、装置、设备及存储介质
CN111359205B (zh) 云端游戏的操作方法、装置、计算机设备及存储介质
CN110413393B (zh) 集群资源管理方法、装置、计算机集群及可读存储介质
CN109245941B (zh) 一种服务补偿方法及装置
CN107689979B (zh) 一种下载请求处理方法和处理设备
CN106874336B (zh) 数据撮合方法、数据查询方法及装置
CN114528109A (zh) 资源请求方法、装置和系统
CN115221041A (zh) 多设备的测试方法、装置、电子设备及存储介质
CN112506896B (zh) 一种数据删除方法、装置及电子设备
CN115080220A (zh) 云资源分配方法及设备
CN113760494A (zh) 任务调度方法和装置
CN112084014A (zh) 一种数据处理方法、装置、设备及介质
CN112019423B (zh) 一种处理消息的方法及装置
CN112766768B (zh) 合同流程管理方法、装置、电子设备以及可读存储介质
CN117632417A (zh) 多租户saas服务的任务优先级控制方法及系统

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