CN114817050A - 任务执行方法及装置、电子设备和计算机可读存储介质 - Google Patents
任务执行方法及装置、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN114817050A CN114817050A CN202210495731.2A CN202210495731A CN114817050A CN 114817050 A CN114817050 A CN 114817050A CN 202210495731 A CN202210495731 A CN 202210495731A CN 114817050 A CN114817050 A CN 114817050A
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- time
- tasks
- target
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种任务执行方法及装置、电子设备和计算机可读存储介质,可用于自动化测试技术领域,也可用于金融技术领域或其他技术领域。该任务执行方法包括:确定目标待执行任务队列;计算目标待执行任务队列中的任务的单任务延迟时长、单任务理论可执行时长;获取当前可用执行机的数量、目标待执行任务队列中的任务的单任务预计执行时长;根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从目标待执行任务队列中确定预执行目标任务;以及将预执行目标任务分配至当前可用执行机上执行。
Description
技术领域
本公开涉及自动化测试技术领域,具体地涉及一种任务执行方法、装置、设备、介质和程序产品。
背景技术
金融机构因为其业务的特殊性,内部系统版本需要经常进行更新维护、测试等,通常通过自动化测试脚本执行定时任务来执行测试工作。
在传统测试模式下,通常自动化测试脚本提交执行一般通过简单的提交逻辑进行队列提交(如按任务数量大小、时间先后等),对当前待执行队列的延时、执行机资源等情况考虑较少,导致出现许多任务被无效执行,且增加了大量垃圾数据,给业务人员带了来很大不便。
发明内容
鉴于上述问题,本公开提供了一种任务执行方法、装置、设备、介质和程序产品。
本公开的一个方面,提供了一种任务执行方法,包括:
确定目标待执行任务队列;
计算目标待执行任务队列中的任务的单任务延迟时长、单任务理论可执行时长,其中单任务理论可执行时长用于表征由当前时间至环境预定维护时间之间的时间窗口,其中环境预定维护时间为与任务关联的内部环境开始维护的时间;
获取当前可用执行机的数量、目标待执行任务队列中的任务的单任务预计执行时长;
根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从目标待执行任务队列中确定预执行目标任务;以及
将预执行目标任务分配至当前可用执行机上执行。
根据本公开的实施例,其中:
目标待执行任务队列中的任务包括可组合执行的第一类任务和可独立执行的第二类任务,其中第一类任务包括至少一个任务组;
预执行目标任务为第一类任务中的其中一个任务组、或者为第二类任务中的至少一个。
根据本公开的实施例,其中,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,确定预执行目标任务包括:
在根据单任务延迟时长,确定第一类任务优先执行的情况下,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从第一类任务中的至少一个任务组中确定预执行目标任务组,作为预执行目标任务;以及
在根据单任务延迟时长,确定第二类任务优先执行的情况下,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从第二类任务中确定至少一个目标第二类任务,作为预执行目标任务。
根据本公开的实施例,其中,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从第一类任务中的至少一个任务组中确定预执行目标任务组包括:
根据单任务延迟时长,计算第一类任务中的各个任务组的单组任务延迟时长;
根据单任务理论可执行时长,计算第一类任务中的各个任务组的单组任务理论可执行时长;
根据单任务预计执行时长、以及当前可用执行机的数量,计算第一类任务中的各个任务组的单组任务预计执行时长;
根据各个任务组的单组任务延迟时长、单组任务理论可执行时长、单组任务预计执行时长,从第一类任务中的至少一个任务组中确定预执行目标任务组。
根据本公开的实施例,其中,根据各个任务组的单组任务延迟时长、单组任务理论可执行时长、单组任务预计执行时长,从第一类任务中的至少一个任务组中确定预执行目标任务组包括:
从至少一个任务组中确定可选任务组,其中可选任务组为:单组任务预计执行时长小于等于单组任务理论可执行时长的任务组;
将可选任务组中,单组任务延迟时长满足预设筛选条件的任务组,确定为预执行目标任务组。
根据本公开的实施例,其中,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从第二类任务中确定至少一个目标第二类任务包括:
根据单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,计算可执行任务的目标数量;
根据单任务延迟时长,确定第二类任务中各任务的优先级;
根据各任务的优先级,从第二类任务中确定目标数量个第二类任务,作为至少一个目标第二类任务。
根据本公开的实施例,其中,确定目标待执行任务队列包括:
获取初始待执行任务队列;
获取与初始待执行任务队列关联的第三方测试环境列表;
获取第三方测试环境列表中各个第三方测试环境的当前服务状态;
从初始待执行任务队列中确定与目标第三方测试环境关联的任务,作为目标待执行任务队列,其中目标第三方测试环境为当前服务状态可用的第三方测试环境。
根据本公开的实施例,上述方法还包括,在获取当前可用执行机的数量、目标待执行任务队列中的任务的单任务预计执行时长之后:
根据单任务理论可执行时长、单任务预计执行时长、当前可用执行机的数量,确定当前可用执行机的数量是否满足当前任务执行需求。
本公开的另一个方面提供了一种任务执行装置,包括第一确定模块、计算模块、获取模块、第二确定模块和分配模块。
其中,第一确定模块,用于确定目标待执行任务队列;
计算模块,用于计算目标待执行任务队列中的任务的单任务延迟时长、单任务理论可执行时长,其中单任务理论可执行时长用于表征由当前时间至环境预定维护时间之间的时间窗口,其中环境预定维护时间为与任务关联的内部环境开始维护的时间;
获取模块,用于获取当前可用执行机的数量、目标待执行任务队列中的任务的单任务预计执行时长;
第二确定模块,用于根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从目标待执行任务队列中确定预执行目标任务;以及
分配模块,用于将预执行目标任务分配至当前可用执行机上执行。
根据本公开的实施例,其中:
目标待执行任务队列中的任务包括可组合执行的第一类任务和可独立执行的第二类任务,其中第一类任务包括至少一个任务组;
预执行目标任务为第一类任务中的其中一个任务组、或者为第二类任务中的至少一个。
根据本公开的实施例,其中,第二确定模块包括第一确定单元和第二确定单元。
其中,第一确定单元,用于在根据单任务延迟时长,确定第一类任务优先执行的情况下,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从第一类任务中的至少一个任务组中确定预执行目标任务组,作为预执行目标任务;以及
第二确定单元,用于在根据单任务延迟时长,确定第二类任务优先执行的情况下,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从第二类任务中确定至少一个目标第二类任务,作为预执行目标任务。
根据本公开的实施例,其中,第一确定单元包括第一计算子单元、第二计算子单元、第三计算子单元和第一确定子单元。
其中,第一计算子单元,用于根据单任务延迟时长,计算第一类任务中的各个任务组的单组任务延迟时长;
第二计算子单元,用于根据单任务理论可执行时长,计算第一类任务中的各个任务组的单组任务理论可执行时长;
第三计算子单元,用于根据单任务预计执行时长、以及当前可用执行机的数量,计算第一类任务中的各个任务组的单组任务预计执行时长;
第一确定子单元,用于根据各个任务组的单组任务延迟时长、单组任务理论可执行时长、单组任务预计执行时长,从第一类任务中的至少一个任务组中确定预执行目标任务组。
根据本公开的实施例,其中,第一确定子单元用于:
从至少一个任务组中确定可选任务组,其中可选任务组为:单组任务预计执行时长小于等于单组任务理论可执行时长的任务组;
将可选任务组中,单组任务延迟时长满足预设筛选条件的任务组,确定为预执行目标任务组。
根据本公开的实施例,其中,第二确定单元包括第四计算子单元、第二确定子单元、第三确定子单元。
其中,第四计算子单元,用于根据单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,计算可执行任务的目标数量;
第二确定子单元,用于根据单任务延迟时长,确定第二类任务中各任务的优先级;
第三确定子单元,用于根据各任务的优先级,从第二类任务中确定目标数量个第二类任务,作为至少一个目标第二类任务。
根据本公开的实施例,其中,第一确定模块包括第一获取单元、第二获取单元、第三获取单元、第三确定单元。
其中,第一获取单元,用于获取初始待执行任务队列;
第二获取单元,用于获取与初始待执行任务队列关联的第三方测试环境列表;
第三获取单元,用于获取第三方测试环境列表中各个第三方测试环境的当前服务状态;
第三确定单元,用于从初始待执行任务队列中确定与目标第三方测试环境关联的任务,作为目标待执行任务队列,其中目标第三方测试环境为当前服务状态可用的第三方测试环境。
根据本公开的实施例,上述装置还包括第三确定模块,用于在获取当前可用执行机的数量、目标待执行任务队列中的任务的单任务预计执行时长之后:根据单任务理论可执行时长、单任务预计执行时长、当前可用执行机的数量,确定当前可用执行机的数量是否满足当前任务执行需求。
本公开的另一个方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述任务执行方法。
本公开的另一个方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述任务执行方法。
本公开的另一个方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任务执行方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的任务执行方法、装置、设备、介质和程序产品的应用场景图;
图2示意性示出了根据本公开实施例的任务执行方法的流程图;
图3示意性示出了根据本公开另一实施例的任务执行方法的流程图;
图4示意性示出了根据本公开另一实施例的任务执行方法的流程图;
图5示意性示出了根据本公开实施例的任务执行装置的结构框图;以及
图6示意性示出了根据本公开实施例的适于实现任务执行方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
金融机构因为其业务的特殊性,内部系统版本需要经常进行更新维护、测试等,通常通过自动化测试脚本执行定时任务来执行测试工作。
版本测试期间,金融机构对于功能验证的工作是连续的,故当企业内部版本更新后,会同步提交对应的自动化测试脚本进行功能验证,在传统模式下,在传统测试模式下,通常自动化测试脚本提交执行一般通过简单的提交逻辑进行队列提交(如按任务数量大小、时间先后等),对当前待执行队列的延时、执行机资源等情况考虑较少,导致出现许多任务被无效执行,且增加了大量垃圾数据,给业务人员带了来很大不便。
例如,在距离自己内部测试环境计划维护期较短的情况下,时长不足以满足自动化测试脚本执行完成所需时间时,导致的脚本执行失败问题。
再例如,待执行队列中某些分组的自动化测试脚本对应的环境维护期快到时,无法智能识别及时自动调整调度方式,优先保障测试环境可用周期短的自动化测试执行任务完成。
再例如,当内部被测环境不可用时,或第三方环境服务不可用时,无法动态监测对应的服务状态,仍然提交自动化测试脚本执行,自动化测试脚本执行失败,导致无效的测试执行资源浪费。
对于金融企业来说,如何通过自动化调度装置,高效的调度自动测试脚本提交执行,有效利用当前的自动化测试脚本执行资源、内部系统环境可测试时间、最大化的输出自动化测试执行成果,提高自动化测试效率,成为需要亟待解决的问题。
有鉴于此,本公开的实施例提供了一种任务执行方法,包括:
确定目标待执行任务队列;
计算目标待执行任务队列中的任务的单任务延迟时长、单任务理论可执行时长,其中单任务理论可执行时长用于表征由当前时间至环境预定维护时间之间的时间窗口,其中环境预定维护时间为与任务关联的内部环境开始维护的时间;
获取当前可用执行机的数量、目标待执行任务队列中的任务的单任务预计执行时长;
根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从目标待执行任务队列中确定预执行目标任务;以及
将预执行目标任务分配至当前可用执行机上执行。
图1示意性示出了根据本公开实施例的任务执行方法、装置、设备、介质和程序产品的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括终端设备101、服务器102、执行机103、内部环境系统104、第三方环境系统105。终端设备101、服务器102、执行机103、内部环境系统104、第三方环境系统105之间可通过网络进行通信,网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101通过网络与服务器102交互,以接收或发送消息等。终端设备101上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器102可以是提供各种服务的服务器,例如对用户利用终端设备101所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
根据本公开的实施例,执行机103可用于自动执行测试脚本以便完成系统版本测试。
在本公开实施例的应用场景下,可应用在涉及到多个第三方机构配合搭建测试环境进行测试,并且企业内部有多个应用系统同时在进行版本功能验证的情况。因此,涉及到内部环境系统104和第三方环境系统105。
根据本公开的实施例,用户可以使用终端设备101通过网络与服务器102交互,向服务器102发送用于执行版本测试的任务执行请求,相应于用户请求,服务器102可执行本公开实施例的任务执行方法,从内部环境系统104和第三方环境系统105分别获取到内部环境系统的维护计划、以及第三方环境的服务状态,根据待执行任务队列,结合内部环境系统的维护计划、以及第三方环境的服务状态,从待执行任务队列中确定预执行目标任务,并将预执行目标任务分配至当前可用执行机103上执行。
需要说明的是,本公开实施例所提供的任务执行方法一般可以由服务器102执行。相应地,本公开实施例所提供的任务执行装置一般可以设置于服务器102中。本公开实施例所提供的任务执行方法也可以由不同于服务器102且能够与终端设备101和/或服务器102通信的服务器或服务器集群执行。相应地,本公开实施例所提供的任务执行装置也可以设置于不同于服务器102且能够与终端设备101和/或服务器102通信的服务器或服务器集群中。
应该理解,图1中的终端设备、服务器、执行机的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、服务器、执行机。
在本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
需要说明的是,本公开的任务执行方法及装置可用于自动化测试技术领域,也可用于金融技术领域,还可用于除自动化测试技术领域和金融技术领域之外的任意领域,本公开的实施例对该任务执行方法及装置的应用领域不做限定。
以下将基于图1描述的场景,通过图2~图6对公开实施例的任务执行方法进行详细描述。
图2示意性示出了根据本公开实施例的任务执行方法的流程图。
如图2所示,该实施例的任务执行方法包括操作S201~操作S205。
在操作S201,确定目标待执行任务队列;
在操作S202,计算目标待执行任务队列中的任务的单任务延迟时长、单任务理论可执行时长,其中单任务理论可执行时长用于表征由当前时间至环境预定维护时间之间的时间窗口,其中环境预定维护时间为与任务关联的内部环境开始维护的时间;
在操作S203,获取当前可用执行机的数量、目标待执行任务队列中的任务的单任务预计执行时长;
在操作S204,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从目标待执行任务队列中确定预执行目标任务;以及
在操作S205,将预执行目标任务分配至当前可用执行机上执行。
根据本公开的实施例,目标待执行任务队列中包括一个或多个待执行的自动化测试任务,例如:目标任务1、目标任务2、目标任务3……。目标待执行任务队列可以是对原始获得的待执行任务队列进行了筛选处理,滤除了部分不可执行的任务之后的到的。
根据本公开的实施例,目标待执行任务队列中的任务的单任务延迟时长表示当前任务相对于原计划执行时间延迟的时长,计算目标待执行任务队列中的任务的单任务延迟时长,可以是获取目标待执行任务队列中每个任务计划提交执行时间(Plan_time)、以及当前的系统时间,计算两个时间节点之间的差值,得到每个任务当前的任务延迟时长delay_time,单位为秒。
根据本公开的实施例,目标待执行任务队列中的任务的单任务理论可执行时长用于表征每个任务距离内部环境开始维护之前还有多长的时间窗口,每个任务需要在这个时间窗口内执行完毕,以免影响内部系统环境维护。计算每个任务的单任务理论可执行时长可以是获取与每个任务分别关联的内部环境维护计划(例如:A测试环境于xx日期20:00-22:00时间段执行环境维护;B测试环境于xx日期10:00-22:00时间段执行环境维护)和当前的系统时间,计算在内部测试环境维护开始时刻到当前时间点之间的时间差,得到待执行任务队列中每个任务的在当前时间点的单任务理论可执行时长Win_time。
根据本公开的实施例,目标待执行任务队列中的任务的单任务预计执行时长表征每个任务预计在多长时间内可执行完毕,首次预计执行时长可以是根据经验设置的,在任务执行过之后,预计执行时长可以是参考历史的任务执行时长进行设置。
根据本公开的实施例,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从目标待执行任务队列中确定预执行目标任务,例如可以是首先根据队列中每个任务的单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,计算在理论可执行时长的时间窗口内,当前可执行任务的数量,然后根据每个任务的单任务延迟时长,选取延时排名靠前的几个任务作为预执行目标任务。例如当前时间距离内部系统环境维护开始之前还有1个小时的时间窗口,每个任务的预计执行时长为半小时,当前空闲的执行机有10台,计算得到平均每台机器在1小时的时间窗口内可以执行两个任务,则10台执行机在1小时的时间窗口内可以执行20个任务,选取延时排名前20位的任务作为预执行目标任务。
根据本公开的实施例,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从目标待执行任务队列中确定预执行目标任务,例如也可以是,按照单任务延迟时长首先取延时排名第一的任务,判断当前任务是否可以在理论可执行时长的时间窗口内执行完毕(即判断单任务预计执行时长是否小于等于单任务理论可执行时长),若满足条件,则将其预分配至第一台空闲执行机,若不满足,等待下一个扫描周期;之后取延时排名第二的任务,判断当前任务是否可以在理论可执行时长的时间窗口内执行完毕,若满足条件,则将其预分配至第二台空闲执行机,若不满足,等待下一个扫描周期……直至所有的空闲执行机被分派完毕;得到预执行目标任务队列。
根据本公开的实施例,本公开实施例的方法旨在从目标待执行任务队列中确定合理的预执行目标任务,以便这些任务都被有效执行。在确定哪些任务可以提交执行的过程中,综合考虑了延迟时长、理论可执行时长、预计执行时长、可用执行机的数量的多种因素的影响,保证了提交执行的任务都可以被有效执行。避免了在距离自己内部测试环境计划维护期较短的情况下,时长不足以满足自动化测试脚本执行完成所需时间时,导致的脚本执行失败的问题;避免了待执行队列中某些自动化测试脚本对应的环境维护期快到时,无法智能识别及时自动调整调度方式的问题,达到了优先保障测试环境可用周期短的自动化测试执行任务完成的目的。避免了内部被测环境不可用时因无法动态监测对应的服务状态,仍然提交自动化测试脚本执行,自动化测试脚本执行失败,导致无效的测试执行资源浪费的问题。
通过本公开实施例的方法,实现了对自动化测试待执行任务的智能调度提交,提高整个版本的自动化测试验证效率,节约测试执行资源。同时,通过该方法也能够将非工作时间利用起来,帮助各个金融企业在版本测试周期短的情况下,更高效地利用好第三方提供的测试联调环境资源,通过7*24小时进行探测,及待执行任务的智能调度,尽可能多地执行自动化测试案例,提高版本功能的验证范围和质量。
根据本公开的实施例,本公开实施例的上述任务执行方法可应用于涉及到多个第三方环境联合测试的场景。金融机构因为其业务的特殊性,在实际的业务流程过程中经常需要调用多个第三方机构的系统进行交互后,才能完成一个完整的业务处理流程,在这个过程中,只要第三方的环境存在问题,那么整个交易就无法完成,所以在每次版本改造时,均需要与第三方机构进行大量的联调测试工作。
通常,第三方机构作为独立的机构,需要面向多个金融机构同时提供测试服务,但每个机构版本研发及测试的时间周期又不同步,故第三方机构无法为每个机构安排专有的测试服务时间及专用环境,只能所有金融机构共同使用第三方机构所提供的测试环境,进行相关版本功能的验证工作。
因为第三方机构的提供的环境的维护和新版本部署的过程中,联测环境将无法使用,等到环境维护完成后,金融企业才能够进行正常的功能联调测试工作。在这个过程中,因为第三方机构的版本也可能是测试版本,版本也会经常更新维护,导致联测环境的可用周期不固定,所提供的联调服务不稳定。对于第三方来说,因为联调环境提供服务的对象为所有的金融企业,无法做到当测试联调环境进行维护时,及时通知到所有正在进行联调测试单位,并且与之协调环境维护时间周期,所以对于正在进行版本联调测试的金融企业来说,在测试过程中无法提前预知第三方的联调测试环境会出现问题的时间,只能通过在测试过程中发现第三方服务不正常的情况时,人工等待一段时间后再进行尝试,看第三方的联调环境的服务是否恢复,恢复服务后,再开展后续的测试工作,在这种情况下,对于金融企业进行联调测试的人员来说,测试的效率低下,且测试计划和进度很容易被打乱。
金融机构中越来越广泛的应用自动化测试技术来提高测试执行效率,虽然自动化测试脚本可以实现7*24小时的测试执行快速验证,但在自动化脚本执行过程中,遇到第三方联调测试环境服务不可用情况时,因为第三方联调测试环境的服务无法预知服务停用时段,需要测试人员手工先测试验证第三方联调测试环境的服务可用后,才能够提交对应自动化测试脚本执行,遇到测试人员工作忙或者是非工作时间段时,自动化测试脚本无法提交,不能发挥出7*24小时可以进行重复自动验证的效用。
图3示意性示出了根据本公开另一实施例的任务执行方法的流程图。图3实施例所示的任务执行方法充分考虑到第三方联调测试环境的实时服务状态的影响,以下结合图3对该任务执行方法进行说明。
如图3所示,该任务执行方法可通过调用待执行任务智能分析服务来执行,执行该方法,需要首先确定目标待执行任务队列,其中,确定目标待执行任务队列包括:
首先,获取初始待执行任务队列,即获取原计划执行的所有待执行的任务列表;
之后,获取与初始待执行任务队列关联的第三方测试环境列表;
如图3所示,第三方联测环境的测试服务被预先注册在业务系统,注册信息包含测试环境名称、测试环境地址、测试协议类型、调用规则、本期版本是否需测试等信息,具体注册信息如下表1所述。
表1
信息项 | 描述 |
测试环境名称 | 第三方联测环境名称 |
测试环境地址 | 第三方联测环境地址 |
协议类型 | 接口协议类型(http/api) |
调用规则 | 调用该接口的具体规则 |
本期是否需测试 | 是/否 |
下表2示例性地示出了与待执行任务关联的第三方测试环境服务的注册列表示例。
表2
然后,获取第三方测试环境列表中各个第三方测试环境的当前服务状态;如图3所示,该操作可通过调用第三方环境服务探测服务来实现。第三方环境服务探测服务用来对具体的第三方联测环境服务状态进行探测。根据在第三方注册模块中定义的相关服务信息、调用规则和协议访问机制,以不断顺序轮询的方式,访问需要进行联调测试的服务,获取到当期版本中当前服务状态为正常的第三方测试环境清单。
第三方环境服务探测服务在接收待执行任务智能分析模块的轮询调用指令后,通过对本期需要测试的第三方联测环境清单进行扫描,调用对应的服务方法协议,获取到当前服务状态为正常可以正常测试的第三方联调测试环境清单。
最后,根据获取到的当前服务状态为正常的第三方联调测试环境清单,从初始待执行任务队列中确定与目标第三方测试环境关联的任务,作为目标待执行任务队列(其中目标第三方测试环境为当前服务状态可用的第三方测试环境),反馈给任务智能分析服务。
下表3所示为第三方联调测试环境的当前服务状态清单列表示例。如下表3所示,在与待执行任务关联的第三方测试环境中,A企业一套联调环境、B企业二套联调环境、D企业一套联调环境的服务状态正常。
表3
第三方测试环境名称 | 联调测试服务状态 |
A企业一套联调环境 | 正常 |
B企业二套联调环境 | 正常 |
C企业一套联调环境 | 异常 |
D企业联调环境 | 正常 |
E企业联调环境 | 异常 |
下表4所示为与服务状态正常的第三方测试环境关联的目标待执行任务队列示例。
表4
根据本公开的实施例,在确定了与服务状态正常的第三方测试环境关联的目标待执行任务队列后,任务智能分析服务需计算目标待执行任务队列中的任务的单任务延迟时长、单任务理论可执行时长。
单任务延迟时长表示当前任务相对于原计划执行时间延迟的时长,计算目标待执行任务队列中的任务的单任务延迟时长,可以是智能分析服务获取目标待执行任务队列中每个任务计划提交执行时间(Plan_time)、以及当前的系统时间,计算两个时间节点之间的差值,得到每个任务当前的任务延迟时长delay_time,单位为秒。
进一步地,如图3所示,可通过调用内部测试环境维护计划管理服务维护内部测试环境的计划信息,定义已经计划好的应用系统环境维护计划及时间,反馈给任务智能分析服务,以便任务智能分析服务根据应用系统环境维护计划及时间计算目标待执行任务队列中的任务的单任务理论可执行时长。
表5所示为计划好的应用系统环境维护计划及时间列表示例。
表5
根据本公开的实施例,智能分析服务在获取到应用系统环境维护计划及时间后,计算目标待执行任务队列中的任务的单任务理论可执行时长,可以是获取与每个任务分别关联的内部环境维护计划(例如:A测试环境于xx日期20:00-22:00时间段执行环境维护;B测试环境于xx日期10:00-22:00时间段执行环境维护)和当前的系统时间,计算在内部测试环境维护开始时刻到当前时间点之间的时间差,得到待执行任务队列中每个任务的在当前时间点的单任务理论可执行时长Win_time。
如图3所示,智能分析服务在计算目标待执行任务队列中的任务的单任务延迟时长、单任务理论可执行时长后,还需根据执行机状态清单获取当前可用执行机的数量,并获取目标待执行任务队列中的任务的单任务预计执行时长。
待执行任务智能分析服务在获取当前时间段中可用的空闲执行机数量M=0时,等待下一个扫描周期,当M>0时,根据执行机资源使用情况、待执行任务特征等状态,对待执行清单中的执行任务进行智能化分析,形成新一轮次的提交执行任务清单,即根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从目标待执行任务队列中确定预执行目标任务,并将预执行目标任务清单提交执行任务提交管理服务。
任务提交管理服务主要接收来自于待执行任务智能分析服务输出的预执行目标任务清单,根据可用执行机资源,将任务分配到对应的执行机上进行执行,同时负责在提交任务时,对内部被测环境的服务状态进行采集,当遇到内部被测环境服务状态不可用时,将结果反馈给待执行任务智能分析服务进行分析。
根据本公开的实施例,还可以实时捕捉自动化测试执行结果,对当前正在自动化执行中的自动化任务进行监控跟踪,获取执行结果,自动抓取自动化执行系统页面上对应记录的开始执行时间,结束执行时间以及执行结果信息,并记录相应的调度信息。
根据本公开的实施例,还可以记录通过该装置提交执行的第三方联调测试对应的自动化测试脚本的提交执行时间、执行完成时间、以及执行结果信息,生成对应的测试结果word/excel文件报告,供测试人员查阅,便于对整个版本联调测试的验证结果进行统计分析。
根据本公开的实施例,上述任务执行方法可应用在进行版本测试时,涉及到多个第三方机构配合搭建测试环境进行测试,并且企业内部有多个应用系统同时在进行版本功能验证的情况,充分考虑了第三方测试环境的服务状态、内部环境的维护计划等等不可控外界因素的影响,在执行任务之前,探测第三方测试环境是否可用,依据此探测结果确定目标待执行任务队列,保证了在第三方测试环境可用的前提下执行任务,避免任务被无效执行,避免了自动化测试脚本执行失败,导致无效的测试执行资源浪费的问题,提高整个版本的自动化测试验证效率。
根据本公开的实施例,在实际的应用场景下,自动化执行机资源不足时,部分需要同一批次一起执行完成的自动化脚本未进行统筹的考虑,导致其中虽然某几个脚本执行完了,但剩余几个脚本还要排队很长时间才能执行完成,整体批次全部完成的时间点滞后严重,对于测试人员来讲,只有一个批次任务全部完成时执行结果才有用,故产生自动化测试整体服务输出低效的问题。
因此,考虑到上述问题,本公开实施例的任务执行方法中,将目标待执行任务队列中的任务进行了分类。根据本公开的实施例,目标待执行任务队列中的任务包括优先组合执行的第一类任务(分组类任务)和可独立执行的第二类任务(独立类任务),其中第一类任务包括至少一个任务组;预执行目标任务为第一类任务中的其中一个任务组、或者为第二类任务中的至少一个。即,针对分组类任务,需要在执行条件满足的情况下,一次性将一个任务组中包含的任务全部执行完毕,避免将同一个任务组中包含的任务拆分执行,避免了任务被无效执行,且减少了垃圾数据的产生,减少了测试人员核对处理垃圾数据的成本。
根据本公开的实施例,进一步地,上述任务执行方法中,根据目标待执行任务队列中每个任务的单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,确定预执行目标任务具体可包括:
在根据单任务延迟时长,确定第一类任务(分组类任务)优先执行的情况下,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从第一类任务中的至少一个任务组中确定预执行目标任务组,作为预执行目标任务;
在根据单任务延迟时长,确定第二类任务(独立类任务)优先执行的情况下,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从第二类任务中确定至少一个目标第二类任务,作为预执行目标任务。
上述方法,例如可以是:对目标待执行任务队列中每个任务的单任务延迟时长进行统计,按照分组G和独立D两种类别分类计算,获取到分组任务以及独立任务两种类别的待执行任务对应的平均延迟时长,即将所有分组任务的单任务延迟时长加和再求平均,得到分组类任务的平均延迟时长delay_time_A_G;将所有独立任务的单任务延迟时长加和再求平均,得到独立类任务的平均延迟时长delay_time_A_D。将delay_time_A_G与delay_time_A_D两个指标值的大小进行比对决定当前调度模型哪类任务进行优先调度,指标值大的代表该类任务执行时间滞后较大,对应类别的自动化脚本需要较快执行完,以确保所有执行任务的平均最短延时。
例如,delay_time_A_G大于delay_time_A_D的情况下,确定第一类任务(分组类任务)优先执行,后续可从第一类任务中的至少一个任务组中确定预执行目标任务组,作为预执行目标任务。
在delay_time_A_G小于等于delay_time_A_D的情况下,确定第二类任务(独立类任务)优先执行,后续可从第二类任务中确定至少一个目标第二类任务,作为预执行目标任务。
根据本公开的实施例,通过上述方法,分组任务和独立任务具有同等重要的优先级,即,哪个延迟时间长,优先执行哪个,可保证分组任务被同等执行。相比于相关技术中采用按任务数量大小、时间先后等执行的方式,分组任务不会由于执行时间较长而长时间得不到执行,解决了待执行队列中需批次完成的任务(分组任务),与独立任务分布不均时,无法动态智能优化执行计划,输出测试执行结果服务效率低下的问题。
根据本公开的实施例,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从目标待执行任务队列中确定预执行目标任务还可以是:
根据第一类任务(分组任务)的所述单任务延迟时长,计算第一类任务中的各个任务组的单组任务延迟时长(单组任务延迟时长为小组内各个任务的单任务延迟时长之和);
根据各个任务组的单组任务延迟时长、第二类任务(独立任务)中的各个单任务延迟时长,确定执行的优先级,即将每个任务组作为一个任务单元、将每个独立任务作为一个任务单元,计算每个任务单元的任务延迟时长,按照延时时长的长短进行排序,延时时长越长的任务单元优先执行。
之后,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从目标待执行任务队列中确定预执行目标任务,可以参照前述实施例中的描述,在此不再赘述。
根据本公开的实施例,上述方法还包括,在获取当前可用执行机的数量、目标待执行任务队列中的任务的单任务预计执行时长之后:根据单任务理论可执行时长、单任务预计执行时长、当前可用执行机的数量,确定当前可用执行机的数量是否满足当前任务执行需求,进一步具体可以是:根据单任务理论可执行时长、单任务预计执行时长、当前可用执行机的数量,确定在当前可用执行机的数量下,当前任务是否能够在任务理论可执行时长内执行完毕,即是够是否满足当前任务执行需求。
例如,对于某个分组任务,任务组中包括20个任务,每个任务的预计执行时长为半小时,当前空闲的执行机有5台,根据每个任务单任务理论可执行时长,选取时间最短的单任务理论可执行时长作为整个任务组的理论可执行时长TGn,得到当前时间距离内部系统环境维护开始之前还有1个小时的时间窗口,即TGn=1小时,计算得到这20个任务的预计在当前空闲执行机下,预计执行所需时长TGm为(20*0.5)/5=2小时,TGm大于TGn,则可以确定在当前可用执行机的数量下,当前任务不能够在任务理论可执行时长内执行完毕,即不满足当前任务执行需求。
根据本公开的实施例,通过在任务执行前确定当前可用执行机的数量是否满足当前任务执行需求,后续可实现在不满足需求的情况下暂停本次执行,继续下一轮任务扫描,直至可用执行机的数量满足需求后执行任务,进一步避免了任务被无效执行。
根据本公开的实施例,在delay_time_A_G大于delay_time_A_D的情况下,确定第一类任务(分组类任务)优先执行,后续从第一类任务中的至少一个任务组中确定预执行目标任务组,作为预执行目标任务,具体可包括:
首先,根据单任务延迟时长,计算第一类任务中的各个任务组的单组任务延迟时长。每个任务组的单组任务延迟时长等于该任务组中所有单任务延迟时长的加和。
然后,根据单任务理论可执行时长,计算第一类任务中的各个任务组的单组任务理论可执行时长。单组任务理论可执行时长为该任务组总所有任务单任务理论可执行时长中的最小值。
之后,根据单任务预计执行时长、以及当前可用执行机的数量,计算第一类任务中的各个任务组的单组任务预计执行时长。计算单组任务预计执行时长可以是,将该组中所有任务的单任务预计执行时长求和后再除以可用执行机的数量得到。
根据各个任务组的单组任务延迟时长、单组任务理论可执行时长、单组任务预计执行时长,从第一类任务中的至少一个任务组中确定预执行目标任务组。
上述操作具体可以是:首先从至少一个任务组中确定可选任务组,其中可选任务组为:单组任务预计执行时长小于等于单组任务理论可执行时长的任务组;然后将可选任务组中,单组任务延迟时长满足预设筛选条件的任务组,确定为预执行目标任务组。其中,可选任务组由于其单组任务预计执行时长小于等于单组任务理论可执行时长,表明这些任务在单独执行的情况下,在理论可执行时长的时间窗口内,任务可以被执行完毕。将单组任务延迟时长满足预设筛选条件的任务组,确定为预执行目标任务组,例如可以是选取单组任务延迟时长最长的任务组,将其确定为预执行目标任务组优先执行。
上述操作具体还可以是:按照各个任务组的单组任务延迟时长,首先取延时排名第一的任务组,判断当前任务是否可以在理论可执行时长的时间窗口内执行完毕(即判断单组任务预计执行时长是否小于等于单组任务理论可执行时长),若满足条件,则将其确定为预执行目标任务组优先执行,若不满足,则取延时排名第二的任务,判断当前任务是否可以在理论可执行时长的时间窗口内执行完毕,若满足条件,则将其确定为预执行目标任务组优先执行,若不满足,则取延时排名第三的任务进行判断……直至确定预执行目标任务组。
图4示意性示出了根据本公开上述实施例的任务执行方法的流程图。以下,结合图4,示例性说明本公开实施例的上述任务执行方法。
如图4所示,首先,获取当前可用执行机数量M,在当前可用执行机数量M大于0的情况下,获取初始待执行任务队列。
之后,获取与初始待执行任务队列关联的第三方测试环境列表,以及各个第三方测试环境的当前服务状态,获取到当前服务状态为可用的第三方联调测试环境清单,通过对当前待执行任务队列中的自动化执行任务进行扫描,获取到需要使用当前服务状态为可用的第三方联调测试环境的待执行状态的任务队列,组成目标1待执行任务队列,判断目标1待执行任务队列任务数量是否为0,当任务数量为0时,等待下一个扫描周期,当任务数量>0时,执行如下动作。
对目标1待执行任务队列中每个任务对应的内部测试环境维护计划进行扫描,计算得到在内部测试环境维护开始时间之前到当前时间点的时间窗口,形成当前时间点待执行任务队列中每个任务的单任务理论可执行窗口时长Win_time。
对目标1待执行任务队列中每个任务的任务类别的计划提交执行时间(Plan_time)与当前的系统时间进行计算,获取每个任务当前的单任务延迟时长delay_time,单位为秒。
对目标1待执行任务队列中每个任务当前的延期时长进行统计,按照分组G和独立D两种类别分类计算,获取到分组任务以及独立任务两种类别的待执行任务对应的平均延迟时长,即将所有分组任务的单任务延迟时长加和再求平均,得到分组类任务的平均延迟时长delay_time_A_G;将所有独立任务的单任务延迟时长加和再求平均,得到独立类任务的平均延迟时长delay_time_A_D。
在delay_time_A_G大于delay_time_A_D的情况下,确定第一类任务(分组类任务)优先执行,后续可从第一类任务中的至少一个任务组中确定预执行目标任务组,作为预执行目标任务。
对目标1待执行队列中任务状态为待执行,且执行任务队列按照任务延迟时长delay_time从大到小进行排序,并去除掉执行任务提交管理模块中反馈的不在维护期中但服务不可用的系统所涉及到的脚本队列后,获取到有序的目标2任务队列,即确定了最终的目标待执行任务队列。
具体地,从第一类任务中的至少一个任务组中确定预执行目标任务组,作为预执行目标任务包括:
首先,获取当前时间段中可用的空闲执行机数量M,从目标待执行任务队列中以每个独立的分组为单位,逐个扫描每个组G中任务数量Y(Y>=2),以及每个组中任务的预计执行所需时长X,获取到每个组在当前空闲执行机数量下能够完成执行所需时长TGm(TGm=(X1+X2+X3+X4+X5+Xy)/M),并选取时间最短的单任务理论可执行时长作为整个任务组的理论可执行时长TGn,其中TGn=MIN(Win_time1,Win_time2,Win_time3,..,Win_timey)。
之后,从目标待执行任务队列中中以每个独立的分组为单位,先获取delay_time最大的分组G1,当分组任务个数=0时,直接执行任务提交,输出M个独立任务执行,当分组任务数量大于0时,执行下述判断操作。
将TGm和TGn进行比较:
当TGm小于TGn时,说明当前空闲的执行机在对应分组G1组任务的环境维护前可以执行完,当前G1组的任务可以提交执行,对应输出待执行任务清单,并提交对应的执行任务到当前空闲的M台执行机上执行。
当TGm大于等于TGn时,说明当前空闲的执行机在对应分组G1任务的环境维护前执行不完,当前G1组的任务不能提交执行,则在目标待执行任务队列中继续分析delay_time第2长的分组G2组的任务情况,如果G2组的任务也无法满足的话,继续判断,直到把所有的分组任务全部扫描完。都扫描完后如果还没有满足条件的,则本次扫描不提交任何自动化测试脚本执行,等待进入下一轮扫描周期,直至确定最终的预执行目标任务组,并提交执行。
提交执行过程中,当获取到执行任务为分组任务G时,将对应的M台执行机置为占用,对应的分组的自动化脚本任务置为预执行,逐个将对应分组的Y个预执行状态的任务全部执行完成后,释放M台执行机为空闲状态。
在任务执行的过程中,对当前正在自动化执行平台中执行的自动化任务进行监控跟踪,获取执行结果自动抓取自动化执行系统页面上对应记录的开始执行时间,结束执行时间以及执行结果信息,并调用日志记录模块,记录相应的调度信息。
在任务执行结束后,记录通过该装置提交执行的第三方联调测试对应的自动化测试脚本执行的提交执行时间、执行完成时间、以及执行结果信息,生成对应的测试结果word/excel文件报告,如果是分组类任务则将本分组中任务全部执行完成后生成一份测试报告,供测试人员查阅,便于对整个版本联调测试的验证结果进行统计分析。
根据本公开的实施例,在delay_time_A_G小于等于delay_time_A_D的情况下,确定第二类任务(独立类任务)优先执行,后续可从第二类任务中确定至少一个目标第二类任务,作为预执行目标任务。
进一步地,独立类任务优先执行的情况下,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从第二类任务中确定至少一个目标第二类任务包括:
根据单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,计算可执行任务的目标数量;
根据单任务延迟时长,确定第二类任务中各任务的优先级;
根据各任务的优先级,从第二类任务中确定目标数量个第二类任务,作为至少一个目标第二类任务。
上述方法例如可以是:根据单任务理论可执行时长,选取单任务理论可执行时长最短的时间,作为当前时间距离内部系统环境维护开始之前的时间窗口,例如得到还有1个小时的时间窗口。之后根据单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,计算可执行任务的目标数量,例如可以是:每个任务的预计执行时长为半小时,当前空闲的执行机有5台,计算得到平均每台机器在1小时的时间窗口内可以执行两个任务,则5台执行机在1小时的时间窗口内可以执行10个任务,即计算得到可执行任务的目标数量为10。然后,根据单任务延迟时长由大到小进行排序,得到第二类任务中各任务的优先级,延迟时长越长,优先级越高。最后根据各任务的优先级,从第二类任务中确定目标数量个第二类任务,作为至少一个目标第二类任务,例如可以是根据可执行任务的目标数量为10,选取延时排名前10位的任务作为预执行目标任务。
进一步地,确定独立任务的预执行目标任务后,可以将预执行目标任务提交至可用执行机上执行,执行完成时释放执行机为空闲状态。提交执行时探测所提交执行任务内部环境服务情况,如果服务可用则提交执行。
基于上述任务执行方法,本公开还提供了一种任务执行装置。以下将结合图5对该装置进行详细描述。
图5示意性示出了根据本公开实施例的任务执行装置的结构框图。
如图5所示,任务执行装置500,包括第一确定模块501、计算模块502、获取模块503、第二确定模块504和分配模块505。
其中,第一确定模块501,用于确定目标待执行任务队列;
计算模块502,用于计算目标待执行任务队列中的任务的单任务延迟时长、单任务理论可执行时长,其中单任务理论可执行时长用于表征由当前时间至环境预定维护时间之间的时间窗口,其中环境预定维护时间为与任务关联的内部环境开始维护的时间;
获取模块503,用于获取当前可用执行机的数量、目标待执行任务队列中的任务的单任务预计执行时长;
第二确定模块504,用于根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从目标待执行任务队列中确定预执行目标任务;以及
分配模块505,用于将预执行目标任务分配至当前可用执行机上执行。
根据本公开的实施例,通过本公开实施例的任务执行装置500,可实现从目标待执行任务队列中确定合理的预执行目标任务,以便这些任务都被有效执行。在确定哪些任务可以提交执行的过程中,通过计算模块502、获取模块503、第二确定模块504实现了确定合理的预执行目标任务的目的,在这个过程中综合考虑了延迟时长、理论可执行时长、预计执行时长、可用执行机的数量的多种因素的影响,保证了提交执行的任务都可以被有效执行。避免了在距离自己内部测试环境计划维护期较短的情况下,时长不足以满足自动化测试脚本执行完成所需时间时,导致的脚本执行失败的问题;避免了待执行队列中某些自动化测试脚本对应的环境维护期快到时,无法智能识别及时自动调整调度方式的问题,达到了优先保障测试环境可用周期短的自动化测试执行任务完成的目的。避免了内部被测环境不可用时因无法动态监测对应的服务状态,仍然提交自动化测试脚本执行,自动化测试脚本执行失败,导致无效的测试执行资源浪费的问题。
根据本公开的实施例,其中,目标待执行任务队列中的任务包括可组合执行的第一类任务和可独立执行的第二类任务,其中第一类任务包括至少一个任务组;预执行目标任务为第一类任务中的其中一个任务组、或者为第二类任务中的至少一个。
根据本公开的实施例,其中,第二确定模块包括第一确定单元和第二确定单元。
其中,第一确定单元,用于在根据单任务延迟时长,确定第一类任务优先执行的情况下,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从第一类任务中的至少一个任务组中确定预执行目标任务组,作为预执行目标任务;以及
第二确定单元,用于在根据单任务延迟时长,确定第二类任务优先执行的情况下,根据单任务延迟时长、单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,从第二类任务中确定至少一个目标第二类任务,作为预执行目标任务。
根据本公开的实施例,其中,第一确定单元包括第一计算子单元、第二计算子单元、第三计算子单元和第一确定子单元。
其中,第一计算子单元,用于根据单任务延迟时长,计算第一类任务中的各个任务组的单组任务延迟时长;
第二计算子单元,用于根据单任务理论可执行时长,计算第一类任务中的各个任务组的单组任务理论可执行时长;
第三计算子单元,用于根据单任务预计执行时长、以及当前可用执行机的数量,计算第一类任务中的各个任务组的单组任务预计执行时长;
第一确定子单元,用于根据各个任务组的单组任务延迟时长、单组任务理论可执行时长、单组任务预计执行时长,从第一类任务中的至少一个任务组中确定预执行目标任务组。
根据本公开的实施例,其中,第一确定子单元用于:
从至少一个任务组中确定可选任务组,其中可选任务组为:单组任务预计执行时长小于等于单组任务理论可执行时长的任务组;
将可选任务组中,单组任务延迟时长满足预设筛选条件的任务组,确定为预执行目标任务组。
根据本公开的实施例,其中,第二确定单元包括第四计算子单元、第二确定子单元、第三确定子单元。
其中,第四计算子单元,用于根据单任务理论可执行时长、单任务预计执行时长、以及当前可用执行机的数量,计算可执行任务的目标数量;
第二确定子单元,用于根据单任务延迟时长,确定第二类任务中各任务的优先级;
第三确定子单元,用于根据各任务的优先级,从第二类任务中确定目标数量个第二类任务,作为至少一个目标第二类任务。
根据本公开的实施例,其中,第一确定模块包括第一获取单元、第二获取单元、第三获取单元、第三确定单元。
其中,第一获取单元,用于获取初始待执行任务队列;
第二获取单元,用于获取与初始待执行任务队列关联的第三方测试环境列表;
第三获取单元,用于获取第三方测试环境列表中各个第三方测试环境的当前服务状态;
第三确定单元,用于从初始待执行任务队列中确定与目标第三方测试环境关联的任务,作为目标待执行任务队列,其中目标第三方测试环境为当前服务状态可用的第三方测试环境。
根据本公开的实施例,上述装置还包括第三确定模块,用于在获取当前可用执行机的数量、目标待执行任务队列中的任务的单任务预计执行时长之后:根据单任务理论可执行时长、单任务预计执行时长、当前可用执行机的数量,确定当前可用执行机的数量是否满足当前任务执行需求。
根据本公开的实施例,第一确定模块501、计算模块502、获取模块503、第二确定模块504和分配模块505中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一确定模块501、计算模块502、获取模块503、第二确定模块504和分配模块505中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一确定模块501、计算模块502、获取模块503、第二确定模块504和分配模块505中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的适于实现任务执行方法的电子设备的方框图。
如图6所示,根据本公开实施例的电子设备600包括处理器601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 603中,存储有电子设备600操作所需的各种程序和数据。处理器601、ROM602以及RAM 603通过总线604彼此相连。处理器601通过执行ROM 602和/或RAM 603中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 602和RAM 603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备600还可以包括输入/输出(I/O)接口605,输入/输出(I/O)接口605也连接至总线604。电子设备600还可以包括连接至I/O接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 602和/或RAM 603和/或ROM 602和RAM 603以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的任务执行方法。
在该计算机程序被处理器601执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分609被下载和安装,和/或从可拆卸介质611被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (12)
1.一种任务执行方法,包括:
确定目标待执行任务队列;
计算所述目标待执行任务队列中的任务的单任务延迟时长、单任务理论可执行时长,其中所述单任务理论可执行时长用于表征由当前时间至环境预定维护时间之间的时间窗口,其中所述环境预定维护时间为与所述任务关联的内部环境开始维护的时间;
获取当前可用执行机的数量、所述目标待执行任务队列中的任务的单任务预计执行时长;
根据所述单任务延迟时长、所述单任务理论可执行时长、所述单任务预计执行时长、以及所述当前可用执行机的数量,从所述目标待执行任务队列中确定预执行目标任务;以及
将所述预执行目标任务分配至所述当前可用执行机上执行。
2.根据权利要求1所述的方法,其中:
所述目标待执行任务队列中的任务包括可组合执行的第一类任务和可独立执行的第二类任务,其中所述第一类任务包括至少一个任务组;
所述预执行目标任务为所述第一类任务中的其中一个所述任务组、或者为所述第二类任务中的至少一个。
3.根据权利要求2所述的方法,其中,根据所述单任务延迟时长、所述单任务理论可执行时长、所述单任务预计执行时长、以及所述当前可用执行机的数量,从所述目标待执行任务队列中确定预执行目标任务包括:
在根据所述单任务延迟时长,确定所述第一类任务优先执行的情况下,根据所述单任务延迟时长、所述单任务理论可执行时长、所述单任务预计执行时长、以及所述当前可用执行机的数量,从所述第一类任务中的至少一个任务组中确定预执行目标任务组,作为所述预执行目标任务;以及
在根据所述单任务延迟时长,确定所述第二类任务优先执行的情况下,根据所述单任务延迟时长、所述单任务理论可执行时长、所述单任务预计执行时长、以及所述当前可用执行机的数量,从所述第二类任务中确定至少一个目标第二类任务,作为所述预执行目标任务。
4.根据权利要求3所述的方法,其中,所述根据所述单任务延迟时长、所述单任务理论可执行时长、所述单任务预计执行时长、以及所述当前可用执行机的数量,从所述第一类任务中的至少一个任务组中确定预执行目标任务组包括:
根据所述单任务延迟时长,计算所述第一类任务中的各个所述任务组的单组任务延迟时长;
根据所述单任务理论可执行时长,计算所述第一类任务中的各个所述任务组的单组任务理论可执行时长;
根据所述单任务预计执行时长、以及所述当前可用执行机的数量,计算所述第一类任务中的各个所述任务组的单组任务预计执行时长;
根据各个所述任务组的单组任务延迟时长、单组任务理论可执行时长、单组任务预计执行时长,从所述第一类任务中的至少一个任务组中确定所述预执行目标任务组。
5.根据权利要求4所述的方法,其中,所述根据各个所述任务组的单组任务延迟时长、单组任务理论可执行时长、单组任务预计执行时长,从所述第一类任务中的至少一个任务组中确定所述预执行目标任务组包括:
从所述至少一个任务组中确定可选任务组,其中所述可选任务组为:所述单组任务预计执行时长小于等于所述单组任务理论可执行时长的任务组;
将所述可选任务组中,单组任务延迟时长满足预设筛选条件的任务组,确定为所述预执行目标任务组。
6.根据权利要求3所述的方法,其中,所述根据所述单任务延迟时长、所述单任务理论可执行时长、所述单任务预计执行时长、以及所述当前可用执行机的数量,从所述第二类任务中确定至少一个目标第二类任务包括:
根据所述单任务理论可执行时长、所述单任务预计执行时长、以及所述当前可用执行机的数量,计算可执行任务的目标数量;
根据所述单任务延迟时长,确定所述第二类任务中各任务的优先级;
根据所述各任务的优先级,从所述第二类任务中确定目标数量个第二类任务,作为所述至少一个目标第二类任务。
7.根据权利要求1所述的方法,其中,所述确定目标待执行任务队列包括:
获取初始待执行任务队列;
获取与所述初始待执行任务队列关联的第三方测试环境列表;
获取所述第三方测试环境列表中各个第三方测试环境的当前服务状态;
从所述初始待执行任务队列中确定与目标第三方测试环境关联的任务,作为所述目标待执行任务队列,其中所述目标第三方测试环境为当前服务状态可用的第三方测试环境。
8.根据权利要求1所述的方法,还包括,在获取当前可用执行机的数量、所述目标待执行任务队列中的任务的单任务预计执行时长之后:
根据所述单任务理论可执行时长、所述单任务预计执行时长、所述当前可用执行机的数量,确定所述当前可用执行机的数量是否满足当前任务执行需求。
9.一种任务执行装置,包括:
第一确定模块,用于确定目标待执行任务队列;
计算模块,用于计算所述目标待执行任务队列中的任务的单任务延迟时长、单任务理论可执行时长,其中所述单任务理论可执行时长用于表征由当前时间至环境预定维护时间之间的时间窗口,其中所述环境预定维护时间为与所述任务关联的内部环境开始维护的时间;
获取模块,用于获取当前可用执行机的数量、所述目标待执行任务队列中的任务的单任务预计执行时长;
第二确定模块,用于根据所述单任务延迟时长、所述单任务理论可执行时长、所述单任务预计执行时长、以及所述当前可用执行机的数量,从所述目标待执行任务队列中确定预执行目标任务;以及
分配模块,用于将所述预执行目标任务分配至所述当前可用执行机上执行。
10.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~8中任一项所述的方法。
12.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210495731.2A CN114817050A (zh) | 2022-05-07 | 2022-05-07 | 任务执行方法及装置、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210495731.2A CN114817050A (zh) | 2022-05-07 | 2022-05-07 | 任务执行方法及装置、电子设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114817050A true CN114817050A (zh) | 2022-07-29 |
Family
ID=82513672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210495731.2A Pending CN114817050A (zh) | 2022-05-07 | 2022-05-07 | 任务执行方法及装置、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114817050A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115601195A (zh) * | 2022-10-17 | 2023-01-13 | 桂林电子科技大学(Cn) | 基于电力用户实时标签的交易双向推荐系统及其方法 |
CN116187715A (zh) * | 2023-04-19 | 2023-05-30 | 巴斯夫一体化基地(广东)有限公司 | 用于为测试任务安排执行计划的方法及装置 |
-
2022
- 2022-05-07 CN CN202210495731.2A patent/CN114817050A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115601195A (zh) * | 2022-10-17 | 2023-01-13 | 桂林电子科技大学(Cn) | 基于电力用户实时标签的交易双向推荐系统及其方法 |
CN115601195B (zh) * | 2022-10-17 | 2023-09-08 | 桂林电子科技大学 | 基于电力用户实时标签的交易双向推荐系统及其方法 |
CN116187715A (zh) * | 2023-04-19 | 2023-05-30 | 巴斯夫一体化基地(广东)有限公司 | 用于为测试任务安排执行计划的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114817050A (zh) | 任务执行方法及装置、电子设备和计算机可读存储介质 | |
US20140023185A1 (en) | Characterizing Time-Bounded Incident Management Systems | |
CN113032125A (zh) | 作业调度方法、装置、计算机系统和计算机可读存储介质 | |
CN112182089A (zh) | 基于数据仓库模型的报表生成方法、装置和设备 | |
CN1783121A (zh) | 用于执行设计自动化的方法和系统 | |
US9870265B2 (en) | Prioritizing cloud-based computing tasks according to global company and job type priority levels | |
CN110717992B (zh) | 调度模型的方法、装置、计算机系统和可读存储介质 | |
CN110764911A (zh) | 基于订单的资源调度方法、装置和控制系统 | |
CN113535439B (zh) | 业务请求处理方法、装置、设备及存储介质 | |
CN115373822A (zh) | 任务调度方法、任务处理方法、装置、电子设备和介质 | |
CN112506781B (zh) | 测试监控方法、装置、电子设备、存储介质及程序产品 | |
CN114386951A (zh) | 流程审批方法、装置、电子设备及存储介质 | |
CN113449886A (zh) | 数据处理方法、处理装置、设备及存储介质 | |
CN112835804B (zh) | 测试案例处理方法、装置、电子设备及介质 | |
CN110737572A (zh) | 大数据平台资源抢占测试方法、系统、终端及存储介质 | |
US20240029001A1 (en) | Multi-Computer Tool for Tracking and Analysis of BOT Performance | |
CN115333871B (zh) | 防火墙的运维方法及装置、电子设备和可读存储介质 | |
CN112783753B (zh) | 流数据处理系统的测试方法和装置 | |
CN113419922A (zh) | 主机批量作业运行数据的处理方法及装置 | |
CN118227289A (zh) | 任务调度方法、装置、电子设备、存储介质及程序产品 | |
CN115168238A (zh) | 测试方法、装置、设备、介质 | |
CN115080434A (zh) | 案例执行方法、装置、设备和介质 | |
CN114281362A (zh) | 云计算产品的安装方法、装置、设备、介质和程序产品 | |
CN115687002A (zh) | 数据处理方法、装置、设备、介质和程序产品 | |
CN114461527A (zh) | 测试项目管理方法、装置、设备、存储介质和程序产品 |
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 |