CN114356750A - 测试方法、装置、计算机设备和存储介质 - Google Patents
测试方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114356750A CN114356750A CN202111509772.4A CN202111509772A CN114356750A CN 114356750 A CN114356750 A CN 114356750A CN 202111509772 A CN202111509772 A CN 202111509772A CN 114356750 A CN114356750 A CN 114356750A
- Authority
- CN
- China
- Prior art keywords
- task
- test
- current
- time period
- execution
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种测试方法、装置、计算机设备。方法包括:获取各任务执行节点对应的已有测试任务计划执行时间段和测试环境;获取当前测试任务标识对应的当前计划执行时间段和当前测试环境;当目标任务执行节点的目标测试环境与当前测试环境匹配时,从目标任务执行节点对应的已有测试任务计划执行时间段获取目标任务执行节点对应的空闲时间段;当空闲时间段与当前计划执行时间段匹配时将当前测试任务标识和当前计划执行时间段写入目标任务执行表;通过目标任务执行表使目标任务执行节点获取到当前测试任务标识和当前计划执行时间段,并在当前计划执行时间段内执行当前测试任务标识对应的当前测试任务。采用本方法能够避免资源浪费、提高测试效率。
Description
技术领域
本申请涉及自动化测试技术领域,特别是涉及一种测试方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着自动化测试的发展,出现了自动化测试技术,其通过使用自动化测试工具来执行测试任务,然后输出测试报告。但现有的自动化测试方法是当测试设备的自动化测试执行完所有预设的测试任务后,该测试设备就进入无限期的待机状态,直到下一次人工进行调度并设定新的任务,自动化测试才开始执行新的测试任务。然而,人工并不能及时调度所有空闲的设备,可能出现一台设备长时间运行而另一台设备仍处在空闲的待机状态,存在资源浪费、测试效率低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够避免资源浪费、提高测试效率的测试方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
一种测试方法,所述方法包括:
获取各个任务执行节点对应的已有测试任务计划执行时间段和测试环境;
获取当前测试任务标识对应的当前计划执行时间段和当前测试环境;
当各个任务执行节点中目标任务执行节点的目标测试环境与当前测试环境匹配时,基于目标任务执行节点对应的已有测试任务计划执行时间段获取到目标任务执行节点对应的空闲时间段;
当空闲时间段与当前计划执行时间段匹配时,将当前测试任务标识和当前计划执行时间段写入目标任务执行节点对应的目标任务执行表;
通过目标任务执行表使目标任务执行节点获取到当前测试任务标识和当前计划执行时间段,并在当前计划执行时间段内执行当前测试任务标识对应的当前测试任务。
在其中一个实施例中,在通过目标任务执行表使目标任务执行节点获取到当前测试任务标识和当前计划执行时间段,并在当前计划执行时间段内执行当前测试任务标识对应的当前测试任务之后,还包括:
获取目标任务执行节点返回的当前测试任务对应的当前测试统计结果和当前执行完成状态;
将目标任务执行表中当前测试任务标识对应的执行状态更新为当前执行完成状态,并将当前测试任务标识对应的测试统计结果更新为当前测试统计结果。
在其中一个实施例中,当各个任务执行节点中目标任务执行节点的目标测试环境与当前测试环境匹配,且基于目标任务执行节点对应的已有测试任务计划执行时间段未获取到目标任务执行节点对应的空闲时间段时,按照当前计划执行时间段获取目标任务执行节点中目标已有任务测试时间段对应的已有测试任务等级,并获取当前测试任务标识对应的当前测试任务等级;
当当前测试任务等级超过已有测试任务等级时,基于当前计划执行时间段从目标任务执行节点对应的已有测试任务计划执行时间段中确定目标已有任务标识对应的更新测试时间段;
基于目标已有任务标识将更新测试时间段写入目标任务执行节点对应的任务执行表中,以使目标任务执行节点在更新测试时间段执行目标已有任务标识对应的目标已有测试任务
在其中一个实施例中,获取各个临时测试项目标识、各个临时测试项目标识对应的调度优先级别和各个临时测试项目标识对应的临时项目计划执行时间段;
按照调度优先级别将各个临时测试项目标识和对应的临时项目计划执行时间段写入预设测试任务执行总表中;
按照调度优先级从预设测试任务执行总表中获取当前测试任务标识对应的当前计划执行时间段和当前测试环境。
一种测试装置,所述装置包括:
获取模块,用于获取各个任务执行节点对应的已有测试任务计划执行时间段和测试环境;获取当前测试任务标识对应的当前计划执行时间段和当前测试环境;
匹配模块,用于当各个任务执行节点中目标任务执行节点的目标测试环境与当前测试环境匹配时,基于目标任务执行节点对应的已有测试任务计划执行时间段获取到目标任务执行节点对应的空闲时间段;
当空闲时间段与当前计划执行时间段匹配时,将当前测试任务标识和当前计划执行时间段写入目标任务执行节点对应的目标任务执行表;
执行模块,用于通过目标任务执行表使目标任务执行节点获取到当前测试任务标识和当前计划执行时间段,并在当前计划执行时间段内执行当前测试任务标识对应的当前测试任务。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取各个任务执行节点对应的已有测试任务计划执行时间段和测试环境;
获取当前测试任务标识对应的当前计划执行时间段和当前测试环境;
当各个任务执行节点中目标任务执行节点的目标测试环境与当前测试环境匹配时,基于目标任务执行节点对应的已有测试任务计划执行时间段获取到目标任务执行节点对应的空闲时间段;
当空闲时间段与当前计划执行时间段匹配时,将当前测试任务标识和当前计划执行时间段写入目标任务执行节点对应的目标任务执行表;
通过目标任务执行表使目标任务执行节点获取到当前测试任务标识和当前计划执行时间段,并在当前计划执行时间段内执行当前测试任务标识对应的当前测试任务。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取各个任务执行节点对应的已有测试任务计划执行时间段和测试环境;
获取当前测试任务标识对应的当前计划执行时间段和当前测试环境;
当各个任务执行节点中目标任务执行节点的目标测试环境与当前测试环境匹配时,基于目标任务执行节点对应的已有测试任务计划执行时间段获取到目标任务执行节点对应的空闲时间段;
当空闲时间段与当前计划执行时间段匹配时,将当前测试任务标识和当前计划执行时间段写入目标任务执行节点对应的目标任务执行表;
通过目标任务执行表使目标任务执行节点获取到当前测试任务标识和当前计划执行时间段,并在当前计划执行时间段内执行当前测试任务标识对应的当前测试任务。
一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取各个任务执行节点对应的已有测试任务计划执行时间段和测试环境;
获取当前测试任务标识对应的当前计划执行时间段和当前测试环境;
当各个任务执行节点中目标任务执行节点的目标测试环境与当前测试环境匹配时,基于目标任务执行节点对应的已有测试任务计划执行时间段获取到目标任务执行节点对应的空闲时间段;
当空闲时间段与当前计划执行时间段匹配时,将当前测试任务标识和当前计划执行时间段写入目标任务执行节点对应的目标任务执行表;
通过目标任务执行表使目标任务执行节点获取到当前测试任务标识和当前计划执行时间段,并在当前计划执行时间段内执行当前测试任务标识对应的当前测试任务。
上述测试方法、装置、计算机设备、存储介质和计算机程序产品,获取各个任务执行节点对应的已有测试任务计划执行时间段和测试环境;
获取当前测试任务标识对应的当前计划执行时间段和当前测试环境;
当各个任务执行节点中目标任务执行节点的目标测试环境与当前测试环境匹配时,基于目标任务执行节点对应的已有测试任务计划执行时间段获取到目标任务执行节点对应的空闲时间段;
当空闲时间段与当前计划执行时间段匹配时,将当前测试任务标识和当前计划执行时间段写入目标任务执行节点对应的目标任务执行表;
通过目标任务执行表使目标任务执行节点获取到当前测试任务标识和当前计划执行时间段,并在当前计划执行时间段内执行当前测试任务标识对应的当前测试任务。由于各个任务执行节点对应的任务执行表的空闲时间段被写入对应的测试任务标识和测试任务计划执行时间段,并且各个任务执行节点在测试任务计划时间段内执行该测试任务,使得各个任务执行节点的空闲时间段减少,从而避免资源浪费、提高了测试效率。
附图说明
图1为一个实施例中测试方法的应用环境图;
图2为一个实施例中测试方法的流程示意图;
图3为一个实施例中更新目标已有测试任务时间段的流程示意图;
图4为一个实施例中当前测试任务提前完成的流程示意图;
图5为一个实施例中当前测试任务超时未完成的流程示意图;
图6为一个实施例中当前测试任务超时未执行的流程示意图;
图7为一个实施例中获取当前测试任务标识对应的当前测试环境的流程示意图;
图8为一个具体实施例中测试任务执行总表和任务执行表的示意图;
图9为一个实施例中写入特定空闲时间段的流程示意图;
图10为一个实施例中临时版本测试项目的结构框图;
图11为一个具体实施例中测试方法的流程示意图;
图12为一个实施例中任务调度的流程示意图;
图13为一个实施例中测试装置的结构框图;
图14为一个实施例中计算机设备的内部结构图;
图15为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的测试方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。服务器104获取各个任务执行节点对应的已有测试任务计划执行时间段和测试环境,然后获取终端102发送的当前测试任务标识对应的当前计划执行时间段和当前测试环境;当各个任务执行节点中目标任务执行节点的目标测试环境与当前测试环境匹配时,服务器104基于目标任务执行节点对应的已有测试任务计划执行时间段获取到目标任务执行节点对应的空闲时间段;当空闲时间段与当前计划执行时间段匹配时,服务器104将当前测试任务标识和当前计划执行时间段写入目标任务执行节点对应的目标任务执行表;服务器104通过目标任务执行表使目标任务执行节点获取到当前测试任务标识和当前计划执行时间段,并在当前计划执行时间段内执行当前测试任务标识对应的当前测试任务。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。已有测试任务和当前测试任务均是被测设备对应的测试任务。测试环境构造设备用于给被测设备进行环境构造,比如,提供网络环境、输入源、输出显示、输出播放、开关按键机械手等,一套环境构造设备一般可以支撑多台被测设备,并且不同的环境构造设备负责不同的环境构造。
在一个实施例中,如图2所示,提供了一种测试方法,本实施例以该方法应用于图1中的服务器进行举例说明。本实施例中,该方法包括以下步骤:
步骤202,获取各个任务执行节点对应的已有测试任务计划执行时间段和测试环境。
其中,各个任务执行节点是指相互独立并且分散的子系统,能够独立完成部分或全部任务,每个任务执行节点用于执行测试任务,执行过程包括申请测试资源、释放测试资源、启动测试、上报测试进度、结束测试,并且是实时进行的。已有测试任务是指在当前时刻各个任务执行节点已经写入的测试任务,包括未来时刻待执行的测试任务。由于各测试任务执行可以继续拆分为可重复执行的测试用例,并且每条测试用例每次执行的时间都记录在数据库中,通过查询数据库可以确定各测试任务执行完成的所需时间。已有测试任务计划执行时间段是指在各个任务执行节点中已有测试任务预计开始时间点已有测试任务的计划结束时间点的时间段,测试环境是指各个任务执行节点对应具备的测试环境,是测试任务的执行必要条件。
具体地,服务器可以是调度中心,通过调度中心可以从服务器数据库中获取各个任务执行节点的对应的已有测试任务计划执行时间段,比如,服务器启动后,调度中心连接服务器数据库,从服务器数据库中获取各个任务执行节点对应的已有测试任务计划执行时间段和其对应的测试环境,测试环境可以是个人计算机的操作系统。调度中心也可以从各个任务执行节点对应的服务器数据库中获取到已有测试任务计划执行时间段和测试环境。
步骤204,获取当前测试任务标识对应的当前计划执行时间段和当前测试环境。
其中,当前测试任务是指调度中心在当前时刻检测到待执行的版本测试项目并进行拆分得到的待执行的子任务,版本测试项目可拆分为多个子任务,每个子任务包含多个对应的测试用例,并且每个子任务都有其对应的计划开始时间和计划结束时间。当前计划执行时间段是指当前测试任务对应的以预计开始时间点作为测试时间起点到以计划结束时间点作为测试时间终点的时间段。当前测试环境是指当前测试任务被执行时所需要的测试环境,可以通过当前测试任务要执行的测试用例信息查到当前测试环境信息。
具体地,服务器中的调度中心可以在服务器数据库中检测到待执行的版本测试项目,也可以通过上层管理终端发送的测试任务检测到待执行的版本测试项目,然后将该待执行的版本测试项目进行拆分得到当前测试任务;调度中心可以在服务器数据库中获取到当前测试任务的当前计划执行时间段,也可以通过上层管理终端发送的测试任务获取当前测试任务的当前计划执行时间段。比如,调度中心在服务器数据库中检测到当前测试任务后,又通过服务器数据库获取当前测试的当前计划执行时间段和当前测试环境。
步骤206,当各个任务执行节点中目标任务执行节点的目标测试环境与当前测试环境匹配时,基于目标任务执行节点对应的已有测试任务计划执行时间段获取到所述目标任务执行节点对应的空闲时间段。
其中,目标任务执行节点是指在各个任务执行节点中测试环境与当前测试环境相同的任务执行节点。目标测试环境是目标任务执行节点具备的测试环境。匹配是指目标任务执行节点的目标测试环境与当前测试任务的当前测试环境一致。空闲时间段是指在目标任务执行节点的已有测试任务计划时间段中无已有测试任务的时间段。
具体地,依据当前测试任务的当前测试环境,当在各个任务执行节点中检测到有与当前测试任务的当前测试环境匹配的任务执行节点时,该任务执行节点作为目标任务执行节点,目标任务执行节点可以是一个也可以是多个,并获取该目标任务执行节点无测试任务的空闲时间段,该空闲时间段可以是一段也可以是多段。另外,当在各个任务执行节点中没有检测到有与当前测试任务的当前测试环境匹配的任务执行节点时,可以增加与当前测试任务的当前测试环境匹配的任务执行节点,新增加的任务执行节点可以是一个也可以是多个。比如,依据当前测试任务的当前测试环境,在各个任务执行节点中检测到有多个目标任务执行节点,并获取到该每个目标任务执行节点中的空闲时间段;也可以依据当前测试任务的当前测试环境,在各个任务执行节点中未检测到有目标任务执行节点,则上层管理终端增加一个与当前测试任务的当前测试环境匹配的任务执行节点。
步骤208,当空闲时间段与当前计划执行时间段匹配时,将当前测试任务标识和当前计划执行时间段写入目标任务执行节点对应的目标任务执行表。
其中,当前测试任务标识是指标识当前测试任务的标识信息,每个当前测试任务都有对应的标识。任务执行表是指在服务器数据库中记录所有测试任务信息的执行列表,任务执行表中的每个测试任务信息包括测试任务标识、测试任务标识对应的任务执行节点标识、测试任务的执行状态、预计开始时间和预计结束时间。任务执行节点对应的任务执行表是指任务执行节点向服务器数据库发送包含请求参数的查询请求,服务器数据库依照请求参数中的过滤条件将任务执行表进行过滤后反馈的与任务执行节点对应的测试任务信息,包括该任务执行节点已完成、执行中和待执行的测试任务信息。各个任务执行节点按照其对应的任务执行表有序的执行任务。目标任务执行表是指目标任务执行节点对应的任务执行表。
具体地,目标任务执行节点中的空闲时间段可以与当前计划执行时间段相同,也可以包含当前计划执行时间段。目标任务执行节点可以是一个也可以是多个。当前测试任务标识可以是一个也可以是多个,并且多个当前测试任务的当前计划执行时间段可以是一样的时间段,也可以是不一样的时间段。比如,当目标任务执行节点中的空闲时间段包含当前计划执行时间段时,终端将当前测试任务标识和当前计划执行时间段写入目标任务执行节点对应的目标任务执行表中。
步骤210,通过目标任务执行表使目标任务执行节点获取到当前测试任务标识和当前计划执行时间段,并在当前计划执行时间段内执行当前测试任务标识对应的当前测试任务。
具体地,目标任务执行节点可以向服务器数据库发送查询请求后,服务器数据库依照请求参数中的过滤条件将任务执行表进行过滤后反馈的与目标任务执行节点对应的当前测试任务信息,获取当前测试任务标识和当前计划执行时间段,过滤条件可以是目标任务执行节点标识;
当到达当前计划执行时间段时,目标任务执行节点申请当前测试任务所需的测试资源,测试资源可以是为了测试而申请的被测设备、模拟载荷、控制器、检测设备等,然后启动当前测试任务的测试和结束当前测试任务的测试,在当前测试任务执行完成后释放当前测试任务占用的测试资源,向服务器数据库发送当前测试任务的测试报告并在服务器数据库中更新当前测试任务的测试信息以此实现上报当前测试任务的测试进度的功能。各个任务执行节点可以并行执行当前时间段对应的测试任务。上述测试方法中,获取各个任务执行节点对应的已有测试任务计划执行时间段和测试环境;获取当前测试任务标识对应的当前计划执行时间段和当前测试环境;当各个任务执行节点中目标任务执行节点的目标测试环境与当前测试环境匹配时,基于目标任务执行节点对应的已有测试任务计划执行时间段获取到目标任务执行节点对应的空闲时间段;当空闲时间段与当前计划执行时间段匹配时,将当前测试任务标识和当前计划执行时间段写入目标任务执行节点对应的目标任务执行表;通过目标任务执行表使目标任务执行节点获取到当前测试任务标识和当前计划执行时间段,并在当前计划执行时间段内执行当前测试任务标识对应的当前测试任务。由于各个任务执行节点对应的任务执行表的空闲时间段被写入对应的测试任务标识和测试任务计划执行时间段,并且各个任务执行节点在测试任务计划时间段内执行该测试任务,使得各个任务执行节点的空闲时间段减少,从而避免资源浪费、提高了测试效率。
在一个实施例中,步骤210,在通过目标任务执行表使目标任务执行节点获取到当前测试任务标识和当前计划执行时间段,并在当前计划执行时间段内执行当前测试任务标识对应的当前测试任务之后,还包括:
获取目标任务执行节点返回的当前测试任务对应的当前测试统计结果和当前执行完成状态;
将目标任务执行表中当前测试任务标识对应的执行状态更新为当前执行完成状态,并将当前测试任务标识对应的测试统计结果更新为当前测试统计结果。
其中,执行状态是指在任务执行表中的每个测试任务对应的执行状态,包括:已完成、执行中、待执行。当前执行完成状态是指目标任务执行节点执行的当前测试任务对应的执行状态。测试结果是指任务执行节点执行的测试任务中测试用例的测试结果,包括:执行成功、执行失败、执行受阻。测试统计结果是指任务执行节点执行测试任务完成后在任务执行表中记录的该测试任务中测试用例的测试结果数量,包括:执行成功数量、执行失败数量、执行受阻数量。当前测试统计结果是当前测试任务中测试用例的测试结果数量。
具体地,目标任务执行节点通过at runner脚本(是用于申请测试资源、释放测试资源、启动测试、上报测试进度、结束测试的脚本)向服务器数据库发送查询请求,目标任务执行节点获取服务器数据库反馈的与目标任务执行节点对应的目标任务执行表,然后通过目标任务执行表获取当前测试任务信息标识和当前计划执行时间段,并且当前时间段是当前计划执行时间段的开启时间时,at runner脚本在将当前测试任务的执行状态由待执行更改为执行中,目标任务执行节点开始执行当前测试任务;目标任务执行节点执行当前测试任务完成后,目标任务执行节点通过at runner脚本向服务器数据库发送查询请求,并在获取的目标任务执行表中将当前测试任务对应的执行状态由执行中更改为已完成,同时将当前测试任务对应的测试结果统计更改为当前测试结果统计。
上述实施例中,当当前测试任务执行完成后,在服务器数据库中的目标任务执行表中修改当前测试任务对应的执行状态,使得目标任务执行节点在服务器数据库中查询目标任务执行表获取到当前测试任务的执行状态是已完成状态时,就可以获取当前测试任务下一个测试任务的测试任务标识和计划执行时间段,并在计划执行时间段内执行测试任务标识对应的测试任务。目标任务执行节点依照执行状态执行下一个测试任务,避免存在等待执行的情况,减少资源浪费,提高测试效率。
在一个实施例中,如图3所示,所述方法,还包括:
步骤302,当各个任务执行节点中目标任务执行节点的目标测试环境与当前测试环境匹配,且基于目标任务执行节点对应的已有测试任务计划执行时间段未获取到目标任务执行节点对应的空闲时间段时,按照当前计划执行时间段获取目标任务执行节点中目标已有任务测试时间段对应的已有测试任务等级,并获取当前测试任务标识对应的当前测试任务等级。
步骤304,当当前测试任务等级超过已有测试任务等级时,基于当前计划执行时间段从目标任务执行节点对应的已有测试任务计划执行时间段中确定目标已有任务标识对应的更新测试时间段;
步骤306,基于目标已有任务标识将更新测试时间段写入目标任务执行节点对应的任务执行表中,以使目标任务执行节点在更新测试时间段执行目标已有任务标识对应的目标已有测试任务。
其中,测试任务等级是指测试任务的配置属性,用于表征测试任务的优先级和重要程度,比如,测试任务等级越小则优先级越高、该测试任务越重要,测试任务等级最小为1。在任务执行表中依照测试任务等级将测试任务进行排序,任务执行节点优先执行高优先级的测试任务。更新测试时间段是指将测试任务标识对应的测试任务预计开始时间和预计完成时间进行更改得到新的测试任务计划执行时间段中的预计开始时间和预计完成时间。目标已有任务标识是指在目标任务执行表中与当前计划执行时间段对应的待执行已有测试任务的任务标识。
具体地,调度中心从目标任务执行节点对应的已有测试任务计划执行时间段中查找出与当前计划执行时间段不一致的空闲时间段,将与当前计划执行时间段不一致的空闲时间段作为目标已有任务标识对应的更新测试时间段,调度中心将目标任务执行节点中目标已有任务标识对应的测试时间段更新为更新测试时间段。调度中心将当前测试任务标识对应的测试时间段更新为目标已有任务测试时间段。
上述实施例中,当前测试任务等级超过在目标任务执行表中与当前计划执行时间段对应的已有测试任务等级时,则表征当前测试任务的优先级高于与当前计划执行时间段对应的已有测试任务优先级,目标任务执行节点优先执行当前测试任务。目标任务节点通过依据测试任务等级执行测试任务,可以优先执行高测试任务等级的重要测试任务,提高了测试效率。
在一个实施例中,如图4所示,步骤210,在通过目标任务执行表使目标任务执行节点获取到当前测试任务标识和当前计划执行时间段,并在当前计划执行时间段内执行当前测试任务标识对应的当前测试任务之后,还包括:
步骤402,获取当前测试任务对应的实际执行时间段;
步骤404,当实际执行时间段小于当前计划执行时间段时,获取目标任务执行节点对应的任务执行表中待执行测试任务标识对应的计划执行时间段;
步骤406,基于实际执行时间段对待执行测试任务对应的计划执行时间段进行更新,得到待执行测试任务对应的目标计划执行时间段,以使目标任务执行节点在目标计划执行时间段执行待执行测试任务标识对应的待执行测试任务。
其中,实际执行时间段是指依据任务执行节点执行测试任务的预计开始时间到实际完成时间确定的实际执行时间段。
具体地,目标任务执行节点向服务器数据库发送查询申请获取目标任务执行节点对应的目标任务执行表,然后目标任务执行节点依据当前测试任务的实际完成时间点,在其对应的目标任务执行表中将当前测试任务对应的执行状态更改为已完成;
调度中心在当前时刻检测到当前测试任务的执行状态为已完成,并且当前时刻还未到当前测试任务的预计完成时间,则判断该当前测试任务为提前完成的提前测试任务。此时,调度中心获取目标任务执行表中当前测试任务标识之后的待执行测试任务标识对应的计划执行时间段,将计划执行时间段按照实际时间段进行更新,比如,计划执行时间段为2点到3点,实际执行时间段为2点到2点50,则目标任务执行表中当前测试任务标识之后的执行测试任务标识对应的计划执行时间段中计划开始时间点和计划结束时间点提前10分钟。
上述实施例中,调度中心通过检测到当前测试任务提前完成,并将当前测试任务之后的待执行测试任务的预计开始时间提前,避免了目标任务执行节点等待下一个待执行测试任务开始时间造成的空闲时间段,减少了资源浪费,提高了测试效率。
在一个实施例中,如图5所示,在获取当前测试任务对应的实际执行时间段之后,还包括:
步骤502,当实际执行时间段大于当前计划执行时间段时,将当前测试任务中断;
步骤504,将目标任务执行表中当前测试任务标识对应的执行状态更新为任务结束状态;
步骤506,获取目标任务执行节点返回的当前测试任务对应的异常测试报告,并将项目异常测试报告返回测试管理终端。
其中,测试报告是指通过任务执行节点生成的记录该测试任务执行过程的所有细节信息的文件,包括:测试任务所属的版本测试项目名称、测试用例明细及其重要程度标识、测试用例的测试结果统计和在执行测试任务过程中采集到的日志、图片、媒体文件。异常测试报告是指目标任务执行节点生成的记录当前测试任务异常执行情况的测试报告。项目异常测试报告是指终端在服务器数据库中汇总当前测试任务所属的版本测试项目拆分后的所有测试任务的测试报告的文件包。中断是指调度中心使目标任务执行节点终止执行当前测试任务。
具体地,调度中心在当前时刻检测到当前测试任务的执行状态为执行中,并且当前时刻超过到当前测试任务的预计完成时间,则判断该当前测试任务为超时未完成的异常测试任务,然后在目标任务执行表中将当前测试任务标识对应的执行状态由执行中更改为结束;
目标任务执行节点定时查询目标任务执行表,检测到当前测试任务状态为结束,则终止当前测试任务执行,释放当前测试任务占用的测试资源,并向服务器数据库发送当前测试任务的异常测试报告,然后查询下一个测试任务的预计开始时间,当到达该预计开始时间时开始执行下一个测试任务;
调度中心在服务器数据库中将版本测试项目的所有子任务的测试报告汇总并生成项目异常测试报告,然后将该项目异常测试报告拷贝到服务器数据库中的报告库中,服务器数据库中有该项目异常测试报告的文件名、存储路径等,并且将该项目异常测试报告返回测试管理终端。将该项目异常测试报告返回测试管理终端可以是通过通讯机器人将项目异常测试报告的链接发送到测试管理终端,测试管理终端可以是即时通讯应用,比如,终端将项目异常测试报告的链接通过企业微信机器人发送到企业微信群聊中,点击该链接可以通过web浏览器直接浏览提前放在web服务器上的项目异常测试报告。
上述实施例中,通过调度中心检测并判断当前测试任务为超时未完成的异常测试任务,并将该当前测试任务中断,然后发送项目异常测试报告链接,可以及时通知测试人员及时处理当前测试任务所属的版本测试项目的测试异常部分,避免由于未及时处理导致目标任务执行节点继续执行异常版本测试项目,从而避免了目标任务执行节点的资源浪费,目标任务执行节点及时执行其他版本测试项目的测试任务也提高了版本测试项目的测试效率。
在一个是实施例中,如图6所示,所述方法,还包括:
步骤602,获取当前时间点,当当前时间点超过当前计划执行时间段中的计划开始时间点时,基于当前时间点和当前计划执行时间段中的计划开始时间点确定目标时间段;
步骤604,当目标任务执行表中当前测试任务标识对应的执行状态为未执行状态且目标时间段超过预设时间段时,生成当前测试任务对应的未执行异常信息;
步骤606,将当前测试任务对应的未执行异常信息返回测试管理终端。
其中,目标时间段是指当前时间点到当前测试任务的计划开始时间的时间段。未执行异常信息是指调度中心向测试管理终端发送的求援信息,该求援信息用于表征应执行当前测试任务的目标任务执行节点无法启动,需要人工介入处理。
具体地,调度中心在当前时刻检测到目标任务执行表中当前测试任务对应的执行状态为执行,并且当前时间点超过当前测试任务的计划开始时间的目标时间段大于预设时间段时,预设时间段可以是30分钟,表征该目标任务执行节点为长时间未执行当前测试任务,则判断该当前测试任务为超时未执行任务,并且目标任务执行节点是异常任务执行节点,生成当前测试任务对应的未执行异常信息,并将该未执行异常信息通讯机器人发送到测试管理终端。测试管理终端可以是即时通讯应用。比如,当调度中心在当前时刻检测到目标任务执行节点超过30分钟未执行当前测试任务,则生成当前测试任务对应的未执行异常信息并通过企业微信机器人发送到企业微信群聊,通知管理人员处理目标任务执行节点的异常部分。
上述实施例中,调度中心通过检测到目标任务执行节点在预设时间段内未执行当前测试任务,判断目标任务执行节点为异常任务执行节点并通知管理人员及时处理,能避免目标任务执行节点长时间处于异常状态造成的资源浪费问题,并且通过人工介入能在短时间能继续执行当前测试任务从而提高了测试效率。
在一个是实施例中,如图7所示,获取当前测试任务标识对应的当前计划执行时间段和当前测试环境,包括:
步骤702,监控预设测试任务执行总表,当在预设测试任务执行总表中检测到目标版本测试项目标识时,从预设测试任务执行总表中获取到目标版本测试项目标识对应的项目计划执行时间段;
步骤704,获取目标版本测试项目标识对应的目标版本测试项目,基于目标版本测试项目和项目计划执行时间段进行子任务拆分,得到各个测试任务对应的测试任务标识和测试任务计划执行时间段;
步骤706,将各个测试任务标识分别作为当前测试任务标识,并从测试任务计划执行时间段中获取到当前测试任务标识对应的当前计划执行时间段;
步骤708,获取当前测试任务标识对应的当前测试环境。
其中,测试任务执行总表是指在服务器数据库中记录所有版本测试项目信息的执行表,每个版本测试项目信息包括:版本测试项目标识、版本测试项目执行情况统计结果、预计启动时间和预计结束时间。版本测试项目执行情况统计结果是指版本测试项目被拆分出的子任务在各个任务执行节点的测试统计结果的汇总结果。监控是指调度中心每经过一个预设周期检查一次服务器数据库,包括检查服务器数据库中的测试任务执行总表和任务执行表。目标版本测试项目标识是指调度中心经过预设周期检测到在测试任务执行总表中新创建的版本测试项目标识的记录信息。版本测试项目标识是指在测试任务执行总表中每个版本测试项目唯一的身份标识。目标版本测试项目标识是指目标版本测试项目唯一的身份标识。拆分是指调度中心对版本测试项目进行分析后依据各子任务所需的测试环境、所需的执行资源和测试执行时间将各子任务分配给匹配的任务执行节点,然后将各子任务的测试任务标识、预计开始时间、预计完成时间和与各子任务匹配的任务执行节点标识写入任务执行表。
具体地,版本测试项目的来源可以是上层的研发管理平台,如,持续集成服务器,在测试任务执行总表中新创建的版本测试项目标识的记录信息可以是终端通过应用程序编程接口、串口等方式在服务器数据库中的测试任务执行总表中创建目标版本测试项目的记录信息,并记录目标版本测试项目标识,也可以是通过手动、第三方工具、应用程序编程接口等方式连接服务器数据库,服务器数据库在测试任务执行总表中创建目标版本测试项目的记录信息,并自动分配目标版本测试项目标识,优选的,通过服务器数据库在测试任务执行总表中创建目标版本测试项目的记录信息,并自动分配目标版本测试项目标识;
调度中心每经过预设周期开始执行一次,预设周期可以是5分钟,获取当前时间点,将日志初始化,然后连接服务器数据库,检测到在测试任务执行总表中的目标版本测试项目标识时,将目标版本测试项目的预计启动时间和预计结束时间写入测试任务执行总表,得到目标版本测试项目标识对应的项目计划执行时间段;
调度中心获取目标版本测试项目标识对应的目标版本测试项目,依据目标版本测试项目中子任务所需的测试环境、所需的执行资源和测试执行时间将目标版本测试项目子任务分配给匹配的任务执行节点,得到目标版本测试项目子任务;然后将目标版本测试项目子任务对应的测试任务标识、预计开始时间、预计完成时间和与目标版本测试项目子任务匹配的任务执行节点标识写入任务执行表,得到测试任务计划执行时间段,并在任务执行表中目标版本测试项目子任务对应的执行状态标记为待执行,然后将在任务执行表新添加的测试任务同步到项目管理系统上;目标版本测试项目的预计启动时间和预计结束时间可以和目标版本测试项目子任务的预计开始时间和预计完成时间一致,也可以目标版本测试项目的预计结束时间超过目标版本测试项目子任务的预计完成时间,优选的,目标版本测试项目的预计启动时间和预计结束时间可以和目标版本测试项目子任务的预计开始时间和预计完成时间一致;
将目标版本测试项目子任务标识分别作为当前测试任务标识,任务执行节点从测试任务计划执行时间段中获取到当前测试任务标识对应的当前计划执行时间段,然后获取当前测试任务标识对应的当前测试环境。
在一个具体的实施例中,如图8所示,提供测试任务执行总表和任务执行表的示意图,具体来说:
测试任务执行总表是用于记录所有版本测试项目信息,包括所有版本测试项目信息的版本测试项目标识、版本测试项目执行情况统计结果、预计启动时间和预计结束时间,使调度中心可以依照测试任务执行总表中的版本测试项目信息进行子任务拆分并分配各任务执行节点执行测试任务;
任务执行表是用于记录测试任务执行总表中版本测试项目拆分后的所有测试任务信息,包括版本测试项目标识、版本测试项目标识对应的任务执行节点标识、执行状态、测试统计结果、预计开始时间和预计结束时间,使各任务执行节点可以通过任务执行表获取对应的测试任务信息,并依照获取到的对应的信息执行测试任务;调度中心在测试任务执行总表中读取版本测试项目标识,然后在任务执行表中根据版本测试项目标识查询该版本测试项目对应的子任务的测试信息。测试任务执行总表和任务执行表都是保存在服务器数据库中的。
上述实施例中,调度中心在检测到在测试任务执行总表中的目标版本测试项目标识时,将目标版本测试项目拆分并分配给各对应的任务执行节点并在其空闲时间段执行,同时目标版本测试项目的预计启动时间和预计结束时间可以和目标版本测试项目子任务的预计开始时间和预计完成时间一致,就可以在最短时间内将目标版本测试项目执行完成,减少了任务执行节点的空闲时间,提高了目标版本测试项目的测试效率。
在一个是实施例中,如图9所示,所述方法,还包括:
步骤902,获取当前时间点,并检测各个任务执行节点对应的任务执行表中当前时间点是否存在对应的测试任务标识;
步骤904,当各个任务执行节点中特定任务执行节点对应的特定任务执行表未存在对应的测试任务标识时,基于特定任务执行表和当前时间点确定特定空闲时间段,特定空闲时间段的起始时间点为当前时间点,特定空闲时间段的终止时间点为特定任务执行表中特定测试任务的起始时间点;
步骤906,基于特定空闲时间段从各个任务执行节点对应的任务执行表中查找对应的插入测试任务标识;
步骤908,基于插入测试任务标识将特定空闲时间段写入特定任务执行节点对应的特定任务执行表中。
其中,特定测试任务是指在特定任务执行表中当前时间点下一个测试任务标识对应的最高测试任务等级的测试任务。插入测试任务等级低于特定测试任务等级。特定任务执行表是指执行特定测试任务的任务执行节点。特定任务执行节点标识是指将插入测试任务标识对应的任务执行节点标识更新为特定任务执行节点对应的特定任务执行节点标识。
具体地,调度中心每经过预设周期执行一次,获取当前时间点,并检测到各个任务执行节点对应的任务执行表中当前时间点未存在对应的测试任务标识,测试任务标识可以是各个任务执行节点对应的任务执行表中高等级测试任务对应的测试任务标识;
基于特定空闲时间段从各个任务执行节点对应的任务执行表中当查找到与特定空闲时间段对应的插入测试任务标识和插入测试任务等级,并且插入测试任务对应的计划执行时间段与特定空闲时间段一致时,将插入测试任务对应的任务执行节点标识更改特定任务执行标识,并将插入测试任务对应的特定任务执行节点标识和特定空闲时间段写入特定任务执行节点对应的特定任务执行表中。
上述实施例中,通过调度中心实时监控将查找到的与特定空闲时间段对应的低等级的插入测试任务的任务执行节点标识更新为特定执行节点标识,并将特定空闲时间段写入特定任务执行节点对应的特定任务执行表中,可以实时调度特定任务执行节点在特定空闲时间段执行低等级插入测试任务,避免出现特定任务执行节点在特定空闲时间段未工作的问题,避免资源浪费并且提高了测试效率。
在一个是实施例中,如图10所示,所述方法,还包括:
步骤1002,获取各个临时测试项目标识、各个临时测试项目标识对应的调度优先级别和各个临时测试项目标识对应的临时项目计划执行时间段;
步骤1004,按照调度优先级别将各个临时测试项目标识和对应的临时项目计划执行时间段写入预设测试任务执行总表中;
步骤1006,按照调度优先级从预设测试任务执行总表中获取当前测试任务标识对应的当前计划执行时间段和当前测试环境。
其中,临时测试项目标识是指调度中心检测到的突发的紧急测试项目对应的测试项目标识。调度优先级别是指将测试项目分配给各任务执行节点执行的优先执行程度。
具体地,调度中心获取各个临时测试项目标识、各个临时测试项目标识对应的调度优先级别和各个临时测试项目标识对应的临时项目计划执行时间段,按照调度优先级别更新各个临时测试项目标识对应的临时项目计划执行时间段,并将各个临时测试项目标识对应的临时项目计划执行时间段写入预设测试任务执行总表中。比如,当临时测试项目标识对应的调度优先级别为最高级时,调度中心将该临时测试项目标识对应的临时项目计划执行时间段更新为最近时间段,优先将该临时测试项目中的子任务进行拆分并将各子任务分配给对应的任务执行节点优先执行。
上述实施例中,通过调度中心检测到突发的紧急临时测试项目时能依照调度优先级分配给各个任务执行节点并将临时测试项目优先执行,可以快速执行完成临时测试项目,提高测试效率。
在一个具体实施例中,如图11所示,为测试方法的流程图,具体来说:
该方法应用在分布式系统中,该分布式系统包括调度中心和各个任务执行节点,调度中心通过at schedule脚本(用于实现分布式子系统的任务调度功能)每隔5分钟开始执行,先获取当前时间点并进行日志初始化,然后连接服务器数据库,从服务器数据库中查询任务执行节点的执行情况,获取各任务执行节点的已有测试任务计划执行时间段和测试环境;
调度中心从指定地址的测试任务执行总表中查询下一轮版本测试项目,读取该版本测试项目的子任务以及子任务的用例信息,作为当前测试任务和当前测试任务的用例信息,通过当前测试任务的用例信息获取当前任务所需的测试环境和当前测试任务的当前计划执行时间段;
调度中心在各任务执行节点中检索测试环境与当前任务所需的测试环境匹配的目标任务执行节点,再从目标任务执行节点对应的已有测试任务计划执行时间段获取其对应的空闲时间段;
当目标任务执行节点对应的空闲时间段与当前计划执行时间段匹配时,调度中心将当前测试任务的当前计划执行时间段和当前测试任务标识写入目标任务执行节点对应的目标任务执行表,预约目标任务执行节点下一轮版本测试项目的当前测试任务的执行时间,并且在项目管理系统上创建下一轮版本测试项目的测试周期,目标任务执行节点通过at runner脚本并行执行当前测试任务;
调度中心在测试任务执行总表中检测到临时提交的版本测试项目,获取临时提交的版本测试项目的调度优先级,然后在测试任务执行总表中通过将未执行的版本测试项目按照优先级更新其对应的计划执行时间段进行重新排序;
调度中心在当前时间点检测到特定任务执行节点对应的特定任务执行表中无对应的测试任务标识,基于所述特定任务执行表和所述当前时间点确定特定空闲时间段,然后基于特定空闲时间段调度中心从任务执行表中查找对应的低等级的插入测试任务,基于插入测试任务标识将特定空闲时间段写入所述特定任务执行节点对应的特定任务执行表中,特定任务执行节点通过at runner脚本在特定空闲时间段执行当前测试任务。
在一个具体实施例中,如图12所示,为任务调度的流程图,具体来说:
调度中心每5分钟检查一次数据库中,并且检测各任务执行节点在这一轮的版本测试项目是否执行完成,若执行完成则预约该任务执行节点下一轮版本测试项目的开始时间,若执行未完成则检测各任务执行节点在执行过程中是否有超时未完成的任务;若有超时未完成任务则结束超时未完成的任务并更新该测试任务的执行状态,保存测试报告并发送至企业微信,若没有超时未完成的任务则检测各任务执行节点在执行过程中是否有超时未执行的任务;若有超时未执行的任务则将超时未执行的任务对应的未执行异常信息发送至企业微信并知会管理员,若没有超时未执行的任务则检测各任务执行节点在执行过程中是否有临时提交的项目,若有临时提交的项目则更新数据库中测试任务执行总表的项目顺序,若没有临时提交的项目则检测各任务执行节点在执行过程中是否有提前完成的任务;若有提前完成的任务则在各任务执行节点对应的任务执行表中将已调度的测试任务的计划开始时间和计划完成时间提前,更新当前已调度的待执行测试任务的计划执行时间段,若没有提前完成的任务则检测各任务执行节点在当前时间点是否有需要执行的高等级测试任务;若没有需要执行的高等级测试任务则将低等级测试任务的计划执行时间段插入到下一个高等级测试任务的计划执行时间段前,若有需要执行的高等级测试任务则调度中心结束此次的调度。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的测试方法的测试装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个测试置实施例中的具体限定可以参见上文中对于测试方法的限定,在此不再赘述。
在一个实施例中,如图13所示,提供了一种测试装置1300,包括:获取模块1302、匹配模块1304和执行模块1306,其中:
获取模块1302,用于获取各个任务执行节点对应的已有测试任务计划执行时间段和测试环境;获取当前测试任务标识对应的当前计划执行时间段和当前测试环境。
匹配模块1304,用于当各个任务执行节点中目标任务执行节点的目标测试环境与当前测试环境匹配时,基于目标任务执行节点对应的已有测试任务计划执行时间段获取到目标任务执行节点对应的空闲时间段;当空闲时间段与当前计划执行时间段匹配时,将当前测试任务标识和当前计划执行时间段写入目标任务执行节点对应的目标任务执行表.
执行模块1306,用于通过目标任务执行表使目标任务执行节点获取到当前测试任务标识和当前计划执行时间段,并在当前计划执行时间段内执行当前测试任务标识对应的当前测试任务。
在一个实施例中,测试装置1300还包括:
更新完成模块,用于获取目标任务执行节点返回的当前测试任务对应的当前测试结果统计和当前执行完成状态;将目标任务执行表中当前测试任务标识对应的执行状态更新为当前执行完成状态,并将当前测试任务标识对应的测试结果统计更新为当前测试结果统计。
在一个实施例中,测试装置1300还用于当各个任务执行节点中目标任务执行节点的目标测试环境与当前测试环境匹配,且基于目标任务执行节点对应的已有测试任务计划执行时间段未获取到目标任务执行节点对应的空闲时间段时,按照当前计划执行时间段获取目标任务执行节点中目标已有任务测试时间段对应的已有测试任务等级,并获取当前测试任务标识对应的当前测试任务等级;当当前测试任务等级小于已有测试任务等级时,基于当前计划执行时间段从目标任务执行节点对应的已有测试任务计划执行时间段中确定目标已有任务标识对应的更新测试时间段;基于目标已有任务标识将更新测试时间段写入目标任务执行节点对应的任务执行表中,以使目标任务执行节点在更新测试时间段执行目标已有任务标识对应的目标已有测试任务。
在一个实施例中,测试装置1300还包括:
实际执行时间段获取模块,用于获取当前测试任务对应的实际执行时间段;
比较模块,用于当实际执行时间段小于当前计划执行时间段时,获取目标任务执行节点对应的任务执行表中待执行测试任务标识对应的计划执行时间段;
更新时间段模块,用于基于实际执行时间段对待执行测试任务对应的计划执行时间段进行更新,得到待执行测试任务对应的目标计划执行时间段,以使目标任务执行节点在目标计划执行时间段执行待执行测试任务标识对应的待执行测试任务。
在一个实施例中,测试装置1300还包括:
比较模块,用于当实际执行时间段大于当前计划执行时间段时,将当前测试任务中断;
更新结束模块,用于将目标任务执行表中当前测试任务标识对应的执行状态更新为任务结束状态;
异常测试报告生成模块,用于获取目标任务执行节点返回的当前测试任务对应的异常测试报告,并将项目异常测试报告返回测试管理终端。
在一个实施例中,测试装置1300还包括:
目标时间段确定模块,用于获取当前时间点,当当前时间点超过当前计划执行时间段中的计划开始时间点时,基于当前时间点和当前计划执行时间段中的计划开始时间点确定目标时间段;
未执行异常信息生成模块,用于当目标任务执行表中当前测试任务标识对应的执行状态为未执行状态且目标时间段超过预设时间段时,生成当前测试任务对应的未执行异常信息;将当前测试任务对应的未执行异常信息返回测试管理终端。
在一个实施例中,获取模块1302还包括:
监控模块,用于监控预设测试任务执行总表,当在预设测试任务执行总表中检测到目标版本测试项目标识时,从预设测试任务执行总表中获取到目标版本测试项目标识对应的项目计划执行时间段;
当前测试环境获取模块,用于获取目标版本测试项目标识对应的目标版本测试项目,基于目标版本测试项目和项目计划执行时间段进行子任务拆分,得到各个测试任务对应的测试任务标识和测试任务计划执行时间段;将各个测试任务标识分别作为当前测试任务标识,并从测试任务计划执行时间段中获取到当前测试任务标识对应的当前计划执行时间段;获取当前测试任务标识对应的当前测试环境。
在一个实施例中,测试装置1300还包括:
特定时间段确定模块,用于获取当前时间点,并检测各个任务执行节点对应的任务执行表中当前时间点是否存在对应的测试任务标识;当各个任务执行节点中特定任务执行节点对应的特定任务执行表未存在对应的测试任务标识时,基于特定任务执行表和当前时间点确定特定空闲时间段,特定空闲时间段的起始时间点为当前时间点,特定空闲时间段的终止时间点为特定任务执行表中特定测试任务的起始时间点;
插入模块,用于基于特定空闲时间段从各个任务执行节点对应的任务执行表中查找对应的插入测试任务标识;基于插入测试任务标识将特定空闲时间段写入特定任务执行节点对应的特定任务执行表中。
在一个实施例中,测试装置1300还包括:
临时测试项目信息获取模块,用于获取各个临时测试项目标识、各个临时测试项目标识对应的调度优先级别和各个临时测试项目标识对应的临时项目计划执行时间段;
写入模块,用于按照调度优先级别将各个临时测试项目标识和对应的临时项目计划执行时间段写入预设测试任务执行总表中;按照调度优先级从预设测试任务执行总表中获取当前测试任务标识对应的当前计划执行时间段和当前测试环境。
上述测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和服务器数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的服务器数据库用于存储测试任务执行总表、任务执行表数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种测试方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图15所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种测试方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图14-15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、服务器数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的服务器数据库可包括关系型服务器数据库和非关系型服务器数据库中至少一种。非关系型服务器数据库可包括基于区块链的分布式服务器数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种测试方法,其特征在于,所述方法包括:
获取各个任务执行节点对应的已有测试任务计划执行时间段和测试环境;
获取当前测试任务标识对应的当前计划执行时间段和当前测试环境;
当所述各个任务执行节点中目标任务执行节点的目标测试环境与所述当前测试环境匹配时,基于所述目标任务执行节点对应的已有测试任务计划执行时间段获取到所述目标任务执行节点对应的空闲时间段;
当所述空闲时间段与所述当前计划执行时间段匹配时,将所述当前测试任务标识和所述当前计划执行时间段写入所述目标任务执行节点对应的目标任务执行表;
通过所述目标任务执行表使所述目标任务执行节点获取到所述当前测试任务标识和所述当前计划执行时间段,并在所述当前计划执行时间段内执行所述当前测试任务标识对应的当前测试任务。
2.根据权利要求1所述的方法,其特征在于,在通过所述目标任务执行表使所述目标任务执行节点获取到所述当前测试任务标识和所述当前计划执行时间段,并在所述当前计划执行时间段内执行所述当前测试任务标识对应的当前测试任务之后,还包括:
获取所述当前测试任务对应的实际执行时间段;
当所述实际执行时间段小于所述当前计划执行时间段时,获取所述目标任务执行节点对应的任务执行表中待执行测试任务标识对应的计划执行时间段;
基于所述实际执行时间段对所述待执行测试任务对应的计划执行时间段进行更新,得到所述待执行测试任务对应的目标计划执行时间段,以使所述目标任务执行节点在所述目标计划执行时间段执行所述待执行测试任务标识对应的待执行测试任务。
3.根据权利要求2所述的方法,其特征在于,在获取所述当前测试任务对应的实际执行时间段之后,还包括:
当所述实际执行时间段大于所述当前计划执行时间段时,将所述当前测试任务中断;
将所述目标任务执行表中所述当前测试任务标识对应的执行状态更新为任务结束状态;
获取所述目标任务执行节点返回的所述当前测试任务对应的异常测试报告,并将项目异常测试报告返回测试管理终端。
4.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
获取当前时间点,当所述当前时间点超过所述当前计划执行时间段中的计划开始时间点时,基于所述当前时间点和所述当前计划执行时间段中的计划开始时间点确定目标时间段;
当所述目标任务执行表中所述当前测试任务标识对应的执行状态为未执行状态且所述目标时间段超过预设时间段时,生成所述当前测试任务对应的未执行异常信息;
将所述当前测试任务对应的未执行异常信息返回测试管理终端。
5.根据权利要求1所述的方法,其特征在于,所述获取当前测试任务标识对应的当前计划执行时间段和当前测试环境,包括:
监控预设测试任务执行总表,当在所述预设测试任务执行总表中检测到目标版本测试项目标识时,从所述预设测试任务执行总表中获取到所述目标版本测试项目标识对应的项目计划执行时间段;
获取所述目标版本测试项目标识对应的目标版本测试项目,基于所述目标版本测试项目和所述项目计划执行时间段进行子任务拆分,得到各个测试任务对应的测试任务标识和测试任务计划执行时间段;
将所述各个测试任务标识分别作为所述当前测试任务标识,并从所述测试任务计划执行时间段中获取到所述当前测试任务标识对应的当前计划执行时间段;
获取所述当前测试任务标识对应的当前测试环境。
6.根据权利要求5所述的方法,其特征在于,所述方法,还包括:
获取当前时间点,并检测所述各个任务执行节点对应的任务执行表中所述当前时间点是否存在对应的测试任务标识;
当所述各个任务执行节点中特定任务执行节点对应的特定任务执行表未存在对应的测试任务标识时,基于所述特定任务执行表和所述当前时间点确定特定空闲时间段,所述特定空闲时间段的起始时间点为所述当前时间点,所述特定空闲时间段的终止时间点为所述特定任务执行表中特定测试任务的起始时间点;
基于所述特定空闲时间段从所述各个任务执行节点对应的任务执行表中查找对应的插入测试任务标识;
基于所述插入测试任务标识将所述特定空闲时间段写入所述特定任务执行节点对应的特定任务执行表中。
7.一种测试装置,其特征在于,所述装置包括:
获取模块,用于获取各个任务执行节点对应的已有测试任务计划执行时间段和测试环境;获取当前测试任务标识对应的当前计划执行时间段和当前测试环境;
匹配模块,用于当所述各个任务执行节点中目标任务执行节点的目标测试环境与所述当前测试环境匹配时,基于所述目标任务执行节点对应的已有测试任务计划执行时间段获取到所述目标任务执行节点对应的空闲时间段;
当所述空闲时间段与所述当前计划执行时间段匹配时,将所述当前测试任务标识和所述当前计划执行时间段写入所述目标任务执行节点对应的目标任务执行表;
执行模块,用于通过所述目标任务执行表使所述目标任务执行节点获取到所述当前测试任务标识和所述当前计划执行时间段,并在所述当前计划执行时间段内执行所述当前测试任务标识对应的当前测试任务。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111509772.4A CN114356750A (zh) | 2021-12-10 | 2021-12-10 | 测试方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111509772.4A CN114356750A (zh) | 2021-12-10 | 2021-12-10 | 测试方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114356750A true CN114356750A (zh) | 2022-04-15 |
Family
ID=81099101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111509772.4A Pending CN114356750A (zh) | 2021-12-10 | 2021-12-10 | 测试方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114356750A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107913A (zh) * | 2023-04-06 | 2023-05-12 | 阿里云计算有限公司 | 单节点服务器的测试控制方法、装置及系统 |
CN116187715A (zh) * | 2023-04-19 | 2023-05-30 | 巴斯夫一体化基地(广东)有限公司 | 用于为测试任务安排执行计划的方法及装置 |
CN116449032A (zh) * | 2023-04-19 | 2023-07-18 | 巴斯夫一体化基地(广东)有限公司 | 用于实验室对生产线上的产品样本进行处理的方法及系统 |
-
2021
- 2021-12-10 CN CN202111509772.4A patent/CN114356750A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107913A (zh) * | 2023-04-06 | 2023-05-12 | 阿里云计算有限公司 | 单节点服务器的测试控制方法、装置及系统 |
CN116107913B (zh) * | 2023-04-06 | 2023-11-14 | 阿里云计算有限公司 | 单节点服务器的测试控制方法、装置及系统 |
CN116187715A (zh) * | 2023-04-19 | 2023-05-30 | 巴斯夫一体化基地(广东)有限公司 | 用于为测试任务安排执行计划的方法及装置 |
CN116449032A (zh) * | 2023-04-19 | 2023-07-18 | 巴斯夫一体化基地(广东)有限公司 | 用于实验室对生产线上的产品样本进行处理的方法及系统 |
CN116449032B (zh) * | 2023-04-19 | 2023-12-12 | 巴斯夫一体化基地(广东)有限公司 | 用于实验室对生产线上的产品样本进行处理的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114356750A (zh) | 测试方法、装置、计算机设备和存储介质 | |
US10248671B2 (en) | Dynamic migration script management | |
JP6092718B2 (ja) | 運用計画立案支援システム及び方法 | |
US7898679B2 (en) | Method and system for scheduling jobs in a computer system | |
CN111125444A (zh) | 大数据任务调度管理方法、装置、设备及存储介质 | |
CN103677973A (zh) | 一种分布式多任务调度管理系统 | |
US8959518B2 (en) | Window-based scheduling using a key-value data store | |
CN108491254A (zh) | 一种数据仓库的调度方法及装置 | |
CN110781214A (zh) | 数据库读写方法、装置、计算机设备和存储介质 | |
CN113312153B (zh) | 一种集群部署方法、装置、电子设备及存储介质 | |
US9684689B2 (en) | Distributed parallel processing system having jobs processed by nodes based on authentication using unique identification of data | |
CN109800937A (zh) | 机器人集群调度系统 | |
CN113760513A (zh) | 一种分布式任务调度方法、装置、设备和介质 | |
CN111930716A (zh) | 一种数据库扩容方法、装置及系统 | |
JP2014228983A (ja) | 作業管理装置、作業管理方法及びコンピュータプログラム | |
JP5989194B1 (ja) | テスト管理システムおよびプログラム | |
CN106874343B (zh) | 一种时序数据库的数据删除方法及系统 | |
CN106062738B (zh) | 管理作业状态 | |
CN115202929A (zh) | 数据库集群备份系统 | |
CN113157569B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
US9405786B2 (en) | System and method for database flow management | |
WO2006130509A1 (en) | Method and system for visualizing job forecasting in a computer system | |
CN115357433A (zh) | 容器环境下的数据库备份方法、装置、设备及存储介质 | |
US8832176B1 (en) | Method and system for processing a large collection of documents | |
CN114756293A (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 |