CN114185763A - 动态分配方法、装置、存储介质及电子设备 - Google Patents
动态分配方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114185763A CN114185763A CN202010960560.7A CN202010960560A CN114185763A CN 114185763 A CN114185763 A CN 114185763A CN 202010960560 A CN202010960560 A CN 202010960560A CN 114185763 A CN114185763 A CN 114185763A
- Authority
- CN
- China
- Prior art keywords
- test
- case
- tester
- candidate set
- determining
- 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
- 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/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉一种动态分配方法、装置、存储介质及电子设备,所述方法包括:获取测试用例集,所述测试用例集中包括每个测试用例的用例号和测试使用时长的对应关系;根据预先配置的用例关联关系、每一测试用例的测试使用时长和预设时长,对所述测试用例集中的测试用例进行分组,并根据分组结果确定测试集合;将与所述测试集合中每个元素对应的测试项目发送到测试队列;获取每一测试机的构建执行状态;按照所述测试队列中测试项目的排列顺序确定目标测试项目,并根据每一所述测试机的构建执行状态,为该目标测试项目确定目标测试机,合理分配整个项目的测试用例,并在测试过程中合理的分配测试机,从而解决资源浪费、测试效率低的问题。
Description
技术领域
本公开涉及计算机技术领域,具体地,涉及一种动态分配方法、装置、存储介质及电子设备。
背景技术
数据测试是在规定的条件下对程序进行操作,以发现程序错误。在相关技术中,在实现自动化数据测试的同时,为了控制整个项目的测试使用总时长,每当新增用例时,都需要再新建测试项目,调整每个项目的测试用例分配,以及测试机的分配。这项工作重复且琐碎,人工实现效率低下,并且在实际进行过程中由于测试机的性能配置差异、测试用例所需服务器的性能不同,存在与预期时长相差较大的情况,出现部分测试机排队、部分测试机空闲的现象,导致资源浪费,测试用例执行总时长增加,进而导致存在测试效率低的问题。
发明内容
本公开的目的是提供一种动态分配方法、装置、存储介质及电子设备,合理分配整个项目的测试用例,并在测试过程中合理的分配测试机,从而解决资源浪费、测试效率低的问题。
为了实现上述目的,第一方面,本公开提供一种动态分配方法,所述方法包括:
获取测试用例集,所述测试用例集中包括每个测试用例的用例号和测试使用时长的对应关系;
根据预先配置的用例关联关系、每一测试用例的测试使用时长和预设时长,对所述测试用例集中的测试用例进行分组,并根据分组结果确定测试集合;
将与所述测试集合中每个元素对应的测试项目发送到测试队列;
获取每一测试机的构建执行状态;
按照所述测试队列中测试项目的排列顺序确定目标测试项目,并根据每一所述测试机的构建执行状态,为该目标测试项目确定目标测试机。
可选地,所述根据预先配置的用例关联关系、每一测试用例的测试使用时长和预设时长,对所述测试用例集中的测试用例进行分组,并根据分组结果确定测试集合包括:
根据预先配置的用例关联关系,对所述测试用例集中的测试用例进行分组,并根据该分组得到的分组结果确定待分组集合,其中,所述待分组集合中包括具有用例关联关系的测试用例作为一个整体的元素,以及不具有用例关联关系的测试用例的元素;
确定所述待分组集合中与每个元素对应的测试使用总时长;
按照预设条件对所述待分组集合中的测试使用总时长小于所述预设时长的元素进行合并,以得到更新后的待分组集合,并将该更新后的待分组集合作为测试集合,其中,所述预设条件是合并结果中包括的测试用例的测试使用总时长不超过所述预设时长。
可选地,所述确定所述待分组集合中与每个元素对应的测试使用总时长包括:
为所述待分组集合中的每个元素添加时长对应关系,其中,所述待分组集合中的每个元素的时长对应关系包括与该元素对应的总时长标识和该元素中包括的所有测试用例的测试使用总时长;
遍历所述待分组集合中的每个元素,查询所述待分组集合中与每个元素对应的总时长标识,并根据与每个元素对应的总时长标识确定该元素对应的测试使用总时长。
可选地,所述将与所述测试集合中每个元素对应的测试项目发送到测试队列包括:
确定所述测试集合中每个元素中包括的所有测试用例的测试使用总时长;
根据所述测试集合中所有元素对应的测试使用总时长,按照从高到低的顺序依次将所述测试集合中的每个元素对应的测试项目发送至测试队列。
可选地,在所述构建执行状态为空闲进程数的情况下,所述按照所述测试队列中测试项目的排列顺序确定目标测试项目,并根据每一所述测试机的构建执行状态,为该目标测试项目确定目标测试机包括:
将所述测试队列中位于第一位的测试项目作为目标测试项目;
确定第二候选集合,所述第二候选集合包括从第一候选集合中筛选出的测试机的实时空闲进程数大于预设进程数的测试机所对应的空闲进程数和该测试机的设备标识组成的对应关系,所述第一候选集合中包括每一所述测试机的最大进程数和该测试机的设备标识组成的对应关系;
确定第三候选集合,所述第三候选集合中包括从所述第二候选集合中筛选出的测试机的空闲进程数大于与该测试机对应的最大进程数和预设比例之积的测试机的空闲进程数和该测试机的设备标识组成的对应关系;
根据第一候选集合、所述第二候选集合和所述第三候选集合的优先级等级,确定所述目标测试项目的目标设备标识,其中,所述第三候选集合的优先级等级大于所述第二候选集合的优先级等级,且所述第二候选集合的优先级等级大于所述第一候选集合的优先级等级;
将所述目标设备标识对应的测试机作为目标测试机。
可选地,所述根据第一候选集合、所述第二候选集合和所述第三候选集合的优先级等级,确定所述目标测试项目的目标设备标识包括:
判断所述第三候选集合中是否存在对应关系,在所述第三候选集合中存在对应关系的情况下,任意选取该第三候选集合中的一个对应关系中的设备标识作为目标设备标识;
在所述第三候选集合中不存在对应关系的情况下,判断所述第二候选集合中是否存在对应关系,在该第二候选集合中存在对应关系的情况下,任意选取该第二候选集合中的一个对应关系中的设备标识作为目标设备标识;
在所述第二候选集合中不存在对应关系的情况下,任意选取所述第一候选集合中的一个对应关系中的设备标识作为目标设备标识。
可选地,在根据第一候选集合、所述第二候选集合和所述第三候选集合的优先级等级,确定所述目标测试项目的目标设备标识之前,所述方法还包括:
按照预设时间间隔获取已分配到测试机的测试项目的运行状态;
判断所述运行状态是否为预设状态,并在至少存在一个已分配到测试机的测试项目对应的运行状态不是预设状态时,重新确定第二候选集合和第三候选集合,所述预设状态包括启动成功状态。
可选地,所述方法还包括接收测试请求。
可选地,所述方法还包括:
获取所述目标测试机返回的结果信息;
对所述结果信息进行合并,以生成所述测试请求对应的测试结果。
第二方面,本公开还提供一种动态分配装置,所述装置包括:
第一获取模块,用于获取测试用例集,所述测试用例集中包括每个测试用例的用例号和测试使用时长的对应关系;
第一确定模块,用于根据预先配置的用例关联关系、每一测试用例的测试使用时长和预设时长,对所述测试用例集中的测试用例进行分组,并根据分组结果确定测试集合;
发送模块,用于将与所述测试集合中每个元素对应的测试项目发送到测试队列;
第二获取模块,用于获取每一测试机的构建执行状态;
第二确定模块,用于按照所述测试队列中测试项目的排列顺序确定目标测试项目,并根据每一所述测试机的构建执行状态,为该目标测试项目确定目标测试机。
第三方面,本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述方法的步骤。
第四方面,本公开还提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面中任一项所述方法的步骤。
通过上述技术方案,通过依据测试用例的测试使用时长的历史数据,合理分配测试用例,并在测试过程中合理的分配测试机,从而有效地解决资源浪费、测试效率低的问题。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据本公开一示例性实施例示出的一种动态分配方法的流程图。
图2是根据本公开一示例性实施例示出的步骤S102的流程图。
图3是根据本公开一示例性实施例示出的步骤S105的流程图。
图4是根据本公开一示例性实施例示出的一种动态分配装置的结构图。
图5是根据本公开一示例性实施例示出的一种电子设备的结构图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1是根据本公开一示例性实施例示出的一种动态分配方法的流程图。参照图1,该动态分配方法例如可以应用于服务器,包括:
步骤S101,获取测试用例集。
示例地,服务器可以用于存储测试测试用例集中包括的每个测试用例的用例号和测试使用时长的对应关系。其中,测试使用时长例如可以是测试用例被执行时历史的测试使用时长。
可以理解的是,该测试用例集是一个整体项目测试所需用例的集合。为提高测试效率,需要将该集合内的测试用例进行分组,以将整体项目分为多个子项目,以便供多个测试机同时执行不同分组的对应的测试用例,提高测试效率。
其中,测试用例是指对一项特定的软件产品进行测试任务的描述。
步骤S102,根据预先配置的用例关联关系、每一测试用例的测试使用时长和预设时长,对测试用例集中的测试用例进行分组,并根据分组结果确定测试集合。
示例地,测试用例的用例关联关系是指测试用例之间的数据具有相关性。例如,测试用例1的结果是测试用例2的输入数据,则测试用例1和测试用例2则具有关联关系。用例关联关系可以包括具有相关关联的测试用例号组成的列表。例如:用例关联关系=[(1,2,5),(6,7),(3,20),…,(102,108)],其中,测试用例号1、2和5具有关联关系,测试用例号6和7具有关联关系,测试用例号3和20具有关联关系。
可以理解的是,相关的测试用例需要作为一个测试项目被同一个测试机执行。因此,在对测试用例进行分组时,需要保证具有关联关系的测试用例能被分到一组。因此,在分组时,需要预先配置的用例关联关系,对测试用例集中的测试用例进行分组。
进一步可以理解的是,为了减小后续分配测试机的分配次数,提高测试效率,在对测试用例分组时,可以将测试用例进行合并,作为一个测试项目。另外,由于每个测试用例的测试所需要的测试时长不同,为合理利用测试机并保证测试效率,使每台测试机执行的测试时长差异最小,因此,在合并过程中,需要考虑单个测试用例的测试使用时长,且合并得到的测试用例的测试使用总时长不得超过预设时长。
示例地,预设时长例如可以是30分钟,也可以是40分钟。本公开对此不作限定。
步骤S103,将与测试集合中每个元素对应的测试项目发送到测试队列。
示例地,测试集合中的每个元素包括测试用例的测试用例号和该测试用例号的测试使用时长,相应地,每个测试项目中也包括需要执行的测试用例号。根据测试集合中的每个元素包括测试用例的测试用例号,即可确定该元素对应的测试项目所需要执行的测试用例号。
可以理解的是,在测试过程中,依据测试队列中各个测试项目的排列顺序为每个测试项目分配测试机。
在测试机分配到测试项目后准备测试时,由于测试项目中包括测试用例号,则可以根据包括的测试用例号从服务器内获取各个测试用例号寻找对应的配置文件,该配置文件包括测试用例号、测试环境、输入数据、测试步骤、预期结果、测试脚本等数据。
步骤S104,获取每一测试机的构建执行状态。
示例地,测试机的构建执行状态例如可以是测试机的空闲进程数,以此为依据将测试项目分配给不同的测试机。
步骤S105,按照测试队列中测试项目的排列顺序确定目标测试项目,并根据每一测试机的构建执行状态,为该目标测试项目确定目标测试机。
示例地,依据测试队列中各个测试项目的排列顺序为每个测试项目分配测试机,排列在前的测试项目优先分配测试机。即目标测试项目即是当前测试队列中位于第一位的测试项目
可以理解的是,考虑测试机性能情况,可以将目标测试项目分配给空闲进程数较多的测试机。
在本公开实施例中,通过依据用例关联关系、每个测试用例的测试使用时长和预设时长,对测试用例集中的测试用例进行合理化的分配,并依据合理化分配后的结果确定测试集合,以使后续对该集合中每个元素对应的测试项目进行测试机的合理分配,有效地解决人工分配测试用例效率低,以及因部分测试机排队、部分测试机空闲导致的测试用例执行总时长增加的问题。
图2是根据本公开一示例性实施例示出的步骤S102的流程图。参照图2,步骤S102可以包括:
步骤S1021,根据预先配置的用例关联关系,对测试用例集中的测试用例进行分组,并根据该分组得到的分组结果确定待分组集合。
可以理解的是,相关的测试用例需要作为一个测试项目被同一个测试机执行。其中,待分组集合中包括具有用例关联关系的测试用例作为一个整体的元素,以及不具有用例关联关系的测试用例的元素。
示例地,以测试用例集=[(用例号:1,测试使用时长:2),(用例号:2,测试使用时长:20),(用例号:3,测试使用时长:10),(用例号:4,测试使用时长:35),(用例号:5,测试使用时长:5),(用例号:6,测试使用时长:25)],用例关联关系=[(1,2),(3,6)]为例,其中,用例关联关系中的数字为用例号,根据该用例关联关系对该测试用例集进行分组的思想则是将用例号1和用例号2分为一组作为一个整体元素,用例号3和用例号6分为一组作为一个整体元素,而用例号4、用例号5则分别单独作为一个分组。进而,根据分组结果得到的待分组集合=[{(用例号:1,测试使用时长:2),(用例号:2,测试使用时长:20)},{(用例号:3,测试使用时长:10),(用例号:6,测试使用时长:25)},{(用例号:4,测试使用时长:35)},{(用例号:5,测试使用时长:5)}]。
需要说明的是,本公开所列出的示例中测试使用时长的单位为分钟。
步骤S1022,确定待分组集合中与每个元素对应的测试使用总时长。
示例地,每个元素对应的测试使用总时长是每个元素包括的所有测试用例的测试使用时长之和。可以通过查询每个元素包括的每个测试用例的测试使用时长,再将查询到的每个元素包括的每个测试用例的测试使用时长进行累加,即可得到每个元素对应的测试使用总时长。
步骤S1023,按照预设条件对待分组集合中的测试使用总时长小于预设时长的元素进行合并,以得到更新后的待分组集合,并将该更新后的待分组集合作为测试集合。
示例地,其中,预设条件是合并结果中包括的测试用例的测试使用总时长不超过预设时长。
可以理解的是,在根据用例间的相关关系对测试用例集进行一次分组后,可根据每个测试用例的使用时长预设时长再对一次分组得到的分组结果进行再次分组,以在减小后续分配测试机的分配次数的同时确定各个测试机避免部分测试机排队,部分测试机空闲的现象。
另外可以理解的是,在待分组集合中存在某些元素包括的测试用例较多的情况下,其整体的测试使用总时长较长,对于该类元素,则不需要再将其与其他元素进行合并。而对于那些包括的测试用例的测试使用总时长较短的元素来说,则可以将他们进行合并,以减少服务器在后续分配测试机的分配次数,也能减少服务器在分配过程中所需要涉及的计算量,进而提高测试效率。
示例地,以得到的待分组集合=[{(用例号:1,测试使用时长:2),(用例号:2,测试使用时长:20)},{(用例号:3,测试使用时长:10),(用例号:6,测试使用时长:25)},{(用例号:4,测试使用时长:35)},{(用例号:5,测试使用时长:5)}],且以预设时长为30分钟为例,其中,元素为{(用例号:3,测试使用时长:10),(用例号:6,测试使用时长:25)}和{(用例号:4,测试使用时长:35)}的测试使用总时长均大于预设时长,则在此次并不将这两个元素与其他元素进行合并,而对于元素为{(用例号:1,测试使用时长:2),(用例号:2,测试使用时长:20)},{(用例号:5,测试使用时长:5)},由于这两个测试使用总时长均小于预设时长,则可以对该两个进行合并,根据预设条件,合并的结果包括的测试用例的测试使用总时长不超过所述预设时长,而合并{(用例号:1,测试使用时长:2),(用例号:2,测试使用时长:20)},{(用例号:5,测试使用时长:5)}这两个元素后,合并对应的测试使用总时长为27,不超过预设时长,则可以对该两个元素进行合并。因此,得到的更新后的待分组集合=[{(用例号:1,测试使用时长:2),(用例号:2,测试使用时长:20),(用例号:5,测试使用时长:5)},{(用例号:3,测试使用时长:10),(用例号:6,测试使用时长:25)},{(用例号:4,测试使用时长:35)}]。
另外若上述示例中用例号5的测试使用时长为10),则相应地,得到的更新后的待分组集合=[{(用例号:1,测试使用时长:2),(用例号:2,测试使用时长:20)},{(用例号:3,测试使用时长:10),(用例号:6,测试使用时长:25)},{(用例号:4,测试使用时长:35)},{(用例号:5,测试使用时长:10)}]。
在一种可能的实施方式中,步骤S1202可以是:首先,为待分组集合中的每个元素添加时长对应关系,其中,待分组集合中的每个元素的时长对应关系包括与该元素对应的总时长标识和该元素中包括的所有测试用例的测试使用总时长。然后,遍历待分组集合中的每个元素,查询待分组集合中与每个元素对应的总时长标识,并根据与每个元素对应的总时长标识确定该元素对应的测试使用总时长。
在本公开的实施例中,通过为待分组集合中的元素设置一对键对值(即时长对应关系),以便于后续在按照预设条件对所述待分组集合中的测试使用总时长小于所述预设时长的元素进行合并时,可直接查询元素内的总时长标识,确定对应的测试使用总时长,而不需要在具体操作时,再对元素内包括的测试用例对应的测试使用时长进行累加,为后续操作提供便利性。
在一种可能的实施方式中,步骤S103可以包括:首先,服务器确定所述测试集合中每个元素中包括的所有测试用例的测试使用总时长,服务器再根据所述测试集合中所有元素对应的测试使用总时长,按照从高到低的顺序依次将所述测试集合中的每个元素对应的测试项目发送至测试队列。
在本实施例中,每个元素对应的测试使用总时长为对该元素中每个测试用例对应的测试使用时长进行累加得到,按照测试集合里面中每个元素的测试测试使用时长,由大到小的顺序依次将所述测试集合中的每个元素对应的测试项目依次加入测试队列,优先对测试使用总时长最大的测试项目进行分配测试机,以便于优先执行测试使用总时长最大的测试项目。
图3是根据本公开一示例性实施例示出的步骤S105的流程图。在所述构建执行状态为空闲进程数的情况下,参照图3,步骤S105可以包括:
步骤S1051,将测试队列中位于第一位的测试项目作为目标测试项目。
可以理解的是,依据先入先出原则,按测试队列中各个测试项目的排列顺序,确定位于第一位的测试项目为目标测试项目。
步骤S1052,确定第二候选集合。
其中,第二候选集合包括从第一候选集合中筛选出的测试机的实时空闲进程数大于预设进程数的测试机所对应的空闲进程数和该测试机的设备标识组成的对应关系,第一候选集合中包括每一测试机的最大进程数和该测试机的设备标识组成的对应关系。
需要说明的是,预设进程数可以是0。本公开实施例对此不作限定。
示例地,设备标识唯一标识测试机。设备标识可以是测试机的IP地址。本公开对此不作限定。
步骤S1053,确定第三候选集合。
其中,第三候选集合中包括服务器从第二候选集合中筛选出的测试机的空闲进程数大于与该测试机对应的最大进程数和预设比例之积的测试机的空闲进程数和该测试机的设备标识组成的对应关系。
示例地,预设比例可以是50%,也可以是60%。本公开对此不作限定。
步骤S1054,根据第一候选集合、第二候选集合和第三候选集合的优先级等级,确定目标测试项目的目标设备标识。
需要说明的是,优先级等级表征服务器优先从等级高的集合中确定目标测试机。另外可以理解的是,等级高的集合中测试机的空闲进程数较多。因此,优先从等级高的集合中确定目标测试机。
需要说明的是,第三候选集合的优先级等级大于第二候选集合的优先级等级,且第二候选集合的优先级等级大于第一候选集合的优先级等级。
在一种可能的实施方式中,步骤S1054例如可以是:判断第三候选集合中是否存在对应关系(即判断第三集合是否为空集),在第三候选集合中存在对应关系的情况下(即非空集),任意选取该第三候选集合中的一个对应关系中的设备标识作为目标设备标识;
在第三候选集合中不存在对应关系的情况下(即空集),判断第二候选集合中是否存在对应关系(即判断第二集合是否为空集),在该第二候选集合中存在对应关系的情况下(即非空集),任意选取该第二候选集合中的一个对应关系中的设备标识作为目标设备标识;
在第二候选集合中不存在对应关系的情况下(即空集),任意选取第一候选集合中的一个对应关系中的设备标识作为目标设备标识。
在本公开实施例中,设定每个候选集合的优先级等级,使服务器优先从等级较高的候选集合中确定目标设备标识,进而根据目标设备标识确定目标测试机。由于等级较高的候选集合中的设备标识对应的测试机的空闲进程数多,因此,根据上述方法确定目标设备标识,实现将目标测试项目合理化分配至空闲进程数较多的测试机上,以达到合理化利用资源,避免出现部分测试机排队、部分测试机空闲的目的。
在另一种可能的实施方式中,每个测试项目的启动是需要时间的,而在这段时间中,这个测试项目尚未被测试机立即执行。如果这段时间不加以考虑,会导致确定的第二候选集合和第三候选集合内的元素存在问题,进而可能导致大量测试项目分配到同一台测试机上,出现部分测试机大量排队多个测试项目,部分测试机空闲的现象。
因此,在根据第一候选集合、第二候选集合和第三候选集合之间的优先级等级关系,确定目标测试项目的目标设备标识之前,按照预设时间间隔获取已分配到测试机的测试项目的运行状态;判断运行状态是否为预设状态,并在至少存在一个已分配到测试机的测试项目对应的运行状态不是预设状态时,重新确定第二候选集合和第三候选集合,预设状态包括启动成功状态。
可以理解的是,在已分配到测试机的测试项目启动成功时,则表明该目标测试项目已被测试机成功执行,而在已分配到测试机的未启动成功时,由于未启动成功的测试项目并未实际占据测试机的进程数,因此,在已分配到的测试项目未启动成功时,就确定第二候选集合和第三候选集合,将导致获取到的的各测试机空闲进程数的准确性受到影响。因而,需要在已分配到的测试项目的运行状态均为启动成功状态的情况下,再为当前目标测试项目分配测试机,,则可提高实时获取到的各测试机空闲进程数的准确性,以保证第二候选集合和第三候选集合的准确性。
示例地,预设时间间隔可以是3秒,也可以是5秒。本公开实施例对此不作限定。
在另一种可能的实施方式中,服务器接收测试请求,并在接收到该测试请求的情况下,响应该测试请求,执行获取测试用例集的步骤。
在另一种可能的实施方式中,在目标测试机对目标测试项目测试完毕后,获取目标测试机返回的结果信息,并在所有测试队列中的测试项目执行完毕后,对所有获取到的目标测试机返回的结果信息进行合并,生成测试请求对应的测试结果,以供人工对该测试结果进行分析,实现进一步对产品进行调试,实现持续集成。
基于同一发明构思,本公开实施例还提供一种动态分配装置。参照图4,该动态分配装置400包括:
第一获取模块401,用于获取测试用例集,所述测试用例集中包括每个测试用例的用例号和测试使用时长的对应关系;
第一确定模块402,用于根据预先配置的用例关联关系、每一测试用例的测试使用时长和预设时长,对所述测试用例集中的测试用例进行分组,并根据分组结果确定测试集合;
发送模块403,用于将与所述测试集合中每个元素对应的测试项目发送到测试队列;
第二获取模块404,用于获取每一测试机的构建执行状态;
第二确定模块405,用于按照所述测试队列中测试项目的排列顺序确定目标测试项目,并根据每一所述测试机的构建执行状态,为该目标测试项目确定目标测试机。
可选地,所述第一确定模块402包括:
第一确定子模块,用于根据预先配置的用例关联关系,对所述测试用例集中的测试用例进行分组,并根据该分组得到的分组结果确定待分组集合;
第二确定子模块,用于确定所述待分组集合中与每个元素对应的测试使用总时长;
第三确定子模块,用于按照预设条件对所述待分组集合中的测试使用总时长小于所述预设时长的元素进行合并,以得到更新后的待分组集合,并将该更新后的待分组集合作为测试集合。
可选地,所述第二确定子模块用于:
为所述待分组集合中的每个元素添加时长对应关系;
遍历所述待分组集合中的每个元素,查询所述待分组集合中与每个元素对应的总时长标识,并根据与每个元素对应的总时长标识确定该元素对应的测试使用总时长。
可选地,所述发送模块403包括:
总时长确定子模块,用于确定所述测试集合中每个元素中包括的所有测试用例的测试使用总时长;
发送子模块,用于根据所述测试集合中所有元素对应的测试使用总时长,按照从高到低的顺序依次将所述测试集合中的每个元素对应的测试项目发送至测试队列。
可选地,所述第二确定模块405包括:
项目发送子模块,用于将所述测试队列中位于第一位的测试项目作为目标测试项目;
第二候选集合确定子模块,用于确定第二候选集合;
第三候选集合确定子模块,用于确定第三候选集合;
设备标识确定子模块,用于根据第一候选集合、所述第二候选集合和所述第三候选集合的优先级等级,确定所述目标测试项目的目标设备标识;
设备标识发送子模块,用于将所述目标设备标识对应的测试机作为目标测试机。
可选地,所述设备标识确定子模块用于:
判断所述第三候选集合中是否存在对应关系,在所述第三候选集合中存在对应关系的情况下,任意选取该第三候选集合中的一个对应关系中的设备标识作为目标设备标识;
在所述第三候选集合中不存在对应关系的情况下,判断所述第二候选集合中是否存在对应关系,在该第二候选集合中存在对应关系的情况下,任意选取该第二候选集合中的一个对应关系中的设备标识作为目标设备标识;
在所述第二候选集合中不存在对应关系的情况下,任意选取所述第一候选集合中的一个对应关系中的设备标识作为目标设备标识。
可选地,所述第二确定模块405还包括:
运行状态确定子模块,用于按照预设时间间隔获取已分配到测试机的测试项目的运行状态;
判断子模块,用于判断所述运行状态是否为预设状态,并在至少存在一个已分配到测试机的测试项目对应的运行状态不是预设状态时,重新确定第二候选集合和第三候选集合,所述预设状态包括启动成功状态。
可选地,所述动态分配装置400还包括接收模块,用于接收测试请求。
可选地,所述动态分配装置400还包括:
结果信息获取模块,用于获取所述目标测试机返回的结果信息。
结果合并模块,对所述结果信息进行合并,以生成所述测试请求对应的测试结果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于同一发明构思,本公开实施例还提供电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述任一所述动态分配方法的步骤。
图5是根据本公开一示例性实施例示出的一种电子设备500的结构图。如图5所示,该电子设备500可以包括:处理器501,存储器502。其中,处理器501用于控制该电子设备500的整体操作,以完成上述的所述动态分配方法中的全部或部分步骤。存储器502用于存储各种类型的数据以支持在该电子设备500的操作,这些数据例如可以包括用于在该电子设备500上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器502可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-OnlyMemory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
另外,该电子设备500还可以包括电源组件503和通信组件504,该电源组件503可以被配置为执行电子设备500的电源管理。该通信组件504可以被配置为实现电子设备500的通信,例如,有线或无限通信。此外,该电子设备500还可以包括输入/输入(I/O)接口505。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的动态分配方法中的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器502,上述程序指令可由电子设备500的处理器501执行以完成上述的动态分配方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的动态分配方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (12)
1.一种动态分配方法,其特征在于,所述方法包括:
获取测试用例集,所述测试用例集中包括每个测试用例的用例号和测试使用时长的对应关系;
根据预先配置的用例关联关系、每一测试用例的测试使用时长和预设时长,对所述测试用例集中的测试用例进行分组,并根据分组结果确定测试集合;
将与所述测试集合中每个元素对应的测试项目发送到测试队列;
获取每一测试机的构建执行状态;
按照所述测试队列中测试项目的排列顺序确定目标测试项目,并根据每一所述测试机的构建执行状态,为该目标测试项目确定目标测试机。
2.根据权利要求1所述的方法,其特征在于,所述根据预先配置的用例关联关系、每一测试用例的测试使用时长和预设时长,对所述测试用例集中的测试用例进行分组,并根据分组结果确定测试集合包括:
根据预先配置的用例关联关系,对所述测试用例集中的测试用例进行分组,并根据该分组得到的分组结果确定待分组集合,其中,所述待分组集合中包括具有用例关联关系的测试用例作为一个整体的元素,以及不具有用例关联关系的测试用例的元素;
确定所述待分组集合中与每个元素对应的测试使用总时长;
按照预设条件对所述待分组集合中的测试使用总时长小于所述预设时长的元素进行合并,以得到更新后的待分组集合,并将该更新后的待分组集合作为测试集合,其中,所述预设条件是合并结果中包括的测试用例的测试使用总时长不超过所述预设时长。
3.根据权利要求2所述的方法,其特征在于,所述确定所述待分组集合中与每个元素对应的测试使用总时长包括:
为所述待分组集合中的每个元素添加时长对应关系,其中,所述待分组集合中的每个元素的时长对应关系包括与该元素对应的总时长标识和该元素中包括的所有测试用例的测试使用总时长;
遍历所述待分组集合中的每个元素,查询所述待分组集合中与每个元素对应的总时长标识,并根据与每个元素对应的总时长标识确定该元素对应的测试使用总时长。
4.根据权利要求1所述的方法,其特征在于,所述将与所述测试集合中每个元素对应的测试项目发送到测试队列包括:
确定所述测试集合中每个元素中包括的所有测试用例的测试使用总时长;
根据所述测试集合中所有元素对应的测试使用总时长,按照从高到低的顺序依次将所述测试集合中的每个元素对应的测试项目发送至测试队列。
5.根据权利要求1所述的方法,其特征在于,在所述构建执行状态为空闲进程数的情况下,所述按照所述测试队列中测试项目的排列顺序确定目标测试项目,并根据每一所述测试机的构建执行状态,为该目标测试项目确定目标测试机包括:
将所述测试队列中位于第一位的测试项目作为目标测试项目;
确定第二候选集合,所述第二候选集合包括从第一候选集合中筛选出的测试机的实时空闲进程数大于预设进程数的测试机所对应的空闲进程数和该测试机的设备标识组成的对应关系,所述第一候选集合中包括每一所述测试机的最大进程数和该测试机的设备标识组成的对应关系;
确定第三候选集合,所述第三候选集合中包括从所述第二候选集合中筛选出的测试机的空闲进程数大于与该测试机对应的最大进程数和预设比例之积的测试机的空闲进程数和该测试机的设备标识组成的对应关系;
根据第一候选集合、所述第二候选集合和所述第三候选集合的优先级等级,确定所述目标测试项目的目标设备标识,其中,所述第三候选集合的优先级等级大于所述第二候选集合的优先级等级,且所述第二候选集合的优先级等级大于所述第一候选集合的优先级等级;
将所述目标设备标识对应的测试机作为目标测试机。
6.根据权利要求5所述的方法,其特征在于,所述根据第一候选集合、所述第二候选集合和所述第三候选集合的优先级等级,确定所述目标测试项目的目标设备标识包括:
判断所述第三候选集合中是否存在对应关系,在所述第三候选集合中存在对应关系的情况下,任意选取该第三候选集合中的一个对应关系中的设备标识作为目标设备标识;
在所述第三候选集合中不存在对应关系的情况下,判断所述第二候选集合中是否存在对应关系,在该第二候选集合中存在对应关系的情况下,任意选取该第二候选集合中的一个对应关系中的设备标识作为目标设备标识;
在所述第二候选集合中不存在对应关系的情况下,任意选取所述第一候选集合中的一个对应关系中的设备标识作为目标设备标识。
7.根据权利要求5或6所述的方法,其特征在于,在根据第一候选集合、所述第二候选集合和所述第三候选集合的优先级等级,确定所述目标测试项目的目标设备标识之前,所述方法还包括:
按照预设时间间隔获取已分配到测试机的测试项目的运行状态;
判断所述运行状态是否为预设状态,并在至少存在一个已分配到测试机的测试项目对应的运行状态不是预设状态时,重新确定第二候选集合和第三候选集合,所述预设状态包括启动成功状态。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括接收测试请求。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
获取所述目标测试机返回的结果信息;
对所述结果信息进行合并,以生成所述测试请求对应的测试结果。
10.一种动态分配装置,其特征在于,所述装置包括:
第一获取模块,用于获取测试用例集,所述测试用例集中包括每个测试用例的用例号和测试使用时长的对应关系;
第一确定模块,用于根据预先配置的用例关联关系、每一测试用例的测试使用时长和预设时长,对所述测试用例集中的测试用例进行分组,并根据分组结果确定测试集合;
发送模块,用于将与所述测试集合中每个元素对应的测试项目发送到测试队列;
第二获取模块,用于获取每一测试机的构建执行状态;
第二确定模块,用于按照所述测试队列中测试项目的排列顺序确定目标测试项目,并根据每一所述测试机的构建执行状态,为该目标测试项目确定目标测试机。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-9中任一项所述方法的步骤。
12.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-9中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010960560.7A CN114185763A (zh) | 2020-09-14 | 2020-09-14 | 动态分配方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010960560.7A CN114185763A (zh) | 2020-09-14 | 2020-09-14 | 动态分配方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114185763A true CN114185763A (zh) | 2022-03-15 |
Family
ID=80601228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010960560.7A Pending CN114185763A (zh) | 2020-09-14 | 2020-09-14 | 动态分配方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114185763A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114911714A (zh) * | 2022-06-16 | 2022-08-16 | 深信服科技股份有限公司 | 一种推算测试资源的方法、装置、电子设备及介质 |
CN116542503A (zh) * | 2023-07-07 | 2023-08-04 | 深圳市鑫典金光电科技有限公司 | 一种基于人工智能的性能测试分配方法、系统及介质 |
CN116755953A (zh) * | 2023-08-22 | 2023-09-15 | 北京象帝先计算技术有限公司 | 测试结果分组方法、装置、电子设备及可读存储介质 |
-
2020
- 2020-09-14 CN CN202010960560.7A patent/CN114185763A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114911714A (zh) * | 2022-06-16 | 2022-08-16 | 深信服科技股份有限公司 | 一种推算测试资源的方法、装置、电子设备及介质 |
CN116542503A (zh) * | 2023-07-07 | 2023-08-04 | 深圳市鑫典金光电科技有限公司 | 一种基于人工智能的性能测试分配方法、系统及介质 |
CN116542503B (zh) * | 2023-07-07 | 2024-02-02 | 深圳市鑫典金光电科技有限公司 | 一种基于人工智能的性能测试分配方法、系统及介质 |
CN116755953A (zh) * | 2023-08-22 | 2023-09-15 | 北京象帝先计算技术有限公司 | 测试结果分组方法、装置、电子设备及可读存储介质 |
CN116755953B (zh) * | 2023-08-22 | 2023-12-19 | 北京象帝先计算技术有限公司 | 测试结果分组方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108268372B (zh) | Mock测试处理方法、装置、存储介质和计算机设备 | |
CN114185763A (zh) | 动态分配方法、装置、存储介质及电子设备 | |
CN107688496B (zh) | 任务分布式处理方法、装置、存储介质和服务器 | |
US8572621B2 (en) | Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria | |
WO2019037203A1 (zh) | 应用程序的性能测试方法、装置、计算机设备和存储介质 | |
CN108600034B (zh) | 业务压力管理方法、装置、设备、系统及存储介质 | |
CN110457197B (zh) | 服务测试方法、装置、计算机设备和存储介质 | |
CN107682417B (zh) | 一种数据节点的任务分配方法和装置 | |
CN107786593A (zh) | 任务部署方法、实例部署方法、装置及设备 | |
CN108763089B (zh) | 一种测试方法、装置及系统 | |
CN108052440B (zh) | 对业务系统操作逻辑的修正方法、装置、设备和存储介质 | |
CN111445206A (zh) | 工作流控制方法和系统 | |
CN111163140A (zh) | 资源获取和分配的方法、装置和计算机可读存储介质 | |
CN111045879A (zh) | 压力测试报告的生成方法、装置及存储介质 | |
CN108733545B (zh) | 一种压力测试方法及装置 | |
CN111984527A (zh) | 软件的性能测试方法、装置、设备和介质 | |
CN111966556A (zh) | 性能压测方法、装置及服务器和计算机可读存储介质 | |
CN106775975B (zh) | 进程调度方法及装置 | |
CN111338926A (zh) | 补丁的测试方法、装置及电子设备 | |
CN114443603A (zh) | 一种交易日志的回放方法、装置、计算机设备及介质 | |
US20220206836A1 (en) | Method and Apparatus for Processing Virtual Machine Migration, Method and Apparatus for Generating Virtual Machine Migration Strategy, Device and Storage Medium | |
CN110825533B (zh) | 一种数据发射方法及装置 | |
CN117033170A (zh) | 测试任务分配方法、装置、设备、存储介质和程序产品 | |
CN115221041A (zh) | 多设备的测试方法、装置、电子设备及存储介质 | |
CN111078378A (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 |