CN105117289B - 基于云测试平台的任务分配方法、装置及系统 - Google Patents

基于云测试平台的任务分配方法、装置及系统 Download PDF

Info

Publication number
CN105117289B
CN105117289B CN201510642494.8A CN201510642494A CN105117289B CN 105117289 B CN105117289 B CN 105117289B CN 201510642494 A CN201510642494 A CN 201510642494A CN 105117289 B CN105117289 B CN 105117289B
Authority
CN
China
Prior art keywords
equipment
device identification
task
test
test assignment
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
Application number
CN201510642494.8A
Other languages
English (en)
Other versions
CN105117289A (zh
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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510642494.8A priority Critical patent/CN105117289B/zh
Publication of CN105117289A publication Critical patent/CN105117289A/zh
Application granted granted Critical
Publication of CN105117289B publication Critical patent/CN105117289B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于云测试平台的任务分配方法、装置及系统,能够将云测试平台中的测试任务合理地分配给各个设备执行。该方法包括:监测云测试平台中各个设备的状态,每当监测到从运行状态转变为空闲状态的设备时,将设备加入与其设备标识对应的设备空闲队列;每当接收到测试任务后,根据测试任务中包含的设备标识查找与该设备标识对应的设备空闲队列;当设备空闲队列中有可用设备时,将测试任务分配给可用设备,并将可用设备从设备空闲队列中删除。通过本发明中的方法、装置及系统,能够根据测试任务主动查找空闲设备,从而对平台中的各个设备进行合理的任务分配,使得所有任务能够高效执行。

Description

基于云测试平台的任务分配方法、装置及系统
技术领域
本发明涉及互联网技术领域,具体涉及一种基于云测试平台的任务分配方法、装置及系统。
背景技术
云测试是一种基于云计算的新型测试方案,其能够提供一套完整的测试环境,测试人员利用虚拟桌面等手段登陆该测试环境即可立即展开测试。通过云测试方案,将软硬件安装、环境配置以及环境维护等代价转移给了云测试平台的提供者,使得测试人员直接利用云测试平台中提供的软硬件配置就能快速完成测试。通过云测试方案能够显著节约测试成本、且大幅提高测试效率。
由于云测试平台中包含海量的设备,且可能同时处理多个来自不同用户终端的测试请求,每个测试请求往往会涉及到数十个甚至更多个设备,所以,云测试平台接收到这些测试请求后,需要根据各个测试请求中所涉及到的设备的设备标识,将测试请求中包含的测试任务分别分配给相应的设备执行。在上述过程中,由于涉及到大量的测试任务以及海量的设备,如果任务分配不合理,很可能会造成某些测试任务因其所涉及到的设备一直没有空闲而迟迟无法执行。
因此,如何对平台中的各个设备进行合理的任务分配,使得所有任务能够高效执行成为一个亟待解决的问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于云测试平台的任务分配方法、装置及系统。
根据本发明的一个方面,提供了一种基于云测试平台的任务分配方法,其包括:监测云测试平台中各个设备的状态,每当监测到从运行状态转变为空闲状态的设备时,将设备加入与其设备标识对应的设备空闲队列;每当接收到测试任务后,根据测试任务中包含的设备标识查找与该设备标识对应的设备空闲队列;当设备空闲队列中有可用设备时,将测试任务分配给可用设备,并将可用设备从设备空闲队列中删除。
依据本发明的另一方面,提供了一种基于云测试平台的任务分配装置,其包括:监测模块,适于监测云测试平台中各个设备的状态,每当监测到从运行状态转变为空闲状态的设备时,将设备加入与其设备标识对应的设备空闲队列;查找模块,适于每当接收到测试任务后,根据测试任务中包含的设备标识查找与该设备标识对应的设备空闲队列;分配模块,适于当设备空闲队列中有可用设备时,将测试任务分配给可用设备,并将可用设备从设备空闲队列中删除。
依据本发明的又一方面,提供了一种基于云测试平台的任务分配系统,其包括:多个客户端以及上述的基于云测试平台的任务分配装置。
在本发明提供的基于云测试平台的任务分配方法、装置及系统中,测试任务能够通过设备空闲队列主动找到相关的空闲设备,因此,当接收到一个测试任务时,只要其相关的设备空闲,该测试任务就能第一时间得以执行。因此,通过本发明中的方法、装置及系统,能够根据测试任务主动查找空闲设备,从而对平台中的各个设备进行合理的任务分配,使得所有任务能够高效执行。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的基于云测试平台的任务分配方法的流程图;
图2示出了根据本发明一个具体实施例的基于云测试平台的任务分配方法的流程图;
图3示出了根据本发明一个实施例的基于云测试平台的任务分配装置的结构图;以及
图4示出了根据本发明一个实施例的基于云测试平台的任务分配系统的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种基于云测试平台的任务分配方法、装置及系统,至少能够解决现有技术中无法对云测试平台中的各个设备进行合理的任务分配,使得所有任务能够高效执行的问题。
实施例一、
图1示出了根据本发明一个实施例的基于云测试平台的任务分配方法的流程图,如图1所示,该方法包括如下步骤:
步骤S110:监测云测试平台中各个设备的状态,每当监测到从运行状态转变为空闲状态的设备时,将该设备加入与其设备标识对应的设备空闲队列。
具体地,在监测各个设备的状态时可以灵活采取多种方式。例如,在云测试平台中,每当一个设备上线后,就将其状态作为心跳包发送给服务器,即:每个上线的设备每隔一定的时间间隔就向服务器汇报一次状态,使服务器能够及时了解其当前状态。或者,每个上线的设备也可以仅在其状态发生改变时向服务器汇报,使服务器及时了解其变化后的状态。上述两种方式既可以单独使用,也可以结合使用。除了上述两种方式外,还可以由服务器通过一个专门的进程来探测各个设备的状态,总之,本领域技术人员能够通过多种方式来监测设备状态,本发明对此不作限定。每当监测到一个设备从运行状态转变为空闲状态时,将其加入预设的设备空闲队列中。其中,设备空闲队列为多个按照设备标识进行区分的队列,每个设备空闲队列对应唯一的设备标识,用于存储该设备标识所对应的所有空闲状态的设备。另外,为了防止遗漏某一设备,在本步骤中还可以先将监测到的从运行状态转变为空闲状态的设备加入预设的设备空闲总队列中,再从设备空闲总队列中取出设备并根据取出设备的设备标识将其加入对应的设备空闲队列中。
步骤S120:每当接收到测试任务后,根据测试任务中包含的设备标识查找与该设备标识对应的设备空闲队列。
其中,可以通过将用户终端发出的测试请求中包含的任务类型乘以测试请求中包含的设备数量来确定测试任务的数量,因此,每一测试任务仅由一款设备运行,根据运行该任务的设备的设备标识查找与该设备标识对应的设备空闲队列。
上述步骤S110和步骤S120之间没有严格的先后顺序,在实际情况中,可以由不同的线程并行执行。
步骤S130:当设备空闲队列中有可用设备时,将该测试任务分配给该可用设备,并将该可用设备从设备空闲队列中删除。
在上述的步骤S110-S130中,通过设备空闲队列使得测试任务能够从海量的设备中快速查找到可用的空闲设备,因此,只要平台中有能够执行该测试任务的空闲设备,该测试任务就能立即执行。具体地,通过多个设备空闲队列对空闲设备进行分类存储,每一设备空闲队列中仅存储一种设备标识所对应的空闲设备,从而能够根据设备标识迅速查找到对应的空闲设备,在云测试平台包含海量设备的应用场景中大幅提高了查询速度。另外,在本发明中还可以将一个测试请求分解为多个测试任务,每个测试任务仅由一款设备运行,因此,在分配任务时可以直接根据测试任务中包含的设备标识进行分配,由此一来,能够使多个测试任务并行分配,从而大幅提高了分配效率。
可选地,为了处理暂时因没有空闲设备而无法执行的任务,上述方法还可以进一步包括下述的步骤S140。
步骤S140:当设备空闲队列中没有可用设备时,将测试任务按照其中包含的设备标识存储到对应的任务等待队列;定期获取任务等待队列对应的设备标识,查找与获取到的设备标识对应的设备空闲队列,当设备空闲队列中有可用设备时,将任务等待队列中的任务分配给可用设备,并将可用设备从设备空闲队列中删除。
通过步骤S140,能够将暂时因没有空闲设备而无法执行的任务按照其中包含的设备标识存储到对应的任务等待队列中,通过定期查询任务等待队列及其对应的设备空闲队列,可以在设备出现空闲时及时为其分配任务,从而确保所有任务能够高效执行。具体地,由于任务等待队列也是多个按照设备标识进行区分的队列,因此,直接根据任务等待队列中的设备标识来查询相应标识的设备空闲队列,从而大幅缩小了查询范围,提高了查询速度,进而提高了任务分配的效率。
实施例二、
图2示出了本发明一个具体实施例提供的基于云测试平台的任务分配方法的流程图,如图2所示,该方法包括如下步骤:
步骤S210:根据接收到的用户终端发出的测试请求来确定测试任务。
首先,根据用户终端发出的测试请求来确定其中包含的任务类型以及设备数量。其中,任务类型包括多种,例如可以是UI遍历测试、兼容覆盖测试、安全性能测试以及脚本测试等多种类型。设备数量是指用来运行各种类型的任务的终端设备的数量。然后,将测试请求中包含的任务类型的数量乘以设备的数量就可以得到测试任务的总数量。例如,假设用户终端发出的测试请求中包含的任务类型为UI遍历测试和兼容覆盖测试,终端设备的数量为16,通过任务类型数乘以终端设备数得到一个2*16的矩阵,该矩阵中包含32个元素,每个元素分别对应一个测试任务,则该测试请求中包含的测试任务的总数量为32。
由此可见,在本发明中所说的一个测试任务,是指在一款终端设备上运行的一种类型的任务。其中,一款终端设备是由该终端设备的品牌/型号以及该终端设备上安装的系统版本号唯一标识的。例如,三星S4以及其上安装的安卓版本共同构成一款终端设备。本实施例中的终端设备的品牌包括但不限于:HTC、华为、步步高、谷歌以及金立等,系统版本号包括但不限于:4.0.3、4.1.2、4.2.1、4.2.2、4.3、4.4.2以及4.4.4等,通过上述品牌与系统版本号的组合能够定义多款不同的终端设备。
步骤S220:针对每一个测试任务,获取该测试任务中包含的设备标识。
由于一个测试任务是指在一款终端设备上运行的一种类型的任务,因此,该测试任务中包含的设备标识即为运行该任务的终端设备的设备标识。例如,假设一个测试任务为“对金立E64.2.1这一款设备的兼容覆盖情况进行测试”,则该测试任务中包含的设备标识为“金立E64.2.1”,该设备标识由品牌“金立”、型号“E6”以及系统版本号“4.2.1”这三项内容共同组成。
当一个测试请求中包含多个测试任务时,分别通过上述方式获取每一个测试任务中包含的设备标识。
步骤S230:根据测试任务中包含的设备标识查找与该设备标识对应的设备空闲队列,当设备空闲队列中有可用设备时,执行步骤S240;当设备空闲队列中没有可用设备时,执行步骤S250。
其中,设备空闲队列为多个按照设备标识进行区分的队列,每个设备空闲队列对应唯一的设备标识,用于存储该设备标识所对应的所有空闲状态的设备。由于云测试平台能够同时处理大量用户终端提交的测试请求,因此,该平台中包含海量的设备,对于每一款设备来说,往往有多个相同的设备。
表1和表2分别列出了设备空闲队列的两种可能状态:
表1
表2
假设云测试平台中共包含四款设备,每款设备部署了三个完全相同的设备,即云测试平台中共有12个设备(此数据仅为便于理解,实际情况中包含海量的设备)。表1示出了当云测试平台中没有正在执行的测试任务,因而各个设备均处于空闲状态时的设备空闲队列。从表1中可以看出,设备空闲队列共有四个,每个队列具有唯一的设备标识,用于存储该设备标识所对应的所有空闲状态的设备。表2示出了当云测试平台中有多个正在执行的测试任务时的设备空闲队列。从表2中可以看出,设备标识为“金立E6 4.2.1”的设备空闲队列为空(具体实现时,既可以将该队列设置为空队列,也可以直接将该队列删除),其中没有任何设备,则说明“金立E6 4.2.1”这一款设备全部处于运行状态;设备标识为“谷歌Nexus 44.4.4”的设备空闲队列中仅有一台设备,则说明“金立E6 4.2.1”这一款设备中的其余两台设备正处于运行状态;设备标识为“HUAWEI Y511 4.2.2”和“金立GiONEE 4.1.2”的设备空闲队列中均有三台设备,则说明这两款设备全部处于空闲状态。表1和表2中以各款设备的数量均为三台为例进行说明,在实际情况中,也可以根据各款设备的利用率来设置其数量,从而将热门设备设置为更多的数量,而将非热门设备设置为较少的数量。
假设在本步骤中,设备空闲队列如表2所示。如果测试任务中包含的设备标识为“谷歌Nexus 4 4.4.4”,则确定与该设备标识对应的设备空闲队列中有可用设备,因而执行步骤S240。如果测试任务中包含的设备标识为“金立E6 4.2.1”,则确定与该设备标识对应的设备空闲队列中没有可用设备,因而执行步骤S250。
步骤S240:将测试任务分配给设备空闲队列中的可用设备。
例如,当测试任务中包含的设备标识为“谷歌Nexus 4 4.4.4”时,与该设备标识对应的设备空闲队列中有一个可用设备“谷歌Nexus 4 4.4.4(1)”,因此,将该测试任务分配给该可用设备执行。同时,将该可用设备从设备空闲队列中删除,因此,执行本步骤后,设备标识为“谷歌Nexus 4 4.4.4”的设备空闲队列为空。
步骤S250:将测试任务按照其中包含的设备标识存储到对应的任务等待队列。
例如,当测试任务中包含的设备标识为“金立E6 4.2.1”时,与该设备标识对应的设备空闲队列中没有可用设备,因此,该测试任务暂时无法执行,这时,将该测试任务按照其中包含的设备标识“金立E6 4.2.1”存储到对应的任务等待队列。其中,任务等待队列为多个按照设备标识进行区分的队列,每个任务等待队列对应唯一的设备标识,用于存储该设备标识所对应的所有待执行的任务。表3列出了任务等待队列的一种可能状态:
表3
通过表3可以看出,由于“金立E6 4.2.1”为热门设备,其对应的设备空闲队列为空,因此,当前有三个测试任务位于设备标识为“金立E6 4.2.1”的任务等待队列中排队。
在上述各个步骤中仅以一个测试任务为例进行说明,当测试任务为多个时,分别对每个测试任务执行上述的处理步骤即可。由此可见,在上述的步骤S210至步骤S250中,每当接收到新的测试任务时,根据该测试任务中包含的设备标识查找与该设备标识对应的设备空闲队列,并从设备空闲队列中提取可用设备来执行该任务,当设备空闲队列中没有可用设备时,则将该测试任务按照其中包含的设备标识存储到对应的任务等待队列中排队。通过设备空闲队列,能够使测试任务主动找到空闲设备,因此,只要系统中有空闲设备,该测试任务就能第一时间得以执行。
另外,为了使任务等待队列中待执行的测试任务能够在平台中出现空闲设备时第一时间得以执行,本实施例中的方法还进一步包括下述的步骤S201至步骤S205。其中,下述的步骤S201至步骤S205与上述的步骤S210至步骤S250之间通过单独的进程并行执行。
步骤S201:监测云测试平台中各个设备的状态,每当监测到从运行状态转变为空闲状态的设备时,将从运行状态转变为空闲状态的设备加入预设的设备空闲总队列中。
具体地,在监测各个设备的状态时可以灵活采取多种方式。例如,在云测试平台中,每当一个设备上线后,就将其状态作为心跳包发送给服务器,即:每个上线的设备每隔一定的时间间隔就向服务器汇报一次状态,使服务器能够及时了解其当前状态。或者,每个上线的设备也可以仅在其状态发生改变时向服务器汇报,使服务器及时了解其变化后的状态。上述两种方式既可以单独使用,也可以结合使用。除了上述两种方式外,还可以由服务器通过一个专门的进程来探测各个设备的状态,总之,本领域技术人员能够通过多种方式来监测设备状态,本发明对此不作限定。
每当监测到一个设备从运行状态转变为空闲状态时,将其加入预设的设备空闲总队列中。该设备空闲总队列与上述的设备空闲队列存在如下区别:设备空闲总队列为一个存储有各种设备标识所对应的空闲设备的队列,其用于对刚刚从运行状态转变为空闲设备的设备进行临时存储。因此,当云测试平台处于初始状态时,该设备空闲总队列为空,只有当云测试平台中有设备运行起来,且有设备从运行状态转变为空闲状态时才将其加入该设备空闲总队列中,该设备空闲总队列相当于一个临时存储空闲设备的容器。
步骤S202:从设备空闲总队列中取出设备,并查找与取出设备的设备标识对应的任务等待队列。
由于设备空闲总队列用于临时存储空闲设备,因此,在云测试平台中有一个专门的进程负责探测设备空闲总队列中是否有空闲设备,每当探测到设备空闲总队列中有空闲设备时,就从该设备空闲总队列中取出设备,并查找与取出设备的设备标识对应的任务等待队列。由此可见,设置设备空闲总队列的作用在于:将从运行状态转变为空闲状态的设备集中起来查询,以防止当系统中同时出现大量从运行状态转变为空闲状态的设备时,因设备过多而遗漏某一设备的情况发生。在实际情况中,设备空闲总队列的设置并不是必须的,在本发明其他的实施例中也可以不设置设备空闲总队列,而灵活采用其他方式实现,只要能够针对每一个从运行状态转变为空闲状态的设备执行下述的各个步骤即可。
步骤S203:判断与取出设备的设备标识对应的任务等待队列中有无待执行的任务。当与取出设备的设备标识对应的任务等待队列中有待执行的任务时,执行步骤S204;当与取出设备的设备标识对应的任务等待队列中没有待执行的任务时,执行步骤S205。
步骤S204:将待执行的任务分配给该设备。
继续参照表3,如果从设备空闲总队列中取出的设备的设备标识为“金立E64.2.1”,通过查找该设备标识所对应的任务等待队列,确定有三个等待该设备执行的任务,此时,从任务等待队列中选择一个任务分配给该设备执行。当任务等待队列中有多个任务时,既可以按照队列中的先后顺序进行选择,也可以根据测试任务中包含的权重值优先选择权重值较大的测试任务,从而通过将重要性高和/或时间紧迫的测试任务设置为较高的权重值而使其能够优先执行。由此可见,通过对平台中每一个刚刚空闲下来的设备执行上述步骤,能使其迅速找到待其执行的任务。因此,每当平台中新出现一个从运行状态转变为空闲状态的设备时,只要有等待该设备执行的任务,就能使该设备第一时间得以利用。
步骤S205:将该设备加入与该设备的设备标识对应的设备空闲队列。
继续参照表3,如果从设备空闲总队列中取出的设备的设备标识为“金立GiONEE4.1.2”,通过查找该设备标识所对应的任务等待队列,确定没有等待该设备执行的任务,此时,将该设备加入与该设备的设备标识对应的设备空闲队列(设备空闲队列的具体形式可参照表2)。由于每当平台中新增一个测试任务时都会首先查询对应的设备空闲队列,因此,通过将暂时没有任务执行的设备加入到设备空闲队列中,只要平台中新出现一个能由该设备执行的测试任务,就能第一时间将该设备利用起来。
通过上述的步骤S201-S205,使空闲设备能够主动找到待其执行的任务,该过程类似于回调机制,在具体编程时可以采用回调方式来实现。具体地,当一个测试任务因暂时没有可用设备而进入任务等待队列中排队之后,只要与该测试任务相对应的设备出现了空闲就会产生一次回调过程,使该测试任务得以执行。上述回调过程可通过一个单独的线程来实现,由于平台中有大量的设备,每个空闲下来的设备都可以通过对应的线程来回调待其执行的任务,因此,具体实现时可采取多线程并行执行的方式,以提高运行效率。
综上所述,通过步骤S210-S250,测试任务能够通过设备空闲队列主动找到相关的空闲设备,因此,每当接收到一个测试任务时,只要其相关的设备空闲,该测试任务就能第一时间得以执行。通过步骤S201-S205,空闲设备能够通过任务等待队列主动找到待其执行的任务,因此,每当平台中出现一个空闲设备时,只要有其能够执行的任务,该空闲设备就能第一时间得以利用。因此,通过步骤S210-S250以及与其并行执行的步骤S201-S205,既能够根据测试任务查找空闲设备,又能够根据空闲设备查找测试任务,由此形成一个闭环,从而能够对平台中的各个设备进行合理的任务分配,使得所有设备能够有效利用、且所有任务能够高效执行。
实施例二为本发明的一个优选实施例,本领域技术人员能够理解的是,其中的部分步骤并不是必须的,例如也可以省略其中的步骤S201-S205。另外,本领域技术人员还可以对实施例一以及实施例二中的各个步骤进行各种组合或变形,例如,实施例一中的步骤S140也可以应用到实施例二中,例如,可以在实施例二的步骤S250之后进一步包括实施例一中的步骤S140中的定期查询任务等待队列的步骤。
图3示出了根据本发明一个实施例的基于云测试平台的任务分配装置300的结构图。该装置300可以通过云测试平台中的一台或多台云服务器来实现。如图3所示,该装置300包括:
监测模块31,适于监测所述云测试平台中各个设备的状态,每当监测到从运行状态转变为空闲状态的设备时,将所述设备加入与其设备标识对应的设备空闲队列;
查找模块32,适于每当接收到测试任务后,根据测试任务中包含的设备标识查找与该设备标识对应的设备空闲队列;
分配模块33,适于当所述设备空闲队列中有可用设备时,将所述测试任务分配给所述可用设备,并将所述可用设备从所述设备空闲队列中删除。
可选地,所述分配模块33进一步适于:当所述设备空闲队列中没有可用设备时,将所述测试任务按照其中包含的设备标识存储到对应的任务等待队列;定期获取所述任务等待队列对应的设备标识,查找与获取到的设备标识对应的设备空闲队列,当所述设备空闲队列中有可用设备时,将所述任务等待队列中的任务分配给所述可用设备,并将所述可用设备从所述设备空闲队列中删除。
其中,设备标识可以是以下内容中的一个或多个:设备品牌、型号以及系统版本。设备空闲队列为多个按照设备标识进行区分的队列,每个设备空闲队列对应唯一的设备标识,用于存储该设备标识所对应的所有空闲状态的设备;任务等待队列为多个按照设备标识进行区分的队列,每个任务等待队列对应唯一的设备标识,用于存储该设备标识所对应的所有待执行的任务。
可选地,查找模块32进一步适于通过将用户终端发出的测试请求中包含的任务类型乘以所述测试请求中包含的设备数量来确定所述测试任务的数量。
上述各个模块的具体工作方式可参照方法实施例中相应部分的描述,此处不再赘述。
图4示出了根据本发明一个实施例的基于云测试平台的任务分配系统的结构图。该系统至少包括:多个客户端41以及上述的基于云测试平台的任务分配装置300。
在本发明提供的基于云测试平台的任务分配方法、装置及系统中,测试任务能够通过设备空闲队列主动找到相关的空闲设备,因此,当接收到一个测试任务时,只要其相关的设备空闲,该测试任务就能第一时间得以执行;而且,空闲设备能够通过任务等待队列主动找到待其执行的任务,因此,当平台中出现一个空闲设备时,只要有其能够执行的任务,该空闲设备就能第一时间得以利用。由此可见,通过本发明中的方法、装置及系统,既能够根据测试任务查找空闲设备,又能够根据空闲设备查找测试任务,由此形成一个闭环,从而能够对平台中的各个设备进行合理的任务分配,使得所有设备能够有效利用、且所有任务能够高效执行。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的多机房存储系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (12)

1.一种基于云测试平台的任务分配方法,其包括:
监测所述云测试平台中各个设备的状态,每当监测到从运行状态转变为空闲状态的设备时,将所述设备加入与其设备标识对应的设备空闲队列;
每当接收到测试任务后,根据测试任务中包含的设备标识查找与该设备标识对应的设备空闲队列;其中,将一个测试请求分解为多个测试任务,每个测试任务由一款设备运行,该测试任务中包含的设备标识为运行该任务的终端设备的设备标识;
当所述设备空闲队列中有可用设备时,将所述测试任务分配给所述可用设备,并将所述可用设备从所述设备空闲队列中删除。
2.根据权利要求1所述的方法,其中,当所述设备空闲队列中没有可用设备时,进一步包括:
将所述测试任务按照其中包含的设备标识存储到对应的任务等待队列;
定期获取所述任务等待队列对应的设备标识,查找与获取到的设备标识对应的设备空闲队列,当所述设备空闲队列中有可用设备时,将所述任务等待队列中的任务分配给所述可用设备,并将所述可用设备从所述设备空闲队列中删除。
3.根据权利要求2所述的方法,其中,所述任务等待队列为多个按照设备标识进行区分的队列,每个任务等待队列对应唯一的设备标识,用于存储该设备标识所对应的所有待执行的任务;所述设备空闲队列为多个按照设备标识进行区分的队列,每个设备空闲队列对应唯一的设备标识,用于存储该设备标识所对应的所有空闲状态的设备。
4.根据权利要求1-3任一所述的方法,其中,接收到的测试任务的数量通过以下方式确定:将用户终端发出的测试请求中包含的任务类型的数量乘以所述测试请求中包含的设备数量,得到所述测试任务的数量。
5.根据权利要求1-3任一所述的方法,其中,所述设备标识为以下内容中的一个或多个:设备品牌、型号以及系统版本。
6.一种基于云测试平台的任务分配装置,其包括:
监测模块,适于监测所述云测试平台中各个设备的状态,每当监测到从运行状态转变为空闲状态的设备时,将所述设备加入与其设备标识对应的设备空闲队列;
查找模块,适于每当接收到测试任务后,根据测试任务中包含的设备标识查找与该设备标识对应的设备空闲队列;其中,将一个测试请求分解为多个测试任务,每个测试任务由一款设备运行,该测试任务中包含的设备标识为运行该任务的终端设备的设备标识;
分配模块,适于当所述设备空闲队列中有可用设备时,将所述测试任务分配给所述可用设备,并将所述可用设备从所述设备空闲队列中删除。
7.根据权利要求6所述的装置,其中,所述分配模块进一步适于:当所述设备空闲队列中没有可用设备时,将所述测试任务按照其中包含的设备标识存储到对应的任务等待队列;定期获取所述任务等待队列对应的设备标识,查找与获取到的设备标识对应的设备空闲队列,当所述设备空闲队列中有可用设备时,将所述任务等待队列中的任务分配给所述可用设备,并将所述可用设备从所述设备空闲队列中删除。
8.根据权利要求7所述的装置,其中,所述任务等待队列为多个按照设备标识进行区分的队列,每个任务等待队列对应唯一的设备标识,用于存储该设备标识所对应的所有待执行的任务;所述设备空闲队列为多个按照设备标识进行区分的队列,每个设备空闲队列对应唯一的设备标识,用于存储该设备标识所对应的所有空闲状态的设备。
9.根据权利要求6-8任一所述的装置,其中,所述查找模块进一步适于:通过将用户终端发出的测试请求中包含的任务类型的数量乘以所述测试请求中包含的设备数量,来确定所述测试任务的数量。
10.一种基于云测试平台的任务分配系统,其包括:多个客户端以及如权利要求6-9任一所述的任务分配装置。
11.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-5中任一项所述的基于云测试平台的任务分配方法对应的操作。
12.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-5中任一项所述的基于云测试平台的任务分配方法对应的操作。
CN201510642494.8A 2015-09-30 2015-09-30 基于云测试平台的任务分配方法、装置及系统 Active CN105117289B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510642494.8A CN105117289B (zh) 2015-09-30 2015-09-30 基于云测试平台的任务分配方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510642494.8A CN105117289B (zh) 2015-09-30 2015-09-30 基于云测试平台的任务分配方法、装置及系统

Publications (2)

Publication Number Publication Date
CN105117289A CN105117289A (zh) 2015-12-02
CN105117289B true CN105117289B (zh) 2019-05-28

Family

ID=54665290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510642494.8A Active CN105117289B (zh) 2015-09-30 2015-09-30 基于云测试平台的任务分配方法、装置及系统

Country Status (1)

Country Link
CN (1) CN105117289B (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107124209A (zh) * 2016-02-25 2017-09-01 北京博酷科技有限公司 为移动终端测试提供配合服务的云配对机系统和方法
CN107124210A (zh) * 2016-02-25 2017-09-01 北京博酷科技有限公司 通过配对机云提供配对机的方法
CN105786706B (zh) * 2016-02-26 2018-07-20 成都中云天下科技有限公司 一种真人测试系统防作弊方法及装置
CN107168250B (zh) * 2016-03-07 2019-06-04 济南兰光机电技术有限公司 一种包装检测任务的自动分配方法及服务器
CN106021095B (zh) * 2016-05-06 2018-11-30 北京邮电大学 一种基于推送机制的Android应用自动化测试方法
CN108229767B (zh) * 2016-12-09 2022-06-28 阿里巴巴集团控股有限公司 一种拣货任务分配方法、装置及系统
CN106844213A (zh) * 2017-01-21 2017-06-13 江苏千米网络科技股份有限公司 一种前端自动化测试方法及装置
CN106897218A (zh) * 2017-02-13 2017-06-27 北京趣拿软件科技有限公司 软件测试管理方法和装置
CN108509256B (zh) * 2017-02-28 2021-01-15 华为技术有限公司 调度运行设备的方法、设备和运行设备
CN108733553B (zh) * 2017-04-18 2022-03-08 北京嘀嘀无限科技发展有限公司 基于docker的测试装置的配置方法、装置和系统
CN107357720A (zh) * 2017-06-16 2017-11-17 广州云测信息技术有限公司 一种软件运行错误的测试方法及系统
CN107291621A (zh) * 2017-07-07 2017-10-24 恒生电子股份有限公司 测试用例的处理方法、处理装置、介质和电子设备
CN109271309B (zh) * 2017-07-18 2022-04-08 北京嘀嘀无限科技发展有限公司 自动化测试软件的方法及装置、服务器、设备和存储介质
CN107515804A (zh) * 2017-09-08 2017-12-26 郑州云海信息技术有限公司 一种任务机的选择方法、系统及自动化测试系统
CN108874617B (zh) * 2017-12-29 2021-09-21 北京安天网络安全技术有限公司 检测任务派发方法、装置、电子设备及存储介质
CN108881150B (zh) * 2017-12-29 2021-03-23 北京安天网络安全技术有限公司 一种检测任务的处理方法、装置、电子设备及存储介质
CN109165158B (zh) * 2018-08-03 2022-11-04 北京奇虎科技有限公司 测试用例的调度方法、装置、计算设备及计算机存储介质
CN109067748A (zh) * 2018-08-13 2018-12-21 北京奇虎科技有限公司 共享设备的使用权限分配方法、装置及电子设备
CN110032507B (zh) * 2018-12-25 2022-04-05 创新先进技术有限公司 应用程序测试方法、装置、系统、电子设备及存储介质
CN112765015A (zh) * 2021-01-07 2021-05-07 卓望数码技术(深圳)有限公司 基于终端设备的测试任务分发方法、调度终端及测试系统
CN112882939B (zh) * 2021-02-26 2022-09-02 北京百度网讯科技有限公司 自动化测试方法、装置、电子设备及存储介质
CN113723816A (zh) * 2021-08-31 2021-11-30 成都智元汇信息技术股份有限公司 一种虚拟违禁品考核信息下发的双状态判定方法及服务器
CN116974878A (zh) * 2022-03-29 2023-10-31 中兴通讯股份有限公司 测试方法、存储介质及电子装置
CN115934573A (zh) * 2023-02-28 2023-04-07 深圳开鸿数字产业发展有限公司 自动化测试方法、设备、系统及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833439A (zh) * 2010-04-20 2010-09-15 清华大学 基于分合思想的并行计算硬件结构
CN103678132A (zh) * 2013-12-18 2014-03-26 中国科学院深圳先进技术研究院 一种应用软件云测试系统
CN104572444A (zh) * 2014-12-10 2015-04-29 网易(杭州)网络有限公司 一种游戏性能云测试平台及其测试方法
CN104699616A (zh) * 2015-03-31 2015-06-10 北京奇虎科技有限公司 一种应用测试的方法、装置及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101623297B1 (ko) * 2012-04-13 2016-05-20 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 목적지 클라우드 시스템 요건들의 결정

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833439A (zh) * 2010-04-20 2010-09-15 清华大学 基于分合思想的并行计算硬件结构
CN103678132A (zh) * 2013-12-18 2014-03-26 中国科学院深圳先进技术研究院 一种应用软件云测试系统
CN104572444A (zh) * 2014-12-10 2015-04-29 网易(杭州)网络有限公司 一种游戏性能云测试平台及其测试方法
CN104699616A (zh) * 2015-03-31 2015-06-10 北京奇虎科技有限公司 一种应用测试的方法、装置及系统

Also Published As

Publication number Publication date
CN105117289A (zh) 2015-12-02

Similar Documents

Publication Publication Date Title
CN105117289B (zh) 基于云测试平台的任务分配方法、装置及系统
CN105183564B (zh) 基于云测试平台的设备调度方法、装置及系统
CN105279017B (zh) 基于云测试平台的任务分配方法、装置及系统
US11325780B2 (en) Method and device for sorting cargo
CN106371894B (zh) 一种配置方法、装置和数据处理服务器
US8893133B2 (en) Dynamic test scheduling by ordering tasks for performance based on similarities between the tasks
CN107807815B (zh) 分布式处理任务的方法和装置
CN105068855B (zh) 一种编译安卓包开发文件的方法、服务器和系统
CN105450618A (zh) 一种api服务器处理大数据的运算方法及其系统
US10002075B1 (en) Managing memory resources in a network environment in order to handle querying of logical data structures
CN109165158B (zh) 测试用例的调度方法、装置、计算设备及计算机存储介质
CN113220431B (zh) 跨云的分布式数据任务调度方法、设备及存储介质
CN109814988A (zh) 任务处理方法及系统
CN111078516A (zh) 分布式性能测试方法、装置、电子设备
CN105874426A (zh) 一种系统调用命令的批处理方法及装置
CN115686805A (zh) Gpu资源共享的方法和装置、调度gpu资源共享的方法和装置
WO2019117767A1 (en) Method, function manager and arrangement for handling function calls
CN115185697A (zh) 一种基于kubernetes的集群资源调度方法、系统、设备和存储介质
CN113051245A (zh) 用于迁移数据的方法、装置及系统
CN108833532B (zh) 基于物联网的服务处理方法、装置和系统
US10572412B1 (en) Interruptible computing instance prioritization
US20170185325A1 (en) Allocating storage in a distributed storage system
CN112711522A (zh) 一种基于docker的云测试方法、系统及电子设备
CN115629853A (zh) 一种任务调度的方法和装置
GB2504812A (en) Load balancing in a SAP (RTM) system for processors allocated to data intervals based on system load

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220714

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right