CN105183564A - 基于云测试平台的设备调度方法、装置及系统 - Google Patents

基于云测试平台的设备调度方法、装置及系统 Download PDF

Info

Publication number
CN105183564A
CN105183564A CN201510640048.3A CN201510640048A CN105183564A CN 105183564 A CN105183564 A CN 105183564A CN 201510640048 A CN201510640048 A CN 201510640048A CN 105183564 A CN105183564 A CN 105183564A
Authority
CN
China
Prior art keywords
equipment
task
device identification
waiting list
idle
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.)
Granted
Application number
CN201510640048.3A
Other languages
English (en)
Other versions
CN105183564B (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 CN201510640048.3A priority Critical patent/CN105183564B/zh
Publication of CN105183564A publication Critical patent/CN105183564A/zh
Application granted granted Critical
Publication of CN105183564B publication Critical patent/CN105183564B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (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中可以看出,设备标识为“金立E64.2.1”的设备空闲队列为空(具体实现时,既可以将该队列设置为空队列,也可以直接将该队列删除),其中没有任何设备,则说明“金立E64.2.1”这一款设备全部处于运行状态;设备标识为“谷歌Nexus44.4.4”的设备空闲队列中仅有一台设备,则说明“金立E64.2.1”这一款设备中的其余两台设备正处于运行状态;设备标识为“HUAWEIY5114.2.2”和“金立GiONEE4.1.2”的设备空闲队列中均有三台设备,则说明这两款设备全部处于空闲状态。表1和表2中以各款设备的数量均为三台为例进行说明,在实际情况中,也可以根据各款设备的利用率来设置其数量,从而将热门设备设置为更多的数量,而将非热门设备设置为较少的数量。
假设在本步骤中,设备空闲队列如表2所示。如果测试任务中包含的设备标识为“谷歌Nexus44.4.4”,则确定与该设备标识对应的设备空闲队列中有可用设备,因而执行步骤S240。如果测试任务中包含的设备标识为“金立E64.2.1”,则确定与该设备标识对应的设备空闲队列中没有可用设备,因而执行步骤S250。
步骤S240:将测试任务分配给设备空闲队列中的可用设备。
例如,当测试任务中包含的设备标识为“谷歌Nexus44.4.4”时,与该设备标识对应的设备空闲队列中有一个可用设备“谷歌Nexus44.4.4(1)”,因此,将该测试任务分配给该可用设备执行。同时,将该可用设备从设备空闲队列中删除,因此,执行本步骤后,设备标识为“谷歌Nexus44.4.4”的设备空闲队列为空。
步骤S250:将测试任务按照其中包含的设备标识存储到对应的任务等待队列。
例如,当测试任务中包含的设备标识为“金立E64.2.1”时,与该设备标识对应的设备空闲队列中没有可用设备,因此,该测试任务暂时无法执行,这时,将该测试任务按照其中包含的设备标识“金立E64.2.1”存储到对应的任务等待队列。其中,任务等待队列为多个按照设备标识进行区分的队列,每个任务等待队列对应唯一的设备标识,用于存储该设备标识所对应的所有待执行的任务。表3列出了任务等待队列的一种可能状态:
表3
通过表3可以看出,由于“金立E64.2.1”为热门设备,其对应的设备空闲队列为空,因此,当前有三个测试任务位于设备标识为“金立E64.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,既能够根据测试任务查找空闲设备,又能够根据空闲设备查找测试任务,由此形成一个闭环,从而能够对平台中的各个设备进行合理的任务分配,使得所有设备能够有效利用、且所有任务能够高效执行。
实施例二为本发明的一个优选实施例,本领域技术人员能够理解的是,其中的部分步骤并不是必须的,例如也可以省略其中的步骤S210-S250。另外,本领域技术人员还可以对实施例一以及实施例二中的各个步骤进行各种组合或变形,例如,实施例一中的步骤S140也可以应用到实施例二中,例如,可以在实施例二的步骤S205之后进一步包括实施例一中的步骤S140中的定期查询设备空闲队列的步骤。
图3示出了根据本发明一个实施例的基于云测试平台的设备调度装置300的结构图。该装置300可以通过云测试平台中的一台或多台云服务器来实现。如图3所示,该装置300包括:
存储模块31,适于每当接收到测试任务后,将所述测试任务按照其中包含的设备标识存储到对应的任务等待队列;
查找模块32,适于监测所述云测试平台中各个设备的状态,每当监测到从运行状态转变为空闲状态的设备时,查找与所述设备的设备标识对应的任务等待队列;
分配模块33,适于当所述任务等待队列中有待执行的任务时,将所述待执行的任务分配给所述设备,并将已分配的任务从所述任务等待队列中删除。
可选地,所述分配模块33进一步适于:当所述任务等待队列中没有待执行的任务时,将所述设备加入与其设备标识对应的设备空闲队列;定期获取所述设备空闲队列对应的设备标识,查找与获取到的设备标识对应的任务等待队列,当所述任务等待队列中有待执行的任务时,将所述待执行的任务分配给所述设备空闲队列中的可用设备,并将已分配的任务从所述任务等待队列中删除。
其中,所述查找模块32具体用于:将所述从运行状态转变为空闲状态的设备加入预设的设备空闲总队列,从所述设备空闲总队列中取出设备,并查找与取出设备的设备标识对应的任务等待队列。
其中,所述存储模块31进一步用于:通过将用户终端发出的测试请求中包含的任务类型乘以所述测试请求中包含的设备数量来确定所述测试任务的数量。
其中,所述设备空闲队列为多个按照设备标识进行区分的队列,每个设备空闲队列对应唯一的设备标识,用于存储该设备标识所对应的所有空闲状态的设备;所述任务等待队列为多个按照设备标识进行区分的队列,每个任务等待队列对应唯一的设备标识,用于存储该设备标识所对应的所有待执行的任务。
上述各个模块的具体工作方式可参照方法实施例中相应部分的描述,此处不再赘述。
图4示出了根据本发明一个实施例的基于云测试平台的设备调度系统的结构图。该系统至少包括:多个客户端41以及上述的基于云测试平台的设备调度装置300。
在本发明提供的基于云测试平台的设备调度方法、装置及系统中,测试任务能够通过设备空闲队列主动找到相关的空闲设备,因此,当接收到一个测试任务时,只要其相关的设备空闲,该测试任务就能第一时间得以执行;而且,空闲设备能够通过任务等待队列主动找到待其执行的任务,因此,当平台中出现一个空闲设备时,只要有其能够执行的任务,该空闲设备就能第一时间得以利用。由此可见,通过本发明中的方法、装置及系统,既能够根据测试任务查找空闲设备,又能够根据空闲设备查找测试任务,由此形成一个闭环,从而能够对平台中的各个设备进行合理的任务分配,使得所有设备能够有效利用、且所有任务能够高效执行。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的多机房存储系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种基于云测试平台的设备调度方法,其包括:
每当接收到测试任务后,将所述测试任务按照其中包含的设备标识存储到对应的任务等待队列;
监测所述云测试平台中各个设备的状态,每当监测到从运行状态转变为空闲状态的设备时,查找与所述设备的设备标识对应的任务等待队列;
当所述任务等待队列中有待执行的任务时,将所述待执行的任务分配给所述设备,并将已分配的任务从所述任务等待队列中删除。
2.根据权利要求1所述的方法,其中,当所述任务等待队列中没有待执行的任务时,该方法进一步包括:
将所述设备加入与其设备标识对应的设备空闲队列;
定期获取所述设备空闲队列对应的设备标识,查找与获取到的设备标识对应的任务等待队列,当所述任务等待队列中有待执行的任务时,将所述待执行的任务分配给所述设备空闲队列中的可用设备,并将已分配的任务从所述任务等待队列中删除。
3.根据权利要求1或2所述的方法,其中,每当监测到从运行状态转变为空闲状态的设备时,该方法进一步包括步骤:将所述从运行状态转变为空闲状态的设备加入预设的设备空闲总队列;则所述查找与所述设备的设备标识对应的任务等待队列的步骤具体为:从所述设备空闲总队列中取出设备,并查找与取出设备的设备标识对应的任务等待队列。
4.根据权利要求1-3任一所述的方法,其中,所述设备空闲队列为多个按照设备标识进行区分的队列,每个设备空闲队列对应唯一的设备标识,用于存储该设备标识所对应的所有空闲状态的设备;
所述任务等待队列为多个按照设备标识进行区分的队列,每个任务等待队列对应唯一的设备标识,用于存储该设备标识所对应的所有待执行的任务。
5.根据权利要求1-4任一所述的方法,其中,接收到的测试任务的数量通过以下方式确定:将用户终端发出的测试请求中包含的任务类型乘以所述测试请求中包含的设备数量,得到所述测试任务的数量;并且,所述设备标识为以下内容中的一个或多个:设备品牌、型号以及系统版本。
6.一种基于云测试平台的设备调度装置,其包括:
存储模块,适于每当接收到测试任务后,将所述测试任务按照其中包含的设备标识存储到对应的任务等待队列;
查找模块,适于监测所述云测试平台中各个设备的状态,每当监测到从运行状态转变为空闲状态的设备时,查找与所述设备的设备标识对应的任务等待队列;
分配模块,适于当所述任务等待队列中有待执行的任务时,将所述待执行的任务分配给所述设备,并将已分配的任务从所述任务等待队列中删除。
7.根据权利要求6所述的装置,其中,所述分配模块进一步适于:当所述任务等待队列中没有待执行的任务时,将所述设备加入与其设备标识对应的设备空闲队列;定期获取所述设备空闲队列对应的设备标识,查找与获取到的设备标识对应的任务等待队列,当所述任务等待队列中有待执行的任务时,将所述待执行的任务分配给所述设备空闲队列中的可用设备,并将已分配的任务从所述任务等待队列中删除。
8.根据权利要求6或7所述的装置,其中,所述查找模块具体用于:将所述从运行状态转变为空闲状态的设备加入预设的设备空闲总队列,从所述设备空闲总队列中取出设备,并查找与取出设备的设备标识对应的任务等待队列。
9.根据权利要求6-8任一所述的装置,其中,所述存储模块进一步用于:通过将用户终端发出的测试请求中包含的任务类型乘以所述测试请求中包含的设备数量来确定所述测试任务的数量。
10.一种基于云测试平台的设备调度系统,其包括:多个客户端以及如权利要求6-9任一所述的设备调度装置。
CN201510640048.3A 2015-09-30 2015-09-30 基于云测试平台的设备调度方法、装置及系统 Expired - Fee Related CN105183564B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510640048.3A CN105183564B (zh) 2015-09-30 2015-09-30 基于云测试平台的设备调度方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510640048.3A CN105183564B (zh) 2015-09-30 2015-09-30 基于云测试平台的设备调度方法、装置及系统

Publications (2)

Publication Number Publication Date
CN105183564A true CN105183564A (zh) 2015-12-23
CN105183564B CN105183564B (zh) 2019-05-28

Family

ID=54905659

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510640048.3A Expired - Fee Related CN105183564B (zh) 2015-09-30 2015-09-30 基于云测试平台的设备调度方法、装置及系统

Country Status (1)

Country Link
CN (1) CN105183564B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105868628A (zh) * 2016-03-24 2016-08-17 中国科学院信息工程研究所 一种自动化样本行为采集方法及其装置、系统
CN106452830A (zh) * 2016-08-22 2017-02-22 平安科技(深圳)有限公司 测试任务执行机分配方法和装置
CN106817428A (zh) * 2017-02-13 2017-06-09 浙江风向标科技有限公司 一种离线检测的方法和装置
CN107124210A (zh) * 2016-02-25 2017-09-01 北京博酷科技有限公司 通过配对机云提供配对机的方法
CN107515804A (zh) * 2017-09-08 2017-12-26 郑州云海信息技术有限公司 一种任务机的选择方法、系统及自动化测试系统
CN107872397A (zh) * 2016-09-27 2018-04-03 阿里巴巴集团控股有限公司 压测过程中的流量调度方法、调度平台和调度系统
CN107943687A (zh) * 2017-10-30 2018-04-20 北京奇虎科技有限公司 一种设备共享方法、装置、服务器及存储介质
CN108881150A (zh) * 2017-12-29 2018-11-23 北京安天网络安全技术有限公司 一种检测任务的处理方法、装置、电子设备及存储介质
CN112765015A (zh) * 2021-01-07 2021-05-07 卓望数码技术(深圳)有限公司 基于终端设备的测试任务分发方法、调度终端及测试系统
CN113190430A (zh) * 2020-01-14 2021-07-30 阿里巴巴集团控股有限公司 云端设备的监控方法、装置和系统
CN113368494A (zh) * 2021-06-30 2021-09-10 北京爱奇艺科技有限公司 云设备分配方法、装置、电子设备及存储介质
CN114185812A (zh) * 2022-01-17 2022-03-15 创优数字科技(广东)有限公司 测试数据构造方法、装置、计算机设备和存储介质
CN118585308A (zh) * 2024-07-30 2024-09-03 苏州元脑智能科技有限公司 测试方法、装置、系统、电子设备及存储介质

Citations (5)

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

Patent Citations (5)

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

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107124210A (zh) * 2016-02-25 2017-09-01 北京博酷科技有限公司 通过配对机云提供配对机的方法
CN105868628A (zh) * 2016-03-24 2016-08-17 中国科学院信息工程研究所 一种自动化样本行为采集方法及其装置、系统
CN106452830A (zh) * 2016-08-22 2017-02-22 平安科技(深圳)有限公司 测试任务执行机分配方法和装置
WO2018036167A1 (zh) * 2016-08-22 2018-03-01 平安科技(深圳)有限公司 测试任务执行机分配方法、装置、服务器和存储介质
CN107872397A (zh) * 2016-09-27 2018-04-03 阿里巴巴集团控股有限公司 压测过程中的流量调度方法、调度平台和调度系统
CN106817428A (zh) * 2017-02-13 2017-06-09 浙江风向标科技有限公司 一种离线检测的方法和装置
CN107515804A (zh) * 2017-09-08 2017-12-26 郑州云海信息技术有限公司 一种任务机的选择方法、系统及自动化测试系统
CN107943687B (zh) * 2017-10-30 2021-07-30 北京奇虎科技有限公司 一种设备共享方法、装置、服务器及存储介质
CN107943687A (zh) * 2017-10-30 2018-04-20 北京奇虎科技有限公司 一种设备共享方法、装置、服务器及存储介质
CN108881150A (zh) * 2017-12-29 2018-11-23 北京安天网络安全技术有限公司 一种检测任务的处理方法、装置、电子设备及存储介质
CN108881150B (zh) * 2017-12-29 2021-03-23 北京安天网络安全技术有限公司 一种检测任务的处理方法、装置、电子设备及存储介质
CN113190430A (zh) * 2020-01-14 2021-07-30 阿里巴巴集团控股有限公司 云端设备的监控方法、装置和系统
CN112765015A (zh) * 2021-01-07 2021-05-07 卓望数码技术(深圳)有限公司 基于终端设备的测试任务分发方法、调度终端及测试系统
CN112765015B (zh) * 2021-01-07 2024-07-09 卓望数码技术(深圳)有限公司 基于终端设备的测试任务分发方法、调度终端及测试系统
CN113368494A (zh) * 2021-06-30 2021-09-10 北京爱奇艺科技有限公司 云设备分配方法、装置、电子设备及存储介质
CN114185812A (zh) * 2022-01-17 2022-03-15 创优数字科技(广东)有限公司 测试数据构造方法、装置、计算机设备和存储介质
CN118585308A (zh) * 2024-07-30 2024-09-03 苏州元脑智能科技有限公司 测试方法、装置、系统、电子设备及存储介质

Also Published As

Publication number Publication date
CN105183564B (zh) 2019-05-28

Similar Documents

Publication Publication Date Title
CN105117289A (zh) 基于云测试平台的任务分配方法、装置及系统
CN105183564A (zh) 基于云测试平台的设备调度方法、装置及系统
CN105279017A (zh) 基于云测试平台的任务分配方法、装置及系统
US11325780B2 (en) Method and device for sorting cargo
US8380680B2 (en) Piecemeal list prefetch
US20140379677A1 (en) Test sandbox in production systems during productive use
CN105653365A (zh) 任务处理方法及装置
CN104915285A (zh) 一种容器进程监控方法、装置及系统
EP2807556A1 (en) Application installation
CN110147281A (zh) 优化雪花算法在金融业务中应用的方法、装置、电子设备
CN104580451A (zh) 实现多平台间账号同步的方法和系统、及电子设备
US11100233B2 (en) Optimizing operating system vulnerability analysis
CN106528065B (zh) 一种线程获取方法及设备
CN110032400A (zh) 一种加载插件的方法及电子终端
CN103595770A (zh) Sdk实现文件下载的方法与装置
CN106034113A (zh) 数据处理方法及装置
CN104714839A (zh) 一种控制进程生命期的方法和装置
WO2019117767A1 (en) Method, function manager and arrangement for handling function calls
CN111338926A (zh) 补丁的测试方法、装置及电子设备
CN109783159A (zh) 基于配置信息的应用启动方法和装置
CN108920295A (zh) 系统异常的处理方法、装置及系统
CN103034545B (zh) 基于ace的通信框架和方法、及功能模块间的通信方法
CN104504330A (zh) 虚拟化安全检测方法与系统
CN110753090A (zh) 服务器集群的任务执行方法、装置、计算机设备及存储介质
CN112346952A (zh) 用于测试用例的回归测试的方法、设备和电子设备

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
TR01 Transfer of patent right

Effective date of registration: 20220712

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.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190528