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

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

Info

Publication number
CN105279017A
CN105279017A CN201510640047.9A CN201510640047A CN105279017A CN 105279017 A CN105279017 A CN 105279017A CN 201510640047 A CN201510640047 A CN 201510640047A CN 105279017 A CN105279017 A CN 105279017A
Authority
CN
China
Prior art keywords
equipment
task
device identification
idle
waiting list
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
CN201510640047.9A
Other languages
English (en)
Other versions
CN105279017B (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 CN201510640047.9A priority Critical patent/CN105279017B/zh
Publication of CN105279017A publication Critical patent/CN105279017A/zh
Application granted granted Critical
Publication of CN105279017B publication Critical patent/CN105279017B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于云测试平台的任务分配方法、装置及***,能够对云测试平台中的各个设备进行合理的任务分配。该方法包括:接收到测试任务后,根据其中包含的设备标识查找对应的设备空闲队列,当设备空闲队列中有可用设备时,将测试任务分配给可用设备;当设备空闲队列中没有可用设备时,将测试任务按照其中包含的设备标识存储到对应的任务等待队列;以及,当云测试平台中有设备从运行状态转变为空闲状态时,查找与该设备的设备标识对应的任务等待队列,当任务等待队列中有待执行的任务时,将待执行的任务分配给该设备;当任务等待队列中没有待执行的任务时,将该设备加入与该设备的设备标识对应的设备空闲队列。

Description

基于云测试平台的任务分配方法、装置及***
技术领域
本发明涉及互联网技术领域,具体涉及一种基于云测试平台的任务分配方法、装置及***。
背景技术
云测试是一种基于云计算的新型测试方案,其能够提供一套完整的测试环境,测试人员利用虚拟桌面等手段登陆该测试环境即可立即展开测试。通过云测试方案,将软硬件安装、环境配置以及环境维护等代价转移给了云测试平台的提供者,使得测试人员直接利用云测试平台中提供的软硬件配置就能快速完成测试。通过云测试方案能够显著节约测试成本、且大幅提高测试效率。
由于云测试平台中包含海量的设备,且可能同时处理多个来自不同用户终端的测试请求,每个测试请求往往会涉及到数十个甚至更多个设备,所以,云测试平台接收到这些测试请求后,需要根据各个测试请求中所涉及到的设备的设备标识,将测试请求中包含的测试任务分别分配给相应的设备执行。在上述过程中,由于涉及到大量的测试任务以及海量的设备,如果任务分配不合理,很可能会造成某些测试任务因其所涉及到的设备一直没有空闲而迟迟无法执行,而与此同时,还可能造成某些设备一直闲置却未被有效利用。
因此,如何对平台中的各个设备进行合理的任务分配,使得所有设备能够有效利用、且所有任务能够高效执行成为一个亟待解决的问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于云测试平台的任务分配方法、装置及***。
根据本发明的一个方面,提供了一种基于云测试平台的任务分配方法,其包括:当接收到测试任务后,根据测试任务中包含的设备标识查找与该设备标识对应的设备空闲队列,当设备空闲队列中有可用设备时,将测试任务分配给可用设备;当设备空闲队列中没有可用设备时,将测试任务按照其中包含的设备标识存储到对应的任务等待队列;以及,当云测试平台中有设备从运行状态转变为空闲状态时,查找与该设备的设备标识对应的任务等待队列,当任务等待队列中有待执行的任务时,将待执行的任务分配给该设备;当任务等待队列中没有待执行的任务时,将该设备加入与该设备的设备标识对应的设备空闲队列。
依据本发明的另一方面,提供了一种基于云测试平台的任务分配装置,其包括:第一任务分配模块,适于当接收到测试任务后,根据测试任务中包含的设备标识查找与该设备标识对应的设备空闲队列,当设备空闲队列中有可用设备时,将测试任务分配给可用设备;当设备空闲队列中没有可用设备时,将测试任务按照其中包含的设备标识存储到对应的任务等待队列;以及,第二任务分配模块,适于当云测试平台中有设备从运行状态转变为空闲状态时,查找与该设备的设备标识对应的任务等待队列,当任务等待队列中有待执行的任务时,将待执行的任务分配给该设备;当任务等待队列中没有待执行的任务时,将该设备加入与该设备的设备标识对应的设备空闲队列。
依据本发明的又一方面,提供了一种基于云测试平台的任务分配***,其包括:多个客户端以及上述的基于云测试平台的任务分配装置。
在本发明提供的基于云测试平台的任务分配方法、装置及***中,测试任务能够通过设备空闲队列主动找到相关的空闲设备,因此,当接收到一个测试任务时,只要其相关的设备空闲,该测试任务就能第一时间得以执行;而且,空闲设备能够通过任务等待队列主动找到待其执行的任务,因此,当平台中出现一个空闲设备时,只要有其能够执行的任务,该空闲设备就能第一时间得以利用。由此可见,通过本发明中的方法、装置及***,既能够根据测试任务查找空闲设备,又能够根据空闲设备查找测试任务,由此形成一个闭环,从而能够对平台中的各个设备进行合理的任务分配,使得所有设备能够有效利用、且所有任务能够高效执行。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的基于云测试平台的任务分配方法的流程图;
图2示出了根据本发明一个具体实施例的基于云测试平台的任务分配方法的流程图;
图3示出了根据本发明一个实施例的基于云测试平台的任务分配装置的结构图;以及
图4示出了根据本发明一个实施例的基于云测试平台的任务分配***的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种基于云测试平台的任务分配方法、装置及***,至少能够解决现有技术中无法对云测试平台中的各个设备进行合理的任务分配,使得所有设备能够有效利用、且所有任务能够高效执行的问题。
图1示出了根据本发明一个实施例的基于云测试平台的任务分配方法的流程图,如图1所示,该方法包括如下步骤:
步骤S110:当接收到测试任务后,根据测试任务中包含的设备标识查找与该设备标识对应的设备空闲队列,当该设备空闲队列中有可用设备时,将该测试任务分配给该可用设备;当该设备空闲队列中没有可用设备时,将该测试任务按照其中包含的设备标识存储到对应的任务等待队列。
其中,设备空闲队列为多个按照设备标识进行区分的队列,每个设备空闲队列对应唯一的设备标识,用于存储该设备标识所对应的所有空闲状态的设备。可选地,接收到的测试任务的数量可以通过以下方式确定:将用户终端发出的测试请求中包含的任务类型乘以测试请求中包含的设备数量,得到要处理的测试任务的数量。由此可见,在本步骤中,能够将一个测试请求分解为一个或多个测试任务来执行,因此,在每一个测试任务中,仅由一种设备处理一种类型的任务,因此,每个测试任务中仅包含唯一的设备标识,通过该设备标识即可查找到与该设备标识相对应的设备空闲队列。其中,设备标识可以是以下内容中的一个或多个:设备品牌、型号以及***版本。
由此可见,在本步骤中,通过设备空闲队列能够使测试任务主动找到相关的空闲设备。
步骤S120:当云测试平台中有设备从运行状态转变为空闲状态时,查找与该设备的设备标识对应的任务等待队列,当该任务等待队列中有待执行的任务时,将待执行的任务分配给该设备;当该任务等待队列中没有待执行的任务时,将该设备加入与该设备的设备标识对应的设备空闲队列。
其中,任务等待队列为多个按照设备标识进行区分的队列,每个任务等待队列对应唯一的设备标识,用于存储该设备标识所对应的所有待执行的任务。由此可见,在本步骤中,通过任务等待队列能够使空闲设备主动找到待其执行的测试任务。
上述的步骤S110和步骤S120为并行执行的两个步骤,彼此之间没有执行先后,具体实现时,可以分别由两个并行的进程处理。通过本发明中的方法,既能够根据测试任务查找空闲设备,又能够根据空闲设备查找测试任务,由此形成一个闭环,从而能够对平台中的各个设备进行合理的任务分配,使得所有设备能够有效利用、且所有任务能够高效执行。
图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,既能够根据测试任务查找空闲设备,又能够根据空闲设备查找测试任务,由此形成一个闭环,从而能够对平台中的各个设备进行合理的任务分配,使得所有设备能够有效利用、且所有任务能够高效执行。
另外,可选地,为了防止在查询过程中遗漏某一设备或任务,在本发明其他的实施例中,还可以进一步地定期获取任务等待队列对应的设备标识,查找与获取到的设备标识对应的设备空闲队列,以判断设备空闲队列中是否新增了可用设备;以及,定期获取设备空闲队列对应的设备标识,查找与获取到的设备标识对应的任务等待队列,以判断任务等待队列中是否新增了可执行任务。
图3示出了根据本发明一个实施例的基于云测试平台的任务分配装置300的结构图。该装置300可以通过云测试平台中的一台或多台云服务器来实现。如图3所示,该装置300包括:
第一任务分配模块31,适于当接收到测试任务后,根据测试任务中包含的设备标识查找与该设备标识对应的设备空闲队列,当设备空闲队列中有可用设备时,将测试任务分配给可用设备;当设备空闲队列中没有可用设备时,将测试任务按照其中包含的设备标识存储到对应的任务等待队列;以及,
第二任务分配模块32,适于当云测试平台中有设备从运行状态转变为空闲状态时,查找与该设备的设备标识对应的任务等待队列,当任务等待队列中有待执行的任务时,将待执行的任务分配给该设备;当任务等待队列中没有待执行的任务时,将该设备加入与该设备的设备标识对应的设备空闲队列。
其中,设备标识可以是以下内容中的一个或多个:设备品牌、型号以及***版本。设备空闲队列为多个按照设备标识进行区分的队列,每个设备空闲队列对应唯一的设备标识,用于存储该设备标识所对应的所有空闲状态的设备;任务等待队列为多个按照设备标识进行区分的队列,每个任务等待队列对应唯一的设备标识,用于存储该设备标识所对应的所有待执行的任务。
可选地,第二任务分配模块32进一步包括:
探测子模块321,适于探测云测试平台中是否有设备从运行状态转变为空闲状态;
临时存储子模块322,适于将探测子模块321探测到的从运行状态转变为空闲状态的设备加入预设的设备空闲总队列;
查询子模块323,适于从设备空闲总队列中取出设备,并查找与取出设备的设备标识对应的任务等待队列,当任务等待队列中有待执行的任务时,将待执行的任务分配给该设备;当任务等待队列中没有待执行的任务时,将该设备加入与该设备的设备标识对应的设备空闲队列。
可选地,第一任务分配模块31进一步包括:测试任务分析子模块311,适于通过将用户终端发出的测试请求中包含的任务类型乘以所述测试请求中包含的设备数量来确定所述测试任务的数量。
上述各个模块的具体工作方式可参照方法实施例中相应部分的描述,此处不再赘述。
图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任一所述的基于云测试平台的任务分配装置。
CN201510640047.9A 2015-09-30 2015-09-30 基于云测试平台的任务分配方法、装置及*** Active CN105279017B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510640047.9A CN105279017B (zh) 2015-09-30 2015-09-30 基于云测试平台的任务分配方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510640047.9A CN105279017B (zh) 2015-09-30 2015-09-30 基于云测试平台的任务分配方法、装置及***

Publications (2)

Publication Number Publication Date
CN105279017A true CN105279017A (zh) 2016-01-27
CN105279017B CN105279017B (zh) 2019-03-05

Family

ID=55148069

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510640047.9A Active CN105279017B (zh) 2015-09-30 2015-09-30 基于云测试平台的任务分配方法、装置及***

Country Status (1)

Country Link
CN (1) CN105279017B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107124210A (zh) * 2016-02-25 2017-09-01 北京博酷科技有限公司 通过配对机云提供配对机的方法
CN107451062A (zh) * 2017-08-09 2017-12-08 百度在线网络技术(北京)有限公司 一种用户界面遍历测试方法、装置、服务器、存储介质
CN107515804A (zh) * 2017-09-08 2017-12-26 郑州云海信息技术有限公司 一种任务机的选择方法、***及自动化测试***
CN108881150A (zh) * 2017-12-29 2018-11-23 北京安天网络安全技术有限公司 一种检测任务的处理方法、装置、电子设备及存储介质
CN109165158A (zh) * 2018-08-03 2019-01-08 北京奇虎科技有限公司 测试用例的调度方法、装置、计算设备及计算机存储介质
CN109637631A (zh) * 2018-12-24 2019-04-16 杭州迪英加科技有限公司 切片处理方法、***及切片扫描装置、切片分析装置
US10261841B2 (en) 2017-04-28 2019-04-16 Beijing Didi Infinity Technology And Development Co., Ltd. System and method for task scheduling and device management
CN110083536A (zh) * 2019-04-25 2019-08-02 厦门网宿有限公司 测试资源分配方法及装置、电子设备及存储介质
CN110096323A (zh) * 2019-03-29 2019-08-06 南京大学 一种并行化安卓应用ui自动探索方法
CN110347484A (zh) * 2019-06-27 2019-10-18 上海麦克风文化传媒有限公司 一种软件编译部署过程中进行高效测试的工作方法
CN115297024A (zh) * 2022-08-19 2022-11-04 山石网科通信技术股份有限公司 网络安全设备的性能测试方法、装置及电子设备
WO2023185482A1 (zh) * 2022-03-29 2023-10-05 中兴通讯股份有限公司 测试方法、存储介质及电子装置

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 (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107124210A (zh) * 2016-02-25 2017-09-01 北京博酷科技有限公司 通过配对机云提供配对机的方法
US10261841B2 (en) 2017-04-28 2019-04-16 Beijing Didi Infinity Technology And Development Co., Ltd. System and method for task scheduling and device management
CN107451062A (zh) * 2017-08-09 2017-12-08 百度在线网络技术(北京)有限公司 一种用户界面遍历测试方法、装置、服务器、存储介质
CN107515804A (zh) * 2017-09-08 2017-12-26 郑州云海信息技术有限公司 一种任务机的选择方法、***及自动化测试***
CN108881150B (zh) * 2017-12-29 2021-03-23 北京安天网络安全技术有限公司 一种检测任务的处理方法、装置、电子设备及存储介质
CN108881150A (zh) * 2017-12-29 2018-11-23 北京安天网络安全技术有限公司 一种检测任务的处理方法、装置、电子设备及存储介质
CN109165158A (zh) * 2018-08-03 2019-01-08 北京奇虎科技有限公司 测试用例的调度方法、装置、计算设备及计算机存储介质
CN109165158B (zh) * 2018-08-03 2022-11-04 北京奇虎科技有限公司 测试用例的调度方法、装置、计算设备及计算机存储介质
CN109637631A (zh) * 2018-12-24 2019-04-16 杭州迪英加科技有限公司 切片处理方法、***及切片扫描装置、切片分析装置
CN110096323A (zh) * 2019-03-29 2019-08-06 南京大学 一种并行化安卓应用ui自动探索方法
CN110096323B (zh) * 2019-03-29 2022-03-18 南京大学 一种并行化安卓应用ui自动探索方法
CN110083536A (zh) * 2019-04-25 2019-08-02 厦门网宿有限公司 测试资源分配方法及装置、电子设备及存储介质
CN110083536B (zh) * 2019-04-25 2022-12-06 厦门网宿有限公司 测试资源分配方法及装置、电子设备及存储介质
CN110347484A (zh) * 2019-06-27 2019-10-18 上海麦克风文化传媒有限公司 一种软件编译部署过程中进行高效测试的工作方法
CN110347484B (zh) * 2019-06-27 2024-02-02 上海麦克风文化传媒有限公司 一种软件编译部署过程中进行高效测试的工作方法
WO2023185482A1 (zh) * 2022-03-29 2023-10-05 中兴通讯股份有限公司 测试方法、存储介质及电子装置
CN115297024A (zh) * 2022-08-19 2022-11-04 山石网科通信技术股份有限公司 网络安全设备的性能测试方法、装置及电子设备
CN115297024B (zh) * 2022-08-19 2024-02-06 山石网科通信技术股份有限公司 网络安全设备的性能测试方法、装置及电子设备

Also Published As

Publication number Publication date
CN105279017B (zh) 2019-03-05

Similar Documents

Publication Publication Date Title
CN105117289A (zh) 基于云测试平台的任务分配方法、装置及***
CN105279017A (zh) 基于云测试平台的任务分配方法、装置及***
CN105183564A (zh) 基于云测试平台的设备调度方法、装置及***
US9721116B2 (en) Test sandbox in production systems during productive use
CN106649630A (zh) 数据查询方法及装置
US9038059B2 (en) Automatically targeting application modules to individual machines and application framework runtimes instances
CN104915285A (zh) 一种容器进程监控方法、装置及***
CN105843819B (zh) 一种数据导出方法及装置
US10002075B1 (en) Managing memory resources in a network environment in order to handle querying of logical data structures
CN108737213B (zh) 一种基于fpga的高并行大吞吐量渗透测试***及方法
CN104580451A (zh) 实现多平台间账号同步的方法和***、及电子设备
CN110147281A (zh) 优化雪花算法在金融业务中应用的方法、装置、电子设备
CN106528065B (zh) 一种线程获取方法及设备
CN110032400A (zh) 一种加载插件的方法及电子终端
CN103839007A (zh) 一种检测异常线程的方法及***
CN105204917A (zh) 在应用程序启动时加载配置文件的方法及装置
CN103294494A (zh) 一种虚拟***自动化部署的方法和***
CN104714839A (zh) 一种控制进程生命期的方法和装置
CN104504331A (zh) 虚拟化安全检测方法与***
CN108920295A (zh) ***异常的处理方法、装置及***
CN105975306A (zh) 电子设备的应用程序启动管理方法和装置
CN106528551A (zh) 申请内存的方法和装置
CN100507842C (zh) 控制界面上控件之间关系的方法、装置及控件显示***
CN105279065A (zh) 在云测试平台中统计测试结果的方法及装置
CN107729341A (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

Effective date of registration: 20220720

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