一种自动测试方法、系统及装置的制作方法

文档序号:7757593阅读:106来源:国知局
专利名称:一种自动测试方法、系统及装置的制作方法
技术领域
本发明涉及通信技术领域,尤指一种用于多个测试任务脚本自动化执行的自动测 试方法、系统及装置。
背景技术
目前,在实现使用测试脚本进行测试时,不同的测试脚本对应不同的测试拓扑,常 见的测试拓扑可以分别是如图1所示的测试拓扑1和如图2所示的测试拓扑2。其中,测试 拓扑1所需要的测试资源包含一台测试设备1和测试仪。测试拓扑2所需要的测试资源包 含测试设备1、测试设备2和测试仪。在现有使用测试脚本进行测试的过程中,一般会针对每个不同种类的测试拓扑分 别搭建至少一个独立的测试环境,测试环境中包含了测试拓扑所需要的所有测试仪和测试 设备等测试资源。在使用测试脚本进行测试时,先根据测试拓扑类型、优先级分解成多个不同的测 试子任务,分解出的每个测试子任务里的测试脚本对应的测试拓扑类型都是相同的,不同 测试子任务中的测试脚本所对应的测试拓扑类型可能是相同或者不相同的。通过人工选择 与测试子任务中测试脚本所需的测试拓扑对应的测试环境,调用所选择的测试环境对测试 脚本进行测试。如果测试子任务所需的测试拓扑的测试环境都处于使用状态,则需要等待该测试 环境空闲时,才能进行测试。由于每个测试拓扑测试环境都是单独搭建,不同测试拓扑的测 试环境中的测试资源不能够共享使用,因此即使其他测试环境中的资源能够满足测试子任 务对应的测试拓扑中所需的测试资源,也不能为测试子任务所使用。测试子任务只能等待 某一个或几个针对其测试拓扑搭建的测试环境空闲时才能进行测试。也就是说,这种方式 测试子任务所需的测试环境都忙时就处于等待状态,直到符合条件的测试环境空闲。这种 方式在测试资源充足时,由于每种测试拓扑类型可能对应多个测试环境来满足测试任务的 需要,此时可以自动地调度测试子任务到符合测试拓扑的测试环境进行并行执行,但由于 其资源不能共享,其应用过程中存在以下问题(1)由于测试环境都是独立设置的,每个测试环境中的测试资源不能够被另一个 测试环境使用,导致测试资源不能够充分利用、测试执行效率没有进一步提高。例如预先搭建了三个测试环境测试环境1、测试环境2和测试环境3,其中,测 试环境1和测试环境2里的测试资源加起来可以满足测试环境3的测试资源条件。当测试 环境3中需要执行的测试子任务个数比测试环境1、测试环境2的多且时间也比较长,在测 试环境1和测试环境2的测试子任务都执行结束后,测试环境1、测试环境2处于空闲状态, 虽然测试环境1和测试环境2的测试资源能够满足测试环境3所需的测试资源,但是由于 测试资源不能共享,测试环境1和2的测试资源即使在空闲状态时也不能执行测试环境3 所能执行的测试子任务。因此,导致测试资源闲置,测试资源的利用率低。(2)当某两种测试环境均能满足测试子任务的测试需求时,若该测试子任务的执
5行时间比较长,即使其他的测试资源空闲也不能用于对这个测试子任务进行并行测试。例如测试子任务1在测试环境1上执行,且所需要的时间很长,同时测试环境2 也可以满足测试子任务1的测试需求,当测试环境2上的测试子任务执行完成处于空闲状 态时,即使测试子任务1还没有执行完,也不能使用测试环境2的空闲资源进行并行执行测 试子任务1。导致测试资源利用率不高,执行效率也比较低。(3)即使一个测试子任务只需要某个测试环境的部分测试资源,但由于各个测试 环境已经搭建好,不能拆分使用,因此即使一个测试任务只需要部分测试资源,也会使整个 测试环境的全部测试资源处于不可用状态。例如测试子任务1的测试拓扑是测试环境1的测试拓扑的一个子集,当测试子任 务1在测试环境1中执行时,就使得测试环境1的所有测试资源处于不可用状态,测试环境 1中没有被测试子任务1使用的部分测试资源也不能释放给其他测试子任务使用,因此也 会导致测试资源闲置,测试资源利用率不高,测试资源利用的灵活度低。可见,现有技术中单独搭建的各个测试环境,当其中一个测试环境的测试脚本执 行完释放测试资源后,释放的测试资源不能够自动给另一个缺少测试资源的测试环境使 用,除非对测试环境进行重新搭建以满足其他测试脚本的需求。从而使得在自动化测试过 程中需要投入较多的人力资源。例如测试环境2中缺少一台测试设备或其中的一台测试 设备因故障不能使用,即使测试环境1中有该测试设备且处于空闲状态,也不能直接共享 给测试环境2使用,而必须人工干预,将测试环境1中的空闲设备切换加入到测试环境2 中,实现对测试环境2的重新搭建后才能使用。随着测试拓扑复杂度的提高或者测试设备数量的增加,需要调整的和重新搭建的 可能性也增大,所需投入的人力资源也就更多;由此可见,现有的自动化测试实现方案,测 试资源也不能达到很好共享利用的效果且需要投入大量的人力、物力、财力。例如测试环 境2刚好缺少一台测试设备,需要利用测试环境1测试脚本执行完后释放的测试设备,当测 试环境1的测试脚本执行完了,需要人工干预使测试环境1的测试资源未测试环境2所利 用时,也许测试人员已经下班或者不在,从而不能及时进行切换测试环境,因此,导致测试 资源就一直处于空闲状态,测试资源利用率不高,自动化测试执行效率低。

发明内容
本发明实施例提供一种自动测试方法、系统及装置,用以解决现有技术中存在测 试资源不能共享,测试资源利用率低,测试效率低等问题。一种自动测试方法,包括将接收到的测试任务分解成测试子任务加入测试任务队列中,所述测试子任务中 包含的脚本所需的测试拓扑相同;调度测试队列中的测试子任务,根据当前调度的测试子任务所对应的测试拓扑, 查找是否有所述测试拓扑所需的可用状态的测试仪和测试设备;通过拓扑切换设备将查找到的可用状态的测试仪和测试设备组成测试子系统对 测试子任务进行测试。一种自动测试装置,包括任务接收模块、任务调度模块、资源管理模块和任务执 行模块;
任务接收模块,用于将接收到的测试任务分解成测试子任务加入测试任务队列 中,所述测试子任务中包含的脚本所需的测试拓扑相同;任务调度模块,用于调度测试队列中的测试子任务,将当前调度的测试子任务所 对应的测试拓扑通知给资源管理模块;以及当所述资源管理模块通知查找到所述测试拓扑 所需的可用状态的测试仪和测试设备时,将当前调度的测试子任务和资源管理模块查找到 的所需的可用状态的测试仪和测试设备,通知所述任务执行模块;资源管理模块,用于根据任务调度模块通知的当前调度的测试子任务所对应的测 试拓扑查找是否有所述测试拓扑所需的可用状态的测试仪和测试设备,并通知任务调度模 块;任务执行模块,用于通过拓扑切换设备将任务调度模块通知的查找到的可用状态 的测试仪和测试设备组成测试子系统对测试子任务进行测试。一种自动测试系统,包括若干测试仪、若干测试设备、拓扑切换设备和上述的自 动测试装置;所述自动测试装置,用于将接收到的测试任务分解成若干测试子任务加入测试任 务队列中,所述测试子任务中包含的脚本所需的测试拓扑相同;调度测试队列中的测试子 任务,根据当前调度的测试子任务所对应的测试拓扑,查找是否有所述测试拓扑所需的可 用状态的测试仪和测试设备;控制拓扑切换设备将查找到的可用状态的测试仪和测试设备 组成测试子系统对测试子任务进行测试;所述拓扑切换设备,用于连接所述测试仪和测试设备,将自动测试装置查找到的 可用状态的测试仪和测试设备组成测试子系统。本发明有益效果如下本发明实施例提供的脚本自动测试方法、系统及拓扑切换设备,通过将接收到的 测试任务分解成测试子任务加入测试任务队列中,所述测试子任务中包含的脚本所需的测 试拓扑相同;调度测试队列中的测试子任务,根据当前调度的测试子任务所对应的测试拓 扑,查找是否有所述测试拓扑所需的可用状态的测试仪和测试设备;将查找到的可用状态 的测试仪和测试设备组成测试子系统对测试子任务进行测试。该方式通过拓扑切换设备 实现测试仪和测试设备的动态组合,根据不同测试子任务的测试拓扑需求组成不同的测试 子系统,对各个测试子任务进行测试,这样只要测试仪和测试设备未被占用,就可以被待测 试的测试子任务使用,从而能够充分利用测试系统中的测试资源,包括各个测试仪和测试 设备,提高了测试资源利用率,实现了测试资源的共享使用,由于不同的子系统可以动态组 成,减少了测试资源空闲的可能性。该方法可以不受测试拓扑类型的限制,只需通过拓扑切 换设备即可动态利用和共享测试仪和测试设备形成各种测试拓扑的测试子系统,为要求不 同测试拓扑的测试子任务所用。且可以同时组成多个测试子系统,提高测试的速度和效率, 尤其是在运行多个测试子任务时,其提高测试速度和执行效率的作用更加显著。


图1为现有技术中测试拓扑的一种结构示例图;图2为现有技术中测试拓扑的另一种结构示例图;图3为本发明实施例中自动测试系统的结构示意图4为本发明实施例一-中自动测试方法的实现流程示意图5为本发明实施例二-中自动测试系统的具体结构示意图6为本发明实施例二-中任务接收模块的实现流程示意图7为本发明实施例二-中任务调度模块的实现流程示意图8为本发明实施例二二中任务调度模块对待测试的测试子任务进行调度的流程示意图9为本发明实施例二二中任务调度模块对正在测试的测试子任务进行调度的流程示意图10为本发明实施例—二中资源管理模块的实现流程示意图11为本发明实施例—二中任务执行模块的实现流程示意图12为本发明实施例:三中一个自动测试实例的实现流程图。
具体实施例方式针对现有技术中单独搭建的各个测试环境资源利用率低、测试效率也比较低的问 题,本申请实施例提供一种脚本自动测试方法,该方法搭建一个包含各种测试仪、测试设备 和拓扑切换设备的测试系统(即搭建一个统一的测试环境),将各种测试仪和测试设备通 过拓扑切换设备连接,通过自动测试装置的控制使得各个测试仪和测试设备能够动态组合 成满足各种测试拓扑要求的测试子系统(即动态组合满足各种测试拓扑的测试环境),实 现测试资源的灵活组合、动态搭配,以提高测试资源利用率和测试效率。本发明实施例提供的自动测试系统的结构如图3所示,包括若干测试仪、若干测 试设备、拓扑切换设备和自动测试装置。如图所示,测试仪包括测试仪1、测试仪2、测试仪
3........测试仪η等,测试设备包括测试设备1、测试设备2、测试设备3........测试设
备η等。其中各个测试仪和各个测试设备均与拓扑切换设备直接相连,并能通过拓扑切换 设备的控制实现互连及连接切换。上述自动测试装置,用于将接收到的测试任务分解成测试子任务加入测试任务队 列中,其中每个测试子任务中包含的脚本所需的测试拓扑相同;调度测试队列中的测试子 任务,根据当前调度的测试子任务所对应的测试拓扑,查找是否有当前调度的测试任务所 对用的测试拓扑所需的可用状态的测试仪和测试设备;控制拓扑切换设备将查找到的可用 状态的测试仪和测试设备组成测试子系统对测试子任务进行测试。上述拓扑切换设备,由于连接所述测试仪和测试设备,将自动测试装置查找到的 可用状态的测试仪和测试设备组成测试子系统。上述测试仪和测试设备,用于在自动测试装置的控制下,通过拓扑切换设备动态 组成对测试子任务进行测试的测试子系统。其中,测试仪用于可以根据测试脚本的配置发 送测试所需的测试信号和原始数据信息等。上述自动测试装置可以如图3所示的单独设置为一个独立的装置,也可以设置在 拓扑切换设备中。下面通过具体实施例对使用上述自动测试系统进行测试脚本自动测试的实现过 程进行具体描述。实施例一
8
本发明实施例提供一的自动测试方法,使用如图1所示的自动测试系统实现,该 方法流程如图4所示,执行步骤如下步骤Sl 对接收到的测试任务进行分解,得到若干测试子任务。接收到测试人员提交的测试任务时,一般根据接收到的测试任务中各个测试脚本 的所需的测试拓扑,将接收到的测试任务中的测试脚本进行分类,得到包含需要相同测试 拓扑的若干测试脚本的测试子任务;也就是说将接收到的测试任务进行分解得到的测试子 任务中包含的脚本所需的测试拓扑相同。步骤S2 将分解得到的各个测试子任务加入测试任务队列中。将分解得到的测试子任务加入到测试任务队列中,排队等候测试。优选的,可以根据测试子任务的优先级将测试子任务加入测试任务队列中,并记 录测试子任务的状态信息。步骤S3 调度测试任务队列中的测试子任务。当接收到的测试任务时或当有测试子任务测试完成时,都会触发对测试任务队列 中测试子任务的调度。一般从第一个待调度的测试子任务开始调度,并为其查找与其测试 拓扑所需要的测试仪和测试设备后,并继续调度下一个测试子任务,直至调度完所有的测 试子任务。优选的,按照优先级顺序依次调度测试队列中测试子任务。一般首先对测试任务队列中待测试的测试子任务进行调度,若没有可调度的待测 试的测试子任务或待测试的测试子任务调度完成时,则继续调度正在测试的测试子任务。步骤S4 根据当前调度的测试子任务所对应的测试拓扑,查找是否有该测试拓扑 所需的可用状态的测试仪和测试设备。若当前调度的测试子任务为待测试的测试子任务时,根据当前调度的测试子任务 所对应的测试拓扑,查找自动测试系统的测试资源数据库,确定自动测试系统中是否有该 测试拓扑所需的处于空闲状态和/或处于可获取状态的测试仪和测试设备;也就是说,可用状态的测试仪包括处于空闲状态的测试仪和/或处于可获取状 态的测试仪;可用状态的测试设备包括处于空闲状态的测试设备,和/或处于可获取状态 的测试设备。其中,处于可获取状态的测试仪和测试设备是指被由正在运行的测试子任务 分解出来的子测试子任务占用的测试仪和测试设备。若当前调度的测试子任务为正在测试的测试子任务时,根据当前调度的测试子任 务所对应的测试拓扑,查找自动测试系统的测试资源数据库,确定自动测试系统中是否有 该测试拓扑所需的处于空闲状态的测试仪和测试设备。若是,执行步骤S5,并返回执行步骤S3,继续调度下一个测试子任务。否则直接返 回执行步骤S3,继续调度下一个测试子任务。步骤S5 将查找到的可用状态的测试仪和测试设备组成测试子系统。具体从自动测试系统的测试资源数据库中获取可用状态的测试仪和测试设备,由 拓扑切换设备按照当前调度的测试子任务所需的测试拓扑将可用状态的测试仪和测试设 备连接起来,组成与当前调度的测试子任务所需的测试拓扑对应的测试子系统。步骤S6 通过组成的测试子系统对测试子任务进行测试。若当前调度的测试子任务为待测试的测试子任务时,通过组成的测试子系统执行
9当前调度的测试子任务的测试脚本。若当前调度的测试子任务为正在测试的测试子任务时,将当前调度的正在测试的 测试子任务进行分解,通过组成的测试子系统执行分解出的子测试子任务的测试脚本。实施例二 本发明实施例提供二的脚本自动测试方法,针对如图3所示的自动测试系统中拓 扑切换设备中的各个模块,具体说明各个模块在测试过程中的实现流程。自动测试系统的 具体结构如图5所示,包括自动测试装置、拓扑切换设备、测试仪和测试设备,其中,测试仪
和测试设备可以根据需要组成测试子系统1........测试子系统η等,用于执行测试子任
务1........测试子任务η等。其中,拓扑切换设备与测试仪和测试设备的连接关如图3中所示,各个测试仪和 测试设备之间不直接连接,均与拓扑切换设备连接,从而可以实现针对不同测试拓扑的动 态组合。其中,自动测试装置具体包括任务接收模块10、任务调度模块20、资源管理模块 30和任务执行模块40。上述自动测试装置,还包括测试资源数据库50。任务接收模块10,用于将接收到的测试任务分解成若干测试子任务加入测试任务 队列中,其中一个测试子任务中包含的脚本所需的测试拓扑相同。优选的,上述任务接收模块10具体可以包括分解单元和入队单元。分解单元,用于根据接收到的测试任务中各个测试脚本的所需的测试拓扑,将测 试任务中的测试脚本进行分类,得到包含需要相同测试拓扑的若干测试脚本的测试子任 务。入队单元,用于根据测试子任务的优先级将测试子任务加入测试任务队列中,并 记录测试子任务的状态信息。任务调度模块20,用于调度测试队列中的测试子任务,将当前调度的测试子任务 所对应的测试拓扑通知给资源管理模块30 ;以及当资源管理模块30通知查找到该测试拓 扑所需的可用状态的测试仪和测试设备时,将当前调度的测试子任务和资源管理模块30 查找到的所需的可用状态的测试仪和测试设备,通知该任务执行模块40。优选的,上述任务调度模块20,具体可以包括第一调度单元和第二调度单元。第一调度单元,用于当任务接收模块10接收到的测试任务时或当任务执行模块 40通知有测试子任务测试完成时,按照优先级顺序依次调度测试队列中待测试的测试子任 务;若没有可调度的待测试的测试子任务或待测试的测试子任务调度完成时,则调度正在 测试的测试子任务。第二调度单元,用于当资源管理模块30查找到当前调度的测试子任务测试拓扑 所需的可用状态的测试仪和测试设备,将当前调度的测试子任务和资源管理模块30查找 到的所需的可用状态的测试仪和测试设备,通知任务执行模块40。资源管理模块30,用于根据任务调度模块通知的当前调度的测试子任务所对应的 测试拓扑查找是否有当前调度的测试子任务的测试拓扑所需的可用状态的测试仪和测试 设备,通知任务调度模块20。较佳的,上述资源管理模块30,具体用于根据任务调度模块20通知的当前调度的 测试子任务所对应的测试拓扑查找所述测试资源数据库,确定自动测试系统中是否有当前调度的测试子任务的测试拓扑所需的可用状态的测试仪和测试设备,并通知任务调度模块 20。优选的,上述资源管理模块30,具体可以包括第一查找模块和第二查找模块。第一查找模块,用于若当前调度的测试子任务为待测试的测试子任务时,根据当 前调度的测试子任务所对应的测试拓扑,查找自动测试系统的测试资源库,确定自动测试 系统中是否有该测试拓扑所需的处于空闲状态和/或处于可获取状态的测试仪和测试设 备;其中,处于可获取状态的测试仪和测试设备是指被由正在运行的测试子任务分解出来 的子测试子任务占用的测试仪和测试设备。第二查找模块,用于若当前调度的测试子任务为正在测试的测试子任务时,根据 当前调度的测试子任务所对应的测试拓扑,查找自动测试系统的测试资源库,确定自动测 试系统中是否有该测试拓扑所需的处于空闲状态的测试仪和测试设备。任务执行模块40,用于将任务调度模块20通知的查找到的可用状态的测试仪和 测试设备组成测试子系统对测试子任务进行测试。优选的,上述任务执行模块40,具体可以包括组合模块和执行模块。组合单元,用于从自动测试系统的测试资源数据库中获取可用状态的测试仪和 测试设备,按照当前调度的测试子任务所需的测试拓扑,由拓扑切换设备将可用状态的测 试仪和测试设备连接起来,组成与当前调度的测试子任务所需的测试拓扑对应的测试子系 统。执行单元,用于若当前调度的测试子任务为待测试的测试子任务时,通过组成的 测试子系统执行当前调度的测试子任务的测试脚本;若当前调度的测试子任务为正在测试 的测试子任务时,将当前调度的正在测试的测试子任务进行分解,通过组成的测试子系统 执行分解出的子测试子任务的测试脚本。上述测试资源数据库50,用于存储测试仪和测试设备的状态信息;上述状态信息 包括空闲状态、可获取状态和使用状态;其中,处于可获取状态的测试仪和测试设备是指被 由正在运行的测试子任务分解出来的子测试子任务占用的测试仪和测试设备;资源管理模块30,具体用于根据任务调度模块20通知的当前调度的测试子任务 所对应的测试拓扑查找测试资源数据库50,确定是否有当前调度的测试子任务测试拓扑所 需的可用状态的测试仪和测试设备,并通知任务调度模块20;其中,若当前调度的是待测 试的测试子任务时,可用状态的测试仪和测试设备包括空闲状态和可获取状态的测试仪和 测试设备;若当前调度的是正在测试的测试子任务时,可用状态的测试仪和测试设备包括 空闲状态的测试仪和测试设备。下面针对上述自动测试装置中的各个模块,分别说明各个模块的在测试过程中的 实现过程。任务接收模块10实现对测试人员提交的测试任务的接收和分解后的子任务入 队,即上述步骤Si、步骤S2的所述的执行过程,其实现流程如图6所示,执行步骤如下步骤Sll 接收测试人员提交的测试任务。测试人员将需要测试的测试任务提交给自动测试系统,接收到新提交的测试任务 时,需要对该任务进行处理。步骤S12 将接收到的测试任务进行分解,得到若干测试子任务。
—般根据测试任务中测试脚本的测试拓扑的类型进行分类,将测试拓扑相同的分 解到一个测试子任务中。优选的,进一步考虑测试任务中测试脚本的优先级,将测试拓扑相 同且优先级也相同的测试脚本分解到一个测试子任务中。步骤S13 确定每个测试子任务的测试预期时长。每个测试子任务预期所需要的测试预期时长,可以根据每个测试子任务中需要执 行的测试脚本名称到测试脚本库中获取对应测试脚本预期执行时间长度,进而得出测试子 任务预期执行的总时间长度,即测试预期时长。测试脚本库是测试人员维护的一个文件,其中记录了测试脚本各种属性信息,测 试脚本库里的测试脚本预期执行用时间长度,是在测试脚本第一次完整执行完后,根据执 行该脚本所用的时间确定出来的,该时间可以由测试人员填写。步骤S14 根据测试子任务的优先级将测试子任务加入测试任务队列中。测试任务队列用于存放测试子任务即测试子任务的属性信息,其属性信息包括测 试子任务名称、测试子任务的状态、测试子任务的测试预期时长,此外,还可以包括正在执 行的测试子任务的已测试时间长度等等。将测试子任务提交到测试队列中时,根据其优先级提交,针对相同优先级的测试 子任务,则根据提交的先后顺序依次放入测试任务队列中。将测试子任务放入测试任务队列中时,将其状态设置为“新状态”,以表征该测试 子任务处于待测试状态。测试任务队列中的测试子任务包括待测试状态和正在测试状态(即运行状态), 测试任务队列中的测试子任务还可以包括测试完成状态。其中,待测试状态包括新提交的 “新状态”的测试子任务和和先前提交的经过至少一次调度没有找到满足条件的测试资源 (包括测试仪和测试设备)来执行测试而处于“等待状态”的测试子任务。运行状态是指测 试子任务经过调度,有满足测试条件的测试资源来执行测试,从而正在进行测试且尚未测 试完成的测试子任务。测试子任务名称是测试人员提交测试子任务时定义的,且是唯一的。测试子任务的测试预期时长即上述步骤S13中确定出的测试预期时长。测试子任务已测试时间长度是针对正在测试的测试子任务而言的,具体是指测试 子任务执行过程中已经消耗的时间。该时间在每执行完测试子任务中的一个测试脚本进行 一次更新,具体由任务执行模块来完成对测试队列中的该项纪录的更新的。步骤S15 检测任务调度模块是否正在执行测试任务调度流程。通过任务调度模块的运行状态信息变量,可以判断出任务调度模块是否正在执行 测试任务调度流程。若是,则执行步骤S17 ;若否,执行步骤S16。步骤S16 触发测试任务调度流程。也就是说,新的测试任务提交时,如果任务调度模块没有运行,既没有执行测试任 务调度流程,则触发任务调度模块运行,启动测试任务调度流程。触发测试任务调度流程后执行步骤S17。步骤S17 结束本次测试任务提交流程。也就是说,新的测试任务提交时,如果任务调度模块正在运行,既正在执行测试任
12务调度流程,则可以直接结束本次测试任务提交流程,继续等待接收测试人员提交的测试 任务。此外,如果新的测试任务提交时,任务调度模块没有运行,则在触发任务调度模块 运行,启动测试任务调度流程后结束本次测试任务提交流程,继续等待接收测试人员提交 的测试任务。上述任务调度模块20,主要用于测试子任务以及所需要的测试资源的调度,也就 是说,任务调度模块的作用从测试任务队列中获取测试子任务,然后根据测试资源的满足 情况来管理测试子任务的执行。其实现流程如图7所示,执行步骤如下步骤S21 监听到触发消息时启动测试任务调度流程。监听测试任务调度流程的触发消息,测试任务调度流程的触发消息,一般在任务 接收模块接收到新的测试任务时或任务执行模块执行完一个测试子任务释放测试资源时, 会向任务调度模块发送测试任务调度流程的触发消息,也就是说,当任务接收模块接收到 的测试任务时或当任务执行模块通知有测试子任务测试完成时,按照优先级顺序依次调度 测试队列中测试子任务。步骤S22 测试任务队列中是否有待测试状态的测试子任务。一般若是测试任务提交触发调度模块执行调度,则测试任务队列中一般有待测试 的测试子任务,若是测试资源释放触发调度模块执行调度,则测试队列中可能没有待测试 的测试子任务。若是,执行步骤S23 ;若否,执行步骤S25。步骤S23 对待测试状态的测试子任务进行调度。对待测试的测试子任务进行调度的具体实现过程在下面进行详细论述。步骤S24 测试任务队列中待测试状态的测试子任务是否调度完。若是,执行步骤S25,否则返回继续执行步骤S23。步骤S25 测试任务队列中是否有正在测试状态的测试子任务。若没有待测试的测试子任务或在处于待测试状态的测试子任务全部调度处理完 之后,开始查看是否有正在测试状态的测试子任务,并调度处理正在测试状态的测试子任 务。优选的,当所有状态待测试状态的测试子任务都调度后,任务调度模块开始从测 试任务队列中按照剩余执行时间(剩余执行时间=测试预期时长-已测试时间长度)从长 到短得关系调度正在测试状态的测试子任务。若是,执行步骤S26,否则,执行步骤S28。步骤S26 对正在测试状态的测试子任务进行调度。对正在测试的测试子任务进行调度的具体实现过程在下面进行详细论述。步骤S27 测试任务队列中正在测试状态的测试子任务是否调度完。若是,执行步骤S28,否则返回继续执行步骤S26。步骤S28 结束本次测试任务调度流程。当处于待测试状态和处于正在测试状态的测试子任务全部调度处理完之后,本次 启动的测试任务调度流程结束。任务调度模块继续监听启动测试任务调度流程的触发消 肩、ο
也就是说,每次测试任务调度流程启动后,首先按照测试任务队列中测试子任务 的排列顺序,依次调度待测试的测试子任务进行处理。然后再从测试任务队列中依次调度 正在测试的测试子任务进行处理。直至所有状态的测试子任务都调度处理一次后,本次测 试任务调度流程结束,任务调度模块处于监听状态。步骤S23对待测试状态的测试子任务进行调度具体实现过程如图8所示,执行步 骤如下步骤S231 任务调度模块从测试队列中调度待测试状态的测试子任务,并将当前 调度的测试子任务通知给资源管理模块。任务调度模块按照测试子任务在测试任务队列中的优先级顺序,从测试任务队列 中依次调度待测试状态(包括“新状态”或“等待状态”)的测试子任务。然后调用资源管理 模块到测试资源数据库中查找是否有与该测试子任务的测试拓扑所需的可用的测试资源, 包括可用状态的测试仪和测试设备。步骤S232 资源管理模块是否查找到有至少一套可用状态的测试仪和测试设备。若查找到一套满足当前调度的测试子任务的测试拓扑所需的可用状态的测试仪 和测试设备时,执行步骤S233,否则执行步骤S239。步骤S233 判断查找到的可用状态的测试仪和测试设备中是否包含可获取状态 的测试仪或测试设备。可获取状态的测试仪和测试设备是指被一个测试子任务分解出的子测试子任务 占用的测试仪和测试设备。当存在空闲的测试资源,且空闲的测试资源满足正在测试的测 试子任务的测试需求时,将正在测试的测试子任务分解,分解出的子测试子任务(不限于 一个子测试子任务,其数量根据空闲的测试资源可以组成几套满足该测试子任务需要的测 试子系统确定)由空闲的测试仪和测试设备组成的测试子系统执行测试,将这些用于执行 子测试子任务的空闲状态的测试仪和测试设备的状态变为可获取状态,而测试子任务最先 占用的测试仪和测试设备(即父测试子任务占用的测试仪和测试设备)仍然为使用状态, 不能被其他测试子任务使用。若是,执行步骤S234,若否,执行步骤S237。步骤S234 确定使用可获取状态的测试仪或测试设备的子测试子任务。步骤S235 通知任务执行模块停止执行该子测试子任务。步骤S236 将该子测试子任务合并到所属的测试子任务中执行。也就是说,如果找到一套测试资源且测试资源有“可获取状态”的测试仪和测试设 备,则停止使用该测试仪或测试设备的子测试子任务的运行,将可获取状态的测试仪或测 试设备释放出来。执行当前调度的测试子任务。同时,把没有测试完成的子测试子任务合 并回所属的测试子任务中继续执行。步骤S237 更新测试任务队列中当前调度的测试子任务为正在测试状态。也就是说,当查找到的可用状态的测试仪和测试设备中不包含可获取状态的测试 仪或测试设备是,则可以调度执行当前调度的测试子任务了。例如如果找到一套测试资源 且测试资源都为“空闲状态”,就执行调度的测试子任务,同时在测试任务队列中设置该测 试子任务为“运行状态”。步骤S238 调度任务执行模块将可用状态的测试仪和测试设备组成子系统,测试当前调度的测试子任务。然后执行步骤S240。步骤S239 若当前调度的测试子任务为新状态的测试子任务,更新当前调度的测 试子任务的状态为等待状态。也就是说,如果资源管理模块没有查找到可用状态的测试仪和测试设备,即没有 测试资源满足当前调度的测试子任务的测试需求,则不执行调度测试该测试子任务的流 程。若其为等待状态的测试子任务则直接执行步骤S240,若其为新状态的测试子任务则将 其改为等待状态,然后执行步骤S240。步骤S240 结束对该测试子任务的调度流程。上述处理方式,可以优先保证每一个测试子任务都有一套测试资源执行,防止某 个测试子任务的测试资源被其他测试子任务占用严重处于等待状态,使得测试子任务很好 地并行执行的效果,达到充分利用测试资源,提高测试执行效率。步骤S26对正在测试状态的测试子任务进行调度的具体实现过程如图9所示,执 行步骤如下步骤S261 任务调度模块从测试队列中调度正在测试状态的测试子任务,并将当 前调度的测试子任务通知给资源管理模块。任务调度模块按照设定的规则从测试任务队列中依次调度正在测试状态(运行 状态)的测试子任务。然后调用资源管理模块到测试资源数据库中查找是否有与该测试子 任务的测试拓扑所需的可用的测试资源(即空闲的测试仪和测试设备)。例如可以按照正在测试的测试子任务在测试任务队列中的优先级顺序依次调 度,也可以按照正在测试的测试子任务的剩余时间由高到低的顺序依次调度正在运行侧测 试子任务。步骤S262 资源管理模块是否查找到有至少一套可用状态的测试仪和测试设备。若查找到至少一套满足当前调度的测试子任务的测试拓扑所需的可用状态的测 试仪和测试设备时,执行步骤S263,否则执行步骤S265。也就是说,如果找到一套空闲的测试仪和测试设备则执行调度该正在运行的测试 子任务的步骤。步骤S263 根据查找到的可用状态的测试仪和测试设备能够组建的测试子系统 的数量对于测试子任务进行分解。例如如果找到还有2套测试测试仪和测试设备可以满足该正在运行的测试子任 务的测试需求,则任务调度模块就把该正在运行的测试子任务没有执行的部分按照时间平 均分成3个任务执行,新分出了 2个任务为子测试子任务。步骤S264 通知执行模块将查找到的可用状态的测试仪和测试设备组成测试子 系统,将分解得到的子测试子任务加入到组建的测试子系统中执行测试。沿用上边的例子,调用任务执行模块将查找到的可用状态的测试仪和测试设备组 成这2个测试子系统分别执行两个子测试子任务。原来测试子任务仍继续执行,只是执行 的测试脚本变少。步骤S265 结束对当前调度的正在运行的测试子任务的调度流程。如果没有找到满足当前调度的测试子任务需求的测试资源,则不对该测试子任务
15进行分解。上述方式,在测试系统的资源有空闲时,能够动态地充分利用测试资源,通过将测 试子任务动态分成多个“子测试子任务”并行执行,在充分利用测试资源的同时,进一步提 高了测试执行效率。上述资源管理模块,主要用于查找是否有调度子任务需要的可用状态的测试仪和 测试设备,其实现流程如图10所示,执行步骤如下步骤S31 监控任务调度模块需要获取资源的通知和任务执行模块释放资源的通 知。若是任务调度模块需要获取资源,则执行步骤S32 ;若是任务执行模块释放资源, 则执行步骤S34。其中,测试资源包括测试仪和测试设备,测试资源的相关信息统一保存在测试资 源数据库中,测试资源数据库中的保存的测试资源信息包括测试仪的属性信息(如名 称)、使用状态信息、与拓扑切换设备的连接关系(包括测试端口信息)、使用该测试仪的 测试子任务等;以及测试设备的名称、属性信息、使用状态信息与拓扑切换设备的连接关系 (包括测试端口信息)、使用该测试设备的测试子任务名称等。这些测试资源的信息,在搭 建自动测试系统时由测试人员预先设置,当自动测试系统改变时,由测试人员更改。其中测试端口信息是指测试仪或测试设备参与测试的端口信息。测试资源和拓扑切换设备的连接关系是测试仪或测试设备与拓扑切换设备相互 连接的测试端口信息。测试资源属性信息包含测试资源类型、测试资源的名称、测试资源的访问地址等 fn息ο使用状态信息包括可用状态(即可用状态的测试仪和测试设备)和不可用状态 (即不可用状态的测试仪和测试设备),其中,可用状态针对不同的测试子任务的含义不 同,针对待测试的测试子任务包括可获取状态和空闲状态,针对正在测试的测试子任务包 括空闲状态。而不可用状态针对不同的测试任务的含义也不同,针对待测试的测试子任务 包括使用状态和坏状态,针对正在测试的测试子任务包括可获取状态、使用状态,当测试设 备或测试仪故障时,还可以包括坏状态。其中测试仪和测试设备的四种状态分别说明如下空闲状态是指测试仪或测试设备默认的初始状态,该状态的测试仪或测试设备可 以提供任何测试子任务使用。使用状态是测试资源被测试子任务使用,而在被释放前不能被其他测试子任务使用。可获取状态是指被一个测试子任务的子测试子任务占用的测试仪或测试设备。也 就是说当一个测试子任务可能占用多套测试资源并行执行,将最先占用的一套测试资源设 置为使用状态(不能被其他测试子任务使用),之后占用的测试资源设置为可获取状态(可 以被待测试状态的测试子任务使用)。坏状态是指测试仪或测试设备被损坏不能用作测试。使用测试资源的测试子任务名称是指当测试资源被某个测试子任务使用时,同时 把该测试子任务的名称记录下来,根据测试子任务的名称可以知道测试仪或测试设备可以供哪个测试子任务时用,其中测试子任务的名称是唯一的。步骤S32 查找任务调度模块需要调度的测试资源。即根据任务调度模块当前调度的测试子任务,到测试资源数据库查找是否有当前 调度的测试子任务所需要的可用状态的测试仪和测试设备。如上述对任务调度模块的描述中所述的,若当前调度的是待测试的测试子任务或 是正在测试的测试子任务,其查找可用状态的测试仪和测试设备的匹配条件不同。如果是正在测试的测试子任务则只查找测试资源数据库中是否有符合该测试子 任务需求的空闲状态的测试仪和测试设备。如果是待测试的测试子任务,则查找测试资源 数据库中是否有符合该测试子任务需求的可获取状态的和空闲状态的测试仪和测试设备。同时判断和匹配测试资源的类型(是测试仪还是测试设备)以及其端口号是否满 足,直到找到可用状态的测试仪和测试设备位置,返回查找到的测试仪和测试设备等查找 结果。如果查找完整个数据库都没有查找到,则返回为查找到满足测试子任务需求的测试 仪和测试设备的查找结果。步骤S33 向任务调度模块返回查找结果。然后执行步骤S36步骤S34 释放测试完成的测试子任务所占用的测试资源。资源管理模块接收到任务执行模块通知释放测试子任务占用的测试资源时,将该 测试子任务占用的测试资源的使用状态更改为空闲状态。步骤S35 触发任务执行模块启动测试任务调度流程。资源管理模块释放资源后触发新的测试任务调度流程,以便重新调度测试子任 务,达到充分利用测试资源的目的。步骤S36:结束。上述任务执行模块,主要用于在资源管理模块查找到满足测试条件的测试资源 时,将查找的可用状态的测试仪和测试设备进行连接,组成测试子系统,将任务调度模块调 度的测试子任务该子系统中执行。其实现流程如图11所示,执行步骤如下步骤S41 任务执行模块根据任务调度模块的调度将查找到的可用状态的测试仪 和测试设备组成测试子系统。任务执行模块接收到一个测试子任务执行,就根据测试子任务的测试拓扑,将查 找到的可用状态的测试仪和测试设备根据其与拓扑切换设备的连接端口信息连接起来,形 成一个测试子系统。一般通过对拓扑切换设备配置,创建特殊虚拟局域网(Virtual Local Area Network, VLAN)的通信隧道,动态搭建与测试子任务的测试拓扑对应的测试子系统。步骤S42 任务执行模块将任务调度模块当前调度的测试子任务调度到组成的测 试子系统中执行测试。测试子系统组成后,加载自动化运行的公共库、测试脚本,接着开始执行测试子任 务的测试脚本,每执行完一个测试脚本,就及时更新测试任务队列中测试子任务的已测试 时间长度。直到测试子任务的所有测试脚本执行结束后,就及时更新测试任务队列中测试 子任务的状态为完成状态。也就是说,任务执行模块的作用是负责搭建测试子任务所需的测试子系统,完成
17对测试子系统的测试拓扑配置和初始化、控制测试子任务的执行、控制多个测试子任务并 行执行、更新测试子任务的已测试时间长度等。如图5中所示,任务执行模块根据任务调度模块的调度可以组成测试子系统 1........测试子系统η分别对测试子任务1........测试子任务η进行测试。实施例三本发明实施例提供三的自动测试方法,以一个具体实例说明使用如图5所示的自 动测试系统实现自动测试的过程,其中,提交测试任务并加入测试任务队列的过程该方法 流程如图12所示,执行步骤如下步骤S51 搭建自动测试系统。将拓扑切换设备、测试仪和测试设备相连接,具体将测试仪和测试设备均与拓扑 切换设备连接起来。其中,每个测试仪、测试设备与拓扑切换相连接的端口个数可以根据各种不同类 型的测试拓扑的需求进行连接,最好以需求端口个数最多的为标准,连接的测试资源尽可 能多些。例如将四台测试仪(测试仪1、2、3、4)和5台测试设备(测试设备1、2、3、4、5) 连接到一个拓扑切换设备,搭建成一个自动测试系统(即统一的测试环境)步骤S52 创建测试资源数据库,将自动测试系统中的测试资源信息录入测试资 源数据库中。录入的测试资源信息包括测试资源访问地址、测试资源类型(测试仪还是测试 设备)、测试资源的测试端口、测试资源和拓扑切换设备连接关系。具体包括测试仪的名 称、属性信息、使用状态信息与拓扑切换设备的连接关系、测试端□信息、使用该测试设备 的测试子任务名称等;以及测试设备的名称、属性信息、使用状态信息与拓扑切换设备的连 接关系、测试端口信息、使用该测试设备的测试子任务名称等。步骤S53 向自动测试系统提交测试任务。具体参见上述实施例一和实施例二中提交测试任务的步骤。步骤S54 分解提交的测试任务。例如将提交的测试任务分解为4个测试子任务测试子任务1、测试子任务2、测 试子任务3、测试子任务4。其中测试子任务1所需要的测试资源包括1台测试仪和1台测试设备、测试时间为1 小时、优先级最高。测试子任务2所需要的测试资源包括1台测试仪和1台测试设备、测试时间为2 小时、优先级第2。测试子任务3所需要的测试资源包括1台测试仪和2台测试设备,测试时间为6 小时、优先级第3。测试子任务4所需要的测试资源需要1台测试仪和3台测试设备,测试时间为1 小时、优先级第4。步骤S55 调度测试子任务。根据上边是实施例一和二的描述,由任务调度模块调度测试子任务。沿用上边的例子,首先调度测试子任务1 ;然后依次调度测试子任务2、测试子任 务3、测试子任务4
步骤S56 查找当前调度的测试子任务所需要的测试资源。根据上边是实施例一和二的描述,由资源管理模块查找是否存在符合当前调度的 测试子任务的测试拓扑的测试仪和测试设备。沿用上边的例子,例如针对测试子任务1,假如测试仪1和测试设备1满足测试子任务1的测试拓扑,且 处于空闲状态,即查找到了可用测试仪和测试设备。针对测试子任务2,假如测试仪2和测试设备2满足测试子任务2的测试拓扑,且 处于空闲状态,即查找到了可用测试仪和测试设备。针对测试子任务3,假如测试仪3和测试设备3、4满足测试子任务3的测试拓扑, 且处于空闲状态,即查找到了可用测试仪和测试设备。针对测试子任务4,没有查找到符合测试子任务4的测试需求的可用测试仪和测 试设备,则测试子任务4的状态更改为等待状态。步骤S57 对当前调度的测试子任务进行测试。由任务执行模块将查找到的测试仪和测试设备组成测试子系统,对当前调度的测 试子任务执行测试。沿用上边的例子,例如针对测试子任务1,将测试仪1和测试设备1通过拓扑切换设备组成测试子系统 1,对测试子任务1进行测试;并将测试仪1和测试设备1状态改为使用状态。针对测试子任务2,将测试仪2和测试设备2通过拓扑切换设备组成测试子系统 2,对测试子任务2进行测试;并将测试仪2和测试设备2状态改为使用状态。针对测试子任务3,将测试仪3和测试设备3、4通过拓扑切换设备组成测试子系统 3,对测试子任务3进行测试;并将测试仪3和测试设备3、4状态改为使用状态。步骤S58 测试子任务测试完成释放测试资源,触发测试任务调度流程。测试子任务完成后任务执行模块通知资源管理模块释放所占用的测试仪和测试 设备。仍沿用上边的例子,例如等待一个小时后测试子任务1执行结束,测试仪1和测试设备1被释放。又等待一个小时后测试子任务2 (即等待两个小时后)执行结束,测试仪2和测试 设备2被释放。测试子任务2测试完成后,测试任务4开始测试,再等待一个小时后测试子任务 4(即等待三个小时后)执行结束,测试仪1和测试设备1、2、5被释放。步骤S59 对测试任务队列中的测试子任务进行调度。沿用上边的例子,例如当测试子任务1测试完成时,先调度测试任务队列处于待测试状态的测试子任 务,此时处于待测试状态的只有测试子任务4,则由于释放了测试仪1和测试设备1,空闲的 测试资源只有测试仪1、4,测试设备1、5。不能满足测试测试子任务4的测试需求。则测试 子任务4继续等待,同时开始调度正在运行的测试子任务2和3。由于测试子任务3的剩余执行时间比较长,因此先调度测试子任务3,例如测试仪 1和测试设备1、5满足测试需求。在调度了测试子任务3之后调度测试任务2,剩余的测试资源不能满足其测试需求了。又例如当测试子任务2测试完成时,先调度测试任务队列处于待测试状态的测试子任 务,此时处于待测试状态的只有测试子任务4,则由于又释放了测试仪2和测试设备2,可用 的测试资源有测试仪1、2、4,测试设备1、2、5,能满足测试测试子任务4的测试需求。例如 测试仪1和测试设备1、2、5满足测试需求。在调度了测试子任务4之后调度测试任务3,剩余的测试资源不能满足其测试需 求了。再例如当测试子任务4测试完成时,测试任务队列没有处于待测试状态的测试子任务, 则开始调度正在运行的测试子任3。此时空闲的测试资源只有测试仪1、2、4,测试设备1、2、 5,能够测试子任务3的测试需求。例如测试仪1和测试设备1、2满足测试需求。步骤S60 对当前调度的测试子任务进行分解后并行测试。若当前调度的是待测试状态的测试子任务,则直接组成测试子系统进行测试,将 占用的测试资源该为使用状态。若当前调度的是正在测试状态的测试子任务,则组成测试 子系统进行测试,将占用的测试资源该为可获取状态。沿用上边的例子,例如在测试子任务1测试完成后,将测试测试仪1和测试设备1、5组成测试子系统4, 将测试子任务3拆分出一个子测试子任务,由测试子系统4执行测试。从而实现了对测试 子任务3的并行测试。当测试子任务2测试完成时,需要测试仪1和测试设备1、2、5组成测试子系统5, 由测试子系统5对测试子任务4的进行测试。由于测试仪1和测试设备1、5属于可获取的 测试资源,因此,需要先停止测试子任务3的子测试子任务的并行测试,释放测试资源并将 测试子任务3的子测试子任务合并回测试子任务3中。再例如当测试子任务4测试完成时将测试仪1和测试设备1、2组成测试子系统6,将测试 子任务3拆分出一个子测试子任务,由测试子系统6执行测试。从而实现了对测试子任务 3的并行测试。上述处理过程仅可能的充分利用你够了自动测试系统中的测试资源,尽量保证每 个测试子任务都有一套测试资源可以被使用,缩短了测试任务的总体测试时间。步骤S61 完成对提交的测试任务的测试。沿用上边的例子,当测试热舞3测试完成时,完成对提交的测试任务1的测试。上述仅仅是以提交一个测试任务为例进行说明,实际应用中,可以在测试过程中 随时提交测试任务进行测试。本发明实施例提供的上述自动测试系统、方法及拓扑交换设备,通过拓扑切换设 备连接测试仪和测试设备,实现根据不同测试子任务的测试拓扑需求动态组成不同的测试 子系统,对各个测试子任务进行测试,这样只要测试仪和测试设备未被占用,就可以被待测 试的测试子任务使用,从而能够充分利用测试系统中的测试资源,包括各个测试仪和测试 设备。提高了测试资源利用率,实现了测试资源的共享使用。由于不同的子系统可以动态
20组成,减少了测试资源空闲的可能性。该方法可以不受测试拓扑类型的限制,只需通过拓扑切换设备即可动态利用和共 享测试仪和测试设备形成各种测试拓扑的测试子系统,为要求不同测试拓扑的测试子任务 所用。可以同时组成多个测试子系统,提高测试的速度和效率,尤其是在运行多个测试子任 务时,其提高测试速度和执行效率的作用更加显著。该方法只要有空闲的测试资源时就能够被各个不同测试拓扑类型的测试子任务 充分利用,且在没有待测试的测试子任务时,还可以将正在测试测试子任务进行分解并行 测试。从而进一步提高测试执行效率,缩短测试时间。当有待测试的测试子任务时,可已经 并行测试的测试资源释放出来,尽量保证每个的测试子任务都能够尽快获取到可用的测试 资源,减少等待时间。该方法可以综合考虑各个测试仪和测试设备的状态实现协调共享使用,结合测试 子系统检测机制,检测测试拓扑的测试子系统是否可以使用,测试拓扑中的各个测试仪和 测试设备是否能够相互通信,在不能满足测试需求时,可以及时切换到其他符合测试条件 的测试资源执行测试,减小和尽量避免测试终止的可能性。上述自动测试系统不需要针对不同的测试拓扑,分别搭建多个测试系统,不需要 区分测试子任务的测试拓扑,有针对性的选择固定搭建好的测试系统。而是根据测试子任 务的需求动态组合。从而减少了测试仪和测试设备的投入数量,减少了自动测试的成本投 入。且通过拓扑切换设备自动动态调配测试资源,减少了人工操作,节约了人力资源投入。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
一种自动测试方法,其特征在于,包括将接收到的测试任务分解成测试子任务加入测试任务队列中,所述测试子任务中包含的脚本所需的测试拓扑相同;调度测试队列中的测试子任务,根据当前调度的测试子任务所对应的测试拓扑,查找是否有所述测试拓扑所需的可用状态的测试仪和测试设备;通过拓扑切换设备将查找到的可用状态的测试仪和测试设备组成测试子系统对测试子任务进行测试。
2.如权利要求1所述的方法,其特征在于,所述将接收到的测试任务分解成测试子任 务加入测试任务队列中,具体包括根据接收到的测试任务中各个测试脚本所需的测试拓扑,将所述测试任务中的测试脚 本进行分类,得到包含需要相同测试拓扑的测试脚本的测试子任务;根据测试子任务的优先级将测试子任务加入测试任务队列中,并记录测试子任务的状 态fe息。
3.如权利要求1所述的方法,其特征在于,所述调度测试队列中的测试子任务,具体包括当接收到的测试任务时或当有测试子任务测试完成时,按照优先级顺序依次调度测试 队列中待测试的测试子任务;若没有可调度的待测试的测试子任务或待测试的测试子任务调度完成时,则调度正在 测试的测试子任务。
4.如权利要求1-3任一所述的方法,其特征在于,所述可用状态的测试仪包括处于空 闲状态的测试仪和/或处于可获取状态的测试仪;所述可用状态的测试设备包括处于空闲状态的测试设备,和/或处于可获取状态的 测试设备;上述处于可获取状态的测试仪和测试设备是指被由正在运行的测试子任务分解出来 的子测试子任务占用的测试仪和测试设备。
5.如权利要求4所述的方法,其特征在于,所述根据当前调度的测试子任务所对应的 测试拓扑,查找是否有所述测试拓扑所需的可用状态的测试仪和测试设备;包括若当前调度的测试子任务为待测试的测试子任务时,根据当前调度的测试子任务所对 应的测试拓扑,查找是否有该测试拓扑所需的处于空闲状态和/或处于可获取状态的测试 仪和测试设备;若当前调度的测试子任务为正在测试的测试子任务时,根据当前调度的测试子任务所 对应的测试拓扑,查找有该测试拓扑所需的处于空闲状态的测试仪和测试设备。
6.如权利要求5所述的方法,其特征在于,若当前调度的测试子任务为正在测试的测 试子任务时,所述将查找到的可用状态的测试仪和测试设备组成测试子系统对测试子任务 进行测试,具体包括获取空闲状态的测试仪和测试设备,按照当前调度的测试子任务所需的测试拓扑将可用状态的测试仪和测试设备连接起 来,组成与当前调度的测试子任务所需的测试拓扑对应的测试子系统;将当前调度的正在测试的测试子任务进行分解,通过组成的测试子系统执行分解出的子测试子任务的测试脚本。
7.一种自动测试装置,其特征在于,包括任务接收模块、任务调度模块、资源管理模 块和任务执行模块;所述任务接收模块,用于将接收到的测试任务分解成测试子任务加入测试任务队列 中,所述测试子任务中包含的脚本所需的测试拓扑相同;所述任务调度模块,用于调度测试队列中的测试子任务,将当前调度的测试子任务所 对应的测试拓扑通知给资源管理模块;以及当所述资源管理模块通知查找到所述测试拓扑 所需的可用状态的测试仪和测试设备时,将当前调度的测试子任务和资源管理模块查找到 的所需的可用状态的测试仪和测试设备,通知所述任务执行模块;所述资源管理模块,用于根据任务调度模块通知的当前调度的测试子任务所对应的测 试拓扑查找是否有所述测试拓扑所需的可用状态的测试仪和测试设备,并通知任务调度模 块;所述任务执行模块,用于通过拓扑切换设备将所述任务调度模块通知的查找到的可用 状态的测试仪和测试设备组成测试子系统对测试子任务进行测试。
8.如权利要求7所述的自动测试装置,其特征在于,所述任务接收模块,具体包括分解单元,用于根据接收到的测试任务中各个测试脚本的所需的测试拓扑,将所述测 试任务中的测试脚本进行分类,得到包含需要相同测试拓扑的若干测试脚本的测试子任 务;入队单元,用于根据测试子任务的优先级将测试子任务加入测试任务队列中,并记录 测试子任务的状态信息。
9.如权利要求7所述的自动测试装置,其特征在于,所述任务调度模块,具体包括第一调度单元,用于当所述任务接收模块接收到的测试任务时或当所述任务执行模块通知有测试子任务测试完成时,按照优先级顺序依次调度测试队列中待测试的测试子任 务;若没有可调度的待测试的测试子任务或待测试的测试子任务调度完成时,则调度正在 测试的测试子任务;第二调度单元,用于当所述资源管理模块查找到所述测试拓扑所需的可用状态的测试 仪和测试设备,将当前调度的测试子任务和资源管理模块查找到的所需的可用状态的测试 仪和测试设备,通知所述任务执行模块。
10.如权利要求7-9任一所述的自动测试装置,其特征在于,还包括测试资源数据库, 用于存储测试仪和测试设备的使用状态信息;所述状态信息包括空闲状态、可获取状态和 使用状态;所述处于可获取状态的测试仪和测试设备是指被由正在运行的测试子任务分解 出来的子测试子任务占用的测试仪和测试设备;所述资源管理模块,具体用于根据任务调度模块通知的当前调度的测试子任务所对应 的测试拓扑查找所述测试资源数据库,确定是否有所述测试拓扑所需的可用状态的测试仪 和测试设备,并通知任务调度模块;其中,若当前调度的是待测试的测试子任务时,可用状 态的测试仪和测试设备包括空闲状态和可获取状态的测试仪和测试设备;若当前调度的是 正在测试的测试子任务时,可用状态的测试仪和测试设备包括空闲状态的测试仪和测试设 备。
11.如权利要求10所述的自动测试装置,其特征在于,所述资源管理模块,具体包括第一查找模块,用于若当前调度的测试子任务为待测试的测试子任务时,根据当前调 度的测试子任务所对应的测试拓扑,查找所述测试资源数据库,确定是否有该测试拓扑所 需的处于空闲状态和/或处于可获取状态的测试仪和测试设备;第二查找模块,用于若当前调度的测试子任务为正在测试的测试子任务时,根据当前 调度的测试子任务所对应的测试拓扑,查找所述测试资源数据库,确定是否有该测试拓扑 所需的处于空闲状态的测试仪和测试设备。
12.如权利要求11所述的自动测试装置,其特征在于,所述任务执行模块,具体包括 组合单元,用于获取可用状态的测试仪和测试设备,由所述拓扑切换设备按照当前调度的测试子任务所需的测试拓扑将可用状态的测试仪和测试设备连接起来,组成与当前调 度的测试子任务所需的测试拓扑对应的测试子系统;执行单元,用于若当前调度的测试子任务为待测试的测试子任务时,通过组成的测试 子系统执行当前调度的测试子任务的测试脚本;若当前调度的测试子任务为正在测试的测 试子任务时,将当前调度的正在测试的测试子任务进行分解,通过组成的测试子系统执行 分解出的子测试子任务的测试脚本。
13.一种自动测试系统,其特征在于,包括若干测试仪、若干测试设备、拓扑切换设备 和上述权利要求7-12任一所述的自动测试装置;所述自动测试装置,用于将接收到的测试任务分解成测试子任务加入测试任务队列 中,所述测试子任务中包含的脚本所需的测试拓扑相同;调度测试队列中的测试子任务,根 据当前调度的测试子任务所对应的测试拓扑,查找是否有所述测试拓扑所需的可用状态的 测试仪和测试设备;控制拓扑切换设备将查找到的可用状态的测试仪和测试设备组成测试 子系统对测试子任务进行测试;所述拓扑切换设备,用于连接所述测试仪和测试设备,将自动测试装置查找到的可用 状态的测试仪和测试设备组成测试子系统。
全文摘要
本发明公开了一种脚本自动测试方法、系统及装置,该方法包括将接收到的测试任务分解成测试子任务加入测试任务队列中,所述测试子任务中包含的脚本所需的测试拓扑相同;调度测试队列中的测试子任务,根据当前调度的测试子任务所对应的测试拓扑,查找是否有所述测试拓扑所需的可用状态的测试仪和测试设备;通过拓扑切换设备将查找到的可用状态的测试仪和测试设备组成测试子系统对测试子任务进行测试。该方式可以实现测试仪和测试设备的动态组合,从而能够充分利用测试系统中的测试资源,提高测试的速度和效率。
文档编号H04L12/26GK101917306SQ20101025974
公开日2010年12月15日 申请日期2010年8月20日 优先权日2010年8月20日
发明者李炳泉 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1