CN103455425B - 一种分布式测试***及方法 - Google Patents

一种分布式测试***及方法 Download PDF

Info

Publication number
CN103455425B
CN103455425B CN201310459786.9A CN201310459786A CN103455425B CN 103455425 B CN103455425 B CN 103455425B CN 201310459786 A CN201310459786 A CN 201310459786A CN 103455425 B CN103455425 B CN 103455425B
Authority
CN
China
Prior art keywords
test
equipment
need
redistribute
central control
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.)
Active
Application number
CN201310459786.9A
Other languages
English (en)
Other versions
CN103455425A (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.)
Bank of China Ltd
Original Assignee
Bank of China 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 Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN201310459786.9A priority Critical patent/CN103455425B/zh
Publication of CN103455425A publication Critical patent/CN103455425A/zh
Application granted granted Critical
Publication of CN103455425B publication Critical patent/CN103455425B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Tests Of Electronic Circuits (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种分布式测试***及方法,所述***包括中心控制设备、至少两个测试设备,其中:中心控制设备,用于监测各测试设备反馈的测试状态,根据测试设备的测试状态获得需重新分配的测试用例的信息;根据各测试设备的负载情况设置需重新分配的测试用例新对应的测试设备及执行计划,并向需重新分配的测试用例新对应的测试设备发送动态调度指令;测试设备,用于反馈测试状态,如果存在需重新分配的测试用例,反馈的测试状态至少包括需重新分配的测试用例的信息;当接收到中心控制设备发送的动态调度指令时,按照该需重新分配的测试用例新对应的执行计划进行测试。本申请提供的技术方案,可以使各测试设备负载均衡,达到提高测试效率的目的。

Description

一种分布式测试***及方法
技术领域
本申请涉及分布式***技术领域,特别是涉及一种分布式测试***及方法。
背景技术
在以往传统的测试方案中,通常采用一台计算机执行串行的测试。由于串行的测试方式效率低下,现在常用的测试方案中,通常将测试脚本预先保存在多台计算机上,由多台计算机并发执行保存在自身的测试脚本直到完成测试,从而一定程度上提高了测试效率。
但是,在各计算机并行执行预存的测试脚本时,有的计算机可能会因为其预存的个别测试脚本运算量大而导致预存在该计算机上的其他测试脚本被积压得不到执行,而有的计算机上的测试脚本可能与其他计算机上测试脚本的时序、数据等有一定关联而处于等待状态,因此,测试效率仍然很低。
发明内容
有鉴于此,本申请实施例提供一种分布式测试***及方法,以提高测试效率。
在本发明实施例的第一方面,本发明实施例提供了一种分布式测试***,包括中心控制设备、至少两个测试设备,其中:
所述中心控制设备包括:
监测单元,用于在各测试设备按测试用例对应的执行计划开始测试后,监测各测试设备反馈的测试状态,根据测试设备的测试状态获得需重新分配的测试用例的信息;
再分配单元,用于根据各测试设备的负载情况设置该需重新分配的测试用例新对应的测试设备及执行计划,并向该需重新分配的测试用例新对应的测试设备发送按其新对应的执行计划进行测试的动态调度指令;
所述测试设备包括:
反馈单元,用于向中心控制设备反馈测试状态,如果在反馈测试状态时存在需重新分配的测试用例,所述反馈的测试状态至少包括需重新分配的测试用例的信息,并取消对需重新分配的测试用例的执行;
再执行单元,用于当接收到中心控制设备发送的动态调度指令时,根据动态调度指令获得与该测试设备对应的需重新分配的测试用例,按照该需重新分配的测试用例新对应的执行计划进行测试。
可选地,所述中心控制设备还包括关系保存单元,用于保存所述测试用例与执行计划的对应关系、所述执行计划包括该测试用例的执行时序、以及该测试用例与其他测试用例的关联关系;
且,所述再分配单元可以包括:
查询子单元、用于从关系保存单元所保存的信息中,查询该需重新分配的测试用例与其他测试用例的关联关系;
计划设置子单元,用于根据该需重新分配的测试用例与其他测试用例的关联关系、以及与该重新分配的测试用例关联的其他测试用例的执行时序,设置该需重新分配的测试用例新对应的执行计划;
设备设置子单元,用于查询各测试设备的负载情况,根据负载情况从各测试设备中选择能够按该需重新分配的测试用例新对应的执行计划进行测试的测试设备,将其设置为该需重新分配的测试用例新对应的测试设备;
关系更新子单元,用于更新所保存的该需重新分配的测试用例与执行计划的对应关系;
调度子单元,用于向该需重新分配的测试用例新对应的测试设备发送按其新对应的执行计划进行测试的动态调度指令。
可选地,所述再分配单元,还可以用于在发送动态调度指令之后,触发监测单元重新执行;
所述再执行单元,还用于在按照该需重新分配的测试用例新对应的执行计划进行测试之后,触发反馈单元重新执行。
可选地,所述中心控制设备还可以包括数据中转单元,用于接收测试设备发送的关联数据请求,根据该关联数据请求向该测试设备发送从其他测试设备获得的该关联数据请求需要的关联数据;
所述测试设备还包括关联数据处理单元,用于获得再执行单元进行测试时生成的关联数据请求,向中心控制设备发送该关联数据请求,并接收中心控制设备根据该关联数据请求返回的关联数据;
所述执行单元,用于在进行测试时,如果需要关联数据,生成关联数据请求,并在获得关联数据处理单元接收的关联数据后,继续执行测试。
可选地,所述测试设备的反馈单元,还可以用于在完成测试时,向中心控制设备反馈测试结果;
所述中心控制设备还可以包括报告生成单元,用于接收各测试设备反馈的测试结果,并根据各测试设备反馈的测试结果生成测试综合报告。
在本发明实施例的第二方面,本发明实施例提供了一种分布式测试方法,可以应用于包括中心控制设备和至少两个测试设备的分布式测试***,包括:
所述测试设备向中心控制设备反馈测试状态,如果在反馈测试状态时存在需重新分配的测试用例,所述反馈的测试状态至少包括需重新分配的测试用例的信息,并取消对需重新分配的测试用例的执行;
所述中心控制设备在各测试设备按测试用例对应的执行计划开始测试后,监测各测试设备反馈的测试状态,根据测试设备的测试状态获得需重新分配的测试用例的信息;
所述中心控制设备根据各测试设备的负载情况设置该需重新分配的测试用例新对应的测试设备及执行计划,并向该需重新分配的测试用例新对应的测试设备发送按其新对应的执行计划进行测试的动态调度指令;
所述测试设备当接收到中心控制设备发送的动态调度指令时,根据动态调度指令获得与该测试设备对应的需重新分配的测试用例,按照该需重新分配的测试用例新对应的执行计划进行测试。
可选地,所述中心控制设备还预先保存了所述测试用例与执行计划的对应关系、所述执行计划包括该测试用例的执行时序、以及该测试用例与其他测试用例的关联关系;
所述中心控制设备根据各测试设备的负载情况设置该需重新分配的测试用例新对应的测试设备及执行计划包括:
所述中心控制设备从预先保存的测试用例与执行计划的对应关系中,查询该需重新分配的测试用例与其他测试用例的关联关系,根据该需重新分配的测试用例与其他测试用例的关联关系、以及与该重新分配的测试用例关联的其他测试用例的执行时序,设置该需重新分配的测试用例新对应的执行计划;
所述中心控制设备查询各测试设备的负载情况,根据负载情况从各测试设备中选择能够按该需重新分配的测试用例新对应的执行计划进行测试的测试设备,将其设置为该需重新分配的测试用例新对应的测试设备;
所述中心控制设备更新所保存的该需重新分配的测试用例与执行计划的对应关系。
可选地,所述中心控制设备在发送动态调度指令之后,还返回到监测各测试设备反馈的测试状态的步骤;
所述测试设备按照该需重新分配的测试用例新对应的执行计划进行测试之后,还返回到向中心控制设备反馈测试状态的步骤。
可选地,所述测试设备在进行测试时,如果需要关联数据,还生成关联数据请求,向中心控制设备发送该关联数据请求;
所述中心控制设备还接收测试设备发送的关联数据请求,向该测试设备发送从其他测试设备获得的该关联数据请求需要的关联数据;
所述测试设备,还接收中心控制设备根据该关联数据请求返回的关联数据,继续执行测试。
可选地,所述测试设备还在完成测试时,向中心控制设备反馈测试结果;
所述中心控制设备接收各测试设备反馈的测试结果,并根据各测试设备反馈的测试结果生成测试综合报告。
本申请实施例提供的技术方案,针对现有技术中测试效率低的缺陷,由测试设备向中心控制设备反馈测试状态,如果在反馈测试状态时存在需重新分配的测试用例,向中心控制设备反馈需重新分配的测试用例信息,并取消对需重新分配的测试用例的执行,所述中心控制设备在各测试设备按测试用例对应的执行计划开始测试后,监测各测试设备反馈的测试状态,根据测试设备的测试状态获得需重新分配的测试用例的信息,从而使得某些负载过重的测试设备可以向中心控制设备反馈需重新分配的测试用例,使中心控制设备根据各测试设备的负载情况设置该需重新分配的测试用例新对应的测试设备及执行计划,并向该需重新分配的测试用例新对应的测试设备发送按其新对应的执行计划进行测试的动态调度指令,使得处于等待状态或者新增的测试设备可以获得需重新分配的测试用例,执行该需重新分配的测试用例,使得各测试设备之间负载均衡,达到提高测试效率的目的。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请实施例分布式测试***的组网示意图;
图2是本申请实施例分布式测试***的各设备的结构示意图之一;
图3是本申请实施例分布式测试***的各设备的结构示意图之二;
图4是本申请实施例分布式测试***的各设备的结构示意图之三;
图5是本申请实施例分布式测试***的各设备的结构示意图之四;
图6是本申请实施例分布式测试***的各设备的结构示意图之五;
图7是本申请实施例分布式测试方法的流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。
如图1所示,是本申请实施例分布式***的组网示意图。如图所示,该分布式测试***包括中心控制设备、至少两个测试设备。其中,中心控制设备中设置有各测试设备的基本信息,包括测试设备IP地址、测试用例存放位置等等、用于统一分配测试用例及管理测试设备,测试设备用于按照中心控制设备分配的测试用例执行测试。
需要说明的是,本申请中测试用例由若干测试脚本组成,用于实现指定的测试功能,是构成整个测试方案的基元。测试人员在设计测试方案时,无需再调整测试脚本,而是针对测试用例进行编排,可以减少测试人员的操作、提高效率。
在实施本申请实施例时,中心控制设备110与测试设备120之间可以通过消息通信机制实现整个测试过程中测试资源的调度。在测试开始时,可以预先将整个测试方案需要使用所有测试用例保存于中心控制设备,在编排好测试用例之后,按照测试设备的性能及各测试用例之间执行时序的要求,设置测试用例对应的测试设备及执行计划,将测试用例及其对应的执行计划分配到对应的测试设备,由各个测试设备按所分配的测试用例对应的执行计划负载均衡地、有序地进行测试。
具体地,其中:
所述中心控制设备110,可以用于在各测试设备按测试用例对应的执行计划开始测试后,监测各测试设备反馈的测试状态,根据测试设备的测试状态获得需重新分配的测试用例的信息;根据各测试设备的负载情况设置该需重新分配的测试用例新对应的测试设备及执行计划,并向该需重新分配的测试用例新对应的测试设备发送按其新对应的执行计划进行测试的动态调度指令;
所述测试设备120,可以用于向中心控制设备反馈测试状态,如果在反馈测试状态时存在需重新分配的测试用例,所述反馈的测试状态至少包括需重新分配的测试用例的信息,并取消对需重新分配的测试用例的执行;当接收到中心控制设备发送的动态调度指令时,根据动态调度指令获得与该测试设备对应的需重新分配的测试用例,按照该需重新分配的测试用例新对应的执行计划进行测试。
需要说明的是,本申请实施例所述测试状态包括的需重新分配的测试用例的信息可以为需重新分配的测试用例的标识,也可以为需重新分配的测试用例本身;所述测试状态还可以包括例如测试设备加入、测试设备退出、CPU负载情况等,在本发明中并不进行限制。
如图2所示,是本申请实施例分布式***的各设备的结构示意图之一。为了清楚起见,在图2中只示出了一个测试设备220,所述分布式测试***中的各测试设备的结构可以相同。
其中,所述中心控制设备210包括:
监测单元211,可以用于在各测试设备按测试用例对应的执行计划开始测试后,监测各测试设备按测试用例对应的执行计划进行测试时反馈的测试状态,根据测试设备的测试状态获得需重新分配的测试用例的信息;
再分配单元212,可以用于根据各测试设备的负载情况设置该需重新分配的测试用例新对应的测试设备及执行计划,并向该需重新分配的测试用例新对应的测试设备发送按其新对应的执行计划进行测试的动态调度指令;
所述测试设备220包括:
反馈单元221,用于向中心控制设备反馈测试状态,如果在反馈测试状态时存在需重新分配的测试用例,所述反馈的测试状态至少包括需重新分配的测试用例的信息,并取消对需重新分配的测试用例的执行;
再执行单元222,用于当接收到中心控制设备发送的动态调度指令时,根据动态调度指令获得与该测试设备对应的需重新分配的测试用例,按照该需重新分配的测试用例新对应的执行计划进行测试。
继续参照图2,在本申请实施例中,所述测试设备220的反馈单元221向中心控制设备反馈测试状态可以由各种情况触发所述反馈,例如:可以由中心控制设备210的监测单元211定期向所管辖的测试设备发出状态询问请求,所述测试设备220的反馈单元221根据中心控制设备发送的状态询问请求反馈测试状态;或者,可以直接由反馈单元221定期向所述中心控制设备210反馈测试状态;或者,可以由反馈单元221在所在测试设备220积压的未执行的测试用例数量超过阈值时向中心控制设备210反馈测试状态,使中心控制设备210向其他测试设备重新分配积压的测试用例,在所在测试设备220为等待任务状态时,向中心控制设备210反馈测试状态,使中心控制设备210根据该测试设备220为等待任务状态向该测试设备重新分配其他测试设备积压的测试用例。需要说明的是,各个测试设备向中心控制设备反馈测试状态可以是相互独立执行的,无需同步,具体由所设置的触发反馈测试状态的条件所决定。而且触发测试设备220的反馈单元221执行反馈测试状态的条件可以根据实施需要进行设置,在本申请中并不进行限制。
可见,本申请实施例分布式测试***,在有的测试设备被分配的个别测试用例运算量大而导致其他测试用例被积压得不到执行时,可以向中心控制设备反馈需重新分配的测试用例,使中心控制设备重新分配该测试用例,而有的测试设备是由于测试用例与其他测试用例的时序、数据等有一定关联而处于等待状态时,或者是新增测试设备时,可以获得需重新分配的测试用例,执行该需重新分配的测试用例,从而使得各测试设备之间的测试负载均衡,达到提高测试效率的目的。
为了使中心控制设备在动态调度测试用例到各测试设备的情况下,相互关联的测试用例能够得到有序执行,参照图3所示本申请实施例提供了分布式测试***中心控制设备的结构示意图之二。
如图所示,在该实施例中,所述中心控制设备310除了包括:监测单元311和再分配单元312之外,还可以进一步包括:关系保存单元313,可以用于保存所述测试用例与执行计划的对应关系、所述执行计划包括该测试用例的执行时序、以及该测试用例与其他测试用例的关联关系;
且,所述再分配单元312具体可以包括:
查询子单元312a、用于从关系保存单元所保存的信息中,查询该需重新分配的测试用例与其他测试用例的关联关系;
计划设置子单元312b,用于根据该需重新分配的测试用例与其他测试用例的关联关系、以及与该重新分配的测试用例关联的其他测试用例的执行时序,设置该需重新分配的测试用例新对应的执行计划;
设备设置子单元312c,用于查询各测试设备的负载情况,根据负载情况从各测试设备中选择能够按该需重新分配的测试用例新对应的执行计划进行测试的测试设备,将其设置为该需重新分配的测试用例新对应的测试设备;
例如,在本申请实施例中,负载情况可以指测试设备的CPU占用情况等,具体可以在测试设备反馈测试状态时将自身的负载情况反馈给中心控制设备。中心控制设备可以根据各个测试设备反馈的负载情况生成相应的状态矩阵以便查询。
关系更新子单元312d,用于更新所保存的该需重新分配的测试用例与执行计划的对应关系;
调度子单元312e,用于向该需重新分配的测试用例新对应的测试设备发送按其新对应的执行计划进行测试的动态调度指令。
为了使本申请实施例提供的分布式测试***能够在整个测试流程中根据各测试设备的测试状态随时动态调整测试用例的执行,继续参照图3,本申请实施例的中心控制设备310的再分配单元312,还可以用于在发送动态调度指令之后,触发监测单元311重新执行;所述测试设备320的再执行单元322,还可以用于在按照该需重新分配的测试用例新对应的执行计划进行测试之后,触发反馈单元321重新执行。
另外,为了保证不同测试设备上的测试用例需要共享测试数据时能够顺利执行,参照图4所示本申请实施例提供的分布式测试***测试设备的结构示意图之三。所述测试设备420除了反馈单元421、再执行单元422之外,还可以包括关联数据处理单元423,用于获得再执行单元422进行测试时生成的关联数据请求,向中心控制设备410发送该关联数据请求,并接收中心控制设备根据该关联数据请求返回的关联数据;且,所述再执行单元422,还用于在进行测试时,如果需要关联数据,生成关联数据请求,并在获得关联数据处理单元接收的关联数据后,继续执行测试。
相应地,所述中心控制设备410除了包括检测单元411、再分配单元412外,还可以进一步包括数据中转单元414,用于接收测试设备420发送的关联数据请求,根据该关联请求向该测试设备发送从其他测试设备获得的该关联数据请求需要的关联数据。
基于上述实施例,各测试设备在中心控制设备的调度之下,可以协调地并行执行测试。并且,各测试设备在执行测试过程中还可以自动记录测试过程,生成测试结果并将其反馈给中心控制设备。参照图5所示本申请实施例提供的分布式测试***的结构示意图之四。所述测试设备520包括反馈单元521以及再执行单元522,其中反馈单元521,还可以用于在完成测试时,向中心控制设备反馈测试结果;相应地,所述中心控制设备510除了包括监测单元511、再分配单元512以外,还可以进一步包括报告生成单元515,用于接收各测试设备反馈的测试结果,并根据各测试设备反馈的测试结果生成测试综合报告。这样一旦各测试设备均完成后,所述中心控制设备将生成一份完整的测试综合报告,结束当前测试流程。
下面,再以一可能的实施方式详细地介绍该分布式测试***。参照图6所示本申请实施例提供的分布式测试***的结构示意图之五。如图所示,其中:
所述中心控制设备610可以包括:
参数管理单元611,用于保存各测试设备的基本信息,至少包括IP地址、测试用例存放位置;
关系保存单元612,用于在完成各测试用例的编排后,保存测试用例与执行计划的对应关系、所述执行计划包括该测试用例的执行时序、以及该测试用例与其他测试用例的关联关系;
初始调度单元613,用于向各测试用例对应的测试设备发送按测试用例对应的执行计划进行测试的初始调度指令;
监测单元614,用于在各测试设备按测试用例对应的执行计划开始测试后,监测各测试设备反馈的测试状态,根据测试设备的测试状态获得需重新分配的测试用例的信息;
再分配单元615包括查询子单元615a、计划设置子单元615b、设备设置子单元615c、关系更新子单元615d及调度子单元615e,其中:
查询子单元615a、用于从关系保存单元所保存的信息中,查询该需重新分配的测试用例与其他测试用例的关联关系;
计划设置子单元615b,用于根据该需重新分配的测试用例与其他测试用例的关联关系、以及与该重新分配的测试用例关联的其他测试用例的执行时序,设置该需重新分配的测试用例新对应的执行计划;
设备设置子单元615c,用于查询各测试设备的负载情况,根据负载情况从各测试设备中选择能够按该需重新分配的测试用例新对应的执行计划进行测试的测试设备,将其设置为该需重新分配的测试用例新对应的测试设备;
关系更新子单元615d,用于更新所保存的该需重新分配的测试用例与执行计划的对应关系;
调度子单元615e,用于向该需重新分配的测试用例新对应的测试设备发送按其新对应的执行计划进行测试的动态调度指令,根据预设重新触发规则触发监测单元611重新执行;
数据中转单元616,用于接收测试设备发送的关联数据请求,根据该关联数据请求向该测试设备发送从其他测试设备获得的该关联数据请求需要的关联数据;
报告生成单元617,用于接收各测试设备反馈的测试结果,并根据各测试设备反馈的测试结果生成测试综合报告;
报告流转单元618,用于将报告生成单元616生成的测试综合报告流转至下一处理步骤。
所述测试设备620可以包括:
反馈单元621,用于向中心控制设备反馈测试状态,如果在反馈测试状态时存在需重新分配的测试用例,所述反馈的测试状态至少包括需重新分配的测试用例的信息,并取消对需重新分配的测试用例的执行,在完成测试时,向中心控制设备反馈测试结果;
再执行单元622,用于当接收到中心控制设备发送的动态调度指令时,根据动态调度指令获得与该测试设备对应的需重新分配的测试用例,按照该需重新分配的测试用例新对应的执行计划进行测试,在进行测试时,如果需要关联数据,生成关联数据请求,并在获得关联数据处理单元接收的关联数据后,继续执行测试,并在按照该需重新分配的测试用例新对应的执行计划进行测试之后,触发反馈单元重新执行。
关联数据处理单元623,用于获得再执行单元进行测试时生成的关联数据请求,向中心控制设备发送该关联数据请求,并接收中心控制设备根据该关联数据请求返回的关联数据;
脚本解析单元624,用于在进行测试过程中,将所执行的测试用例的测试脚本解析为用户操作动作;
指令解析单元625,用于在接收到中心控制设备发送的动态调度指令时,对动态调度指令进行解析;
对象处理单元626,用于解析测试过程中所针对的关键字属性以识别页面对象,其中所述页面对象可以包括WEB页面对象、或者其他界面页面对象;
验证点处理单元627,用于在测试过程中,对测试数据进行验证,生成测试结果。
需要说明的是,以上所描述的***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应地,本申请实施例还提供了一种分布式测试方法,应用所述方法的***至少可以包括中心控制设备和至少两个测试设备。
在该方法中,中心控制设备中设置有各测试设备的基本信息,包括测试设备IP地址、测试用例存放位置等等、用于统一分配测试用例及管理测试设备,测试设备用于按照中心控制设备分配的测试用例执行测试。各测试设备可以向中心控制设备反馈测试状态,其中,测试状态例如可以包括:存在积压的测试用例需重新分配的状态、新增加测试设备的状态、退出测试的状态、测试设备资源使用状态等。从而使得中心控制设备在各测试设备按测试用例对应的执行计划开始测试后,可以根据各测试设备反馈的测试状态设置需重新分配的测试用例新对应的测试设备及执行计划,并将动态调度指令发送至需重新分配的测试用例新对应的测试设备,使各测试设备之间的测试负载均衡,提高测试效率。
如图7所示,是本申请实施例分布式测试方法的流程示意图。
在该实施例中,所述方法包括以下基本步骤:
S701、所述测试设备向中心控制设备反馈测试状态,如果在反馈测试状态时存在需重新分配的测试用例,所述反馈的测试状态至少包括需重新分配的测试用例的信息,并取消对需重新分配的测试用例的执行;
需要说明的是,在应用本申请实施例时,可以在中心控制设备上设置各测试设备的基本信息,包括测试设备的IP,测试用例的存放位置等。在编排好测试用例后,可以设置各测试用例对应的测试设备及执行计划,向测试用例对应的测试设备发送按该测试用例对应的执行计划进行测试的初始调度指令。由于是在编排好测试用例后,初次发送调度指令,中心控制设备可以在发送初始调度指令的同时,将测试用例发送到其对应的测试设备的相应存放位置中。这样,测试设备在接收到初始调度指令后,可以从其相应的存放位置中提取出测试用例,并按照初始调度指令携带的该测试用例对应的执行计划进行测试。从而在测试过程中可以向中心控制设备反馈测试状态。
在本申请实施例中,所述测试设备向中心控制设备反馈测试状态可以由各种情况触发所述反馈,例如:可以由中心控制设备定期向所管辖的测试设备发出状态询问请求,所述测试设备根据中心控制设备发送的状态询问请求反馈测试状态;或者,可以直接由测试设备定期向所述中心控制设备反馈测试状态;或者,可以由测试设备在其积压的未执行的测试用例数量超过阈值时向中心控制设备反馈测试状态,使中心控制设备向其他测试设备重新分配积压的测试用例。或者,还可以由其他情况触发测试设备执行反馈,在本申请中并不进行限制。
其中,判断是否存在需重新分配的测试用例的具体实现方式例如可以为:在反馈测试状态时,判断当前执行的测试用例对CPU的负载情况是否可能对其他未执行的测试用例造成积压,如果是,则可以确定存在需重新分配的测试用例,并在其反馈的测试状态中加入需重新分配的测试用例的信息,并取消对需重新分配的测试用例的执行。当然,判断是否存在需重新分配的测试用例的方法并不局限于该例,具体可以根据实施需要设置,在本发明中并不进行限制。
S702、所述中心控制设备在各测试设备按测试用例对应的执行计划开始测试后,监测各测试设备反馈的测试状态,根据测试设备的测试状态获得需重新分配的测试用例的信息;
其中,所述需重新分配的测试用例的信息可以指需重新分配的测试用例的唯一标识,或者,也可以指测试用例本身,在本发明中并不进行限制。
S703、所述中心控制设备根据各测试设备的负载情况设置该需重新分配的测试用例新对应的测试设备及执行计划,并向该需重新分配的测试用例新对应的测试设备发送按其新对应的执行计划进行测试的动态调度指令;
例如,在向该需重新分配的测试用例新对应的测试设备发送动态调度指令时,如果新对应的测试设备已有需重新分配的测试用例,则无需重新发送测试用例本身,仅在动态调度指令中携带需重新分配的测试用例的唯一标识,如果新对应的测试设备不存在需重新分配的测试用例,则可以在发送动态调度指令的同时将需重新分配的测试用例发送给对应的测试设备。
为了使得相互关联的测试用例能够得到有序执行,中心控制设备可以在初始设置测试用例对应的测试设备及执行计划时,将其对应关系记录下来,并在重新设置该需重新分配的测试用例新对应的测试设备及执行计划时,从其记录的对应关系记录中进行相应更新。其中,所述执行计划可以包括测试用例的执行时序、以及测试用例与其他测试用例的关联关系。相应地,所述中心控制设备设置该需重新分配的测试用例新对应的测试设备及执行计划可以包括:
所述中心控制设备从预先保存的测试用例与执行计划的对应关系中,查询该需重新分配的测试用例与其他测试用例的关联关系;
所述中心控制设备根据该需重新分配的测试用例与其他测试用例的关联关系、以及与该重新分配的测试用例关联的其他测试用例的执行时序,设置该需重新分配的测试用例新对应的执行计划;
所述中心控制设备查询各测试设备的负载情况,根据负载情况从各测试设备中选择能够按该需重新分配的测试用例新对应的执行计划进行测试的测试设备,将其设置为该需重新分配的测试用例新对应的测试设备;
所述中心控制设备更新所保存的该需重新分配的测试用例与执行计划的对应关系。
例如,假设该需重新分配的测试用例为测试用例A,测试用例A与测试用例B存在关联关系,且该关联关系为测试用例的执行时间应在测试用例B执行结束之后。此时,所述根据该需重新分配的测试用例A与测试用例B的关联关系、以及与该重新分配的测试用例A关联的测试用例B的执行时序,设置该需重新分配的测试用例A新对应的执行计划可以包括:根据测试用例B的执行时序,判断测试用例B是否已经执行完毕;如果是,则测试用例A新对应的执行计划为即时执行;如果否,则测试用例A新对应的执行计划为当接收到测试用例B反馈的执行结束消息时,测试用例A开始执行。需要说明的是,该例仅为示意性说明,在本申请实施例实际应用中,可以根据实施需要设定具体的设置流程。
S704、所述测试设备当接收到中心控制设备发送的动态调度指令时,根据动态调度指令获得与该测试设备对应的需重新分配的测试用例,按照该需重新分配的测试用例新对应的执行计划进行测试。
考虑到本申请实施例提供的分布式测试方法需要在整个测试流程中根据各测试设备的测试状态随时动态调整测试用例的执行,因此,如图6所示,在步骤S703所述中心控制设备在发送动态调度指令之后,还可以返回到监测各测试设备反馈的测试状态的步骤;在步骤S704所述测试设备按照该需重新分配的测试用例新对应的执行计划进行测试之后,还可以返回到向中心控制设备反馈测试状态的步骤。
另外,为了保证不同测试设备上的测试用例需要共享测试数据时能够顺利执行,所述测试设备在进行测试时,如果需要关联数据,还可以生成关联数据请求,向中心控制设备发送该关联数据请求;所述中心控制设备还可以接收测试设备发送的关联数据请求,向该测试设备发送从其他测试设备获得的该关联数据请求需要的关联数据;所述测试设备,还接收中心控制设备根据该关联数据请求返回的关联数据,继续执行测试。
需要说明的是,上述有关共享测试数据的具体实现过程可以根据实施需要进行设置,在本发明中并不进行限制。其中一种可能的实现方式例如可以为:所述中心控制设备接收各测试设备反馈的关联数据,并将其放置在关联数据缓存池中,中心控制设备在接收到测试设备发送的关联数据请求后,根据关联数据请求在关联数据缓存池中进行查询,判断关联数据缓存池中是否存在该关联数据请求需要的关联数据,如果存在,则向该测试设备发送从该关联数据请求需要的关联数据;如果不存在,还可以将该关联数据请求进行缓存,并在关联数据缓存池新增关联数据时将所缓存的关联数据请求提取出来,或者定期将所缓存的关联数据请求提取出来,根据所提取出的关联数据请求在关联数据缓存池中进行查询,判断关联数据缓存池中是否存在该关联数据请求需要的关联数据,如果某一关联数据请求重新查询其需要的关联数据的次数超过预设阈值,或者超过预设时间间隔,则可以放弃该关联数据请求,并返回异常消息。
基于上述实施例,各测试设备在中心控制设备的调度之下,可以协调地并行执行测试。并且,各测试设备在执行测试过程中还可以自动记录测试过程,生成测试结果并将其反馈给中心控制设备。具体实现可以为:所述测试设备还在完成测试时,向中心控制设备反馈测试结果;所述中心控制设备接收各测试设备反馈的测试结果,并根据各测试设备反馈的测试结果生成测试综合报告。
通过以上本申请实施例可见,本申请实施例提供的分布式测试方法使中心控制设备可以灵活动态调度多台测试设备有序执行各测试用例,共享关联测试数据,充分利用了测试设备的资源,显著提高了测试效率。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序单元。一般地,程序单元包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的测试设备来执行测试用例。在分布式计算环境中,程序单元可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种分布式测试***,其特征在于,包括中心控制设备、至少两个测试设备,其中:
所述中心控制设备包括:
监测单元,用于在各测试设备按测试用例对应的执行计划开始测试后,监测各测试设备反馈的测试状态,根据测试设备的测试状态获得需重新分配的测试用例的信息;
再分配单元,用于根据各测试设备的负载情况设置该需重新分配的测试用例新对应的测试设备及执行计划,并向该需重新分配的测试用例新对应的测试设备发送按其新对应的执行计划进行测试的动态调度指令;
所述测试设备包括:
反馈单元,用于向中心控制设备反馈测试状态,如果在反馈测试状态时存在需重新分配的测试用例,所述反馈的测试状态至少包括需重新分配的测试用例的信息,并取消对需重新分配的测试用例的执行,其中,所述向中心控制设备反馈测试状态的触发条件为:在所在测试设备积压的未执行的测试用例数量超过阈值时向中心控制设备反馈测试状态,以使中心控制设备向其他测试设备重新分配积压的测试用例;
再执行单元,用于当接收到中心控制设备发送的动态调度指令时,根据动态调度指令获得与该测试设备对应的需重新分配的测试用例,按照该需重新分配的测试用例新对应的执行计划进行测试。
2.根据权利要求1所述的***,其特征在于,所述中心控制设备还包括关系保存单元,用于保存所述测试用例与执行计划的对应关系,所述执行计划包括该测试用例的执行时序以及该测试用例与其他测试用例的关联关系;
所述再分配单元包括:
查询子单元、用于从关系保存单元所保存的信息中,查询该需重新分配的测试用例与其他测试用例的关联关系;
计划设置子单元,用于根据该需重新分配的测试用例与其他测试用例的关联关系、以及与该重新分配的测试用例关联的其他测试用例的执行时序,设置该需重新分配的测试用例新对应的执行计划;
设备设置子单元,用于查询各测试设备的负载情况,根据负载情况从各测试设备中选择能够按该需重新分配的测试用例新对应的执行计划进行测试的测试设备,将其设置为该需重新分配的测试用例新对应的测试设备;
关系更新子单元,用于更新所保存的该需重新分配的测试用例与执行计划的对应关系;
调度子单元,用于向该需重新分配的测试用例新对应的测试设备发送按其新对应的执行计划进行测试的动态调度指令。
3.根据权利要求1或2任一项所述的***,其特征在于,所述再分配单元,还用于在发送动态调度指令之后,触发监测单元重新执行;
所述再执行单元,还用于在按照该需重新分配的测试用例新对应的执行计划进行测试之后,触发反馈单元重新执行。
4.根据权利要求1或2任一项所述的***,其特征在于,所述中心控制设备还包括数据中转单元,用于接收测试设备发送的关联数据请求,根据该关联数据请求向该测试设备发送从其他测试设备获得的该关联数据请求需要的关联数据;
所述测试设备还包括关联数据处理单元,用于获得再执行单元进行测试时生成的关联数据请求,向中心控制设备发送该关联数据请求,并接收中心控制设备根据该关联数据请求返回的关联数据;
所述再执行单元,用于在进行测试时,如果需要关联数据,生成关联数据请求,并在获得关联数据处理单元接收的关联数据后,继续执行测试。
5.根据权利要求1或2任一项所述的***,其特征在于,所述测试设备的反馈单元,还用于在完成测试时,向中心控制设备反馈测试结果;
所述中心控制设备还包括报告生成单元,用于接收各测试设备反馈的测试结果,并根据各测试设备反馈的测试结果生成测试综合报告。
6.一种分布式测试方法,其特征在于,应用于包括中心控制设备和至少两个测试设备的分布式测试***,包括:
所述测试设备向中心控制设备反馈测试状态,如果在反馈测试状态时存在需重新分配的测试用例,所述反馈的测试状态至少包括需重新分配的测试用例的信息,并取消对需重新分配的测试用例的执行,其中,所述向中心控制设备反馈测试状态的触发条件为:在所在测试设备积压的未执行的测试用例数量超过阈值时向中心控制设备反馈测试状态,以使中心控制设备向其他测试设备重新分配积压的测试用例;
所述中心控制设备在各测试设备按测试用例对应的执行计划开始测试后,监测各测试设备反馈的测试状态,根据测试设备的测试状态获得需重新分配的测试用例的信息;
所述中心控制设备根据各测试设备的负载情况设置该需重新分配的测试用例新对应的测试设备及执行计划,并向该需重新分配的测试用例新对应的测试设备发送按其新对应的执行计划进行测试的动态调度指令;
所述测试设备当接收到中心控制设备发送的动态调度指令时,根据动态调度指令获得与该测试设备对应的需重新分配的测试用例,按照该需重新分配的测试用例新对应的执行计划进行测试。
7.根据权利要求6所述的方法,其特征在于,所述中心控制设备还预先保存了所述测试用例与执行计划的对应关系,所述执行计划包括该测试用例的执行时序以及该测试用例与其他测试用例的关联关系;
所述中心控制设备根据各测试设备的负载情况设置该需重新分配的测试用例新对应的测试设备及执行计划包括:
所述中心控制设备从预先保存的测试用例与执行计划的对应关系中,查询该需重新分配的测试用例与其他测试用例的关联关系,根据该需重新分配的测试用例与其他测试用例的关联关系、以及与该重新分配的测试用例关联的其他测试用例的执行时序,设置该需重新分配的测试用例新对应的执行计划;
所述中心控制设备查询各测试设备的负载情况,根据负载情况从各测试设备中选择能够按该需重新分配的测试用例新对应的执行计划进行测试的测试设备,将其设置为该需重新分配的测试用例新对应的测试设备;
所述中心控制设备更新所保存的该需重新分配的测试用例与执行计划的对应关系。
8.根据权利要求6或7任一项所述的方法,其特征在于,所述中心控制设备在发送动态调度指令之后,还返回到监测各测试设备反馈的测试状态的步骤;
所述测试设备按照该需重新分配的测试用例新对应的执行计划进行测试之后,还返回到向中心控制设备反馈测试状态的步骤。
9.根据权利要求6或7任一项所述的方法,其特征在于,所述测试设备在进行测试时,如果需要关联数据,还生成关联数据请求,向中心控制设备发送该关联数据请求;
所述中心控制设备还接收测试设备发送的关联数据请求,向该测试设备发送从其他测试设备获得的该关联数据请求需要的关联数据;
所述测试设备,还接收中心控制设备根据该关联数据请求返回的关联数据,继续执行测试。
10.根据权利要求6或7任一项所述的方法,其特征在于,所述测试设备还在完成测试时,向中心控制设备反馈测试结果;
所述中心控制设备接收各测试设备反馈的测试结果,并根据各测试设备反馈的测试结果生成测试综合报告。
CN201310459786.9A 2013-09-25 2013-09-25 一种分布式测试***及方法 Active CN103455425B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310459786.9A CN103455425B (zh) 2013-09-25 2013-09-25 一种分布式测试***及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310459786.9A CN103455425B (zh) 2013-09-25 2013-09-25 一种分布式测试***及方法

Publications (2)

Publication Number Publication Date
CN103455425A CN103455425A (zh) 2013-12-18
CN103455425B true CN103455425B (zh) 2016-08-17

Family

ID=49737825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310459786.9A Active CN103455425B (zh) 2013-09-25 2013-09-25 一种分布式测试***及方法

Country Status (1)

Country Link
CN (1) CN103455425B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104852822B (zh) * 2014-02-13 2018-10-19 北京京东尚科信息技术有限公司 一种测试客户端的方法和***
CN105242134B (zh) * 2015-09-22 2018-06-19 许继集团有限公司 一种适用于智能高压设备***级测试的分布式测试方法
CN105117345B (zh) * 2015-09-23 2017-12-19 网易(杭州)网络有限公司 一种应用程序的接口测试方法及装置
CN105281978B (zh) * 2015-10-23 2019-02-19 小米科技有限责任公司 一种性能测试的方法、装置和***
CN105912457A (zh) * 2015-12-08 2016-08-31 乐视网信息技术(北京)股份有限公司 测试服务器、测试客户端、测试***和测试方法
CN106445817B (zh) * 2016-09-09 2018-11-27 网易(杭州)网络有限公司 测试数据的处理方法、装置和***
CN107992362B (zh) * 2016-10-27 2021-05-25 北京京东尚科信息技术有限公司 自动化性能测试的方法、装置及***
CN108845954B (zh) * 2018-08-31 2022-04-15 中国联合网络通信集团有限公司 压力测试方法、***及存储介质
CN112214400A (zh) * 2020-09-17 2021-01-12 浙江数链科技有限公司 一种自动化测试方法、装置、电子设备和可读存储介质
CN113590393B (zh) * 2021-07-08 2024-03-12 深圳Tcl新技术有限公司 一种智能设备测试方法、装置、电子设备和存储介质
CN114706773A (zh) * 2022-03-29 2022-07-05 网宿科技股份有限公司 自动化测试方法、设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101052020A (zh) * 2007-05-21 2007-10-10 中兴通讯股份有限公司 一种自动化测试执行过程的监控方法和***
CN103298016A (zh) * 2012-02-27 2013-09-11 展讯通信(上海)有限公司 移动终端的测试***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7055137B2 (en) * 2001-11-29 2006-05-30 I2 Technologies Us, Inc. Distributed automated software graphical user interface (GUI) testing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101052020A (zh) * 2007-05-21 2007-10-10 中兴通讯股份有限公司 一种自动化测试执行过程的监控方法和***
CN103298016A (zh) * 2012-02-27 2013-09-11 展讯通信(上海)有限公司 移动终端的测试***

Also Published As

Publication number Publication date
CN103455425A (zh) 2013-12-18

Similar Documents

Publication Publication Date Title
CN103455425B (zh) 一种分布式测试***及方法
JP5719323B2 (ja) 分散処理システム、ディスパッチャおよび分散処理管理装置
CN106649630A (zh) 数据查询方法及装置
CN110266716A (zh) 电网统一服务平台***
CN103391312B (zh) 资源离线下载方法及装置
CN108989430B (zh) 负载均衡方法、装置及存储介质
CN102841846A (zh) 一种基于Hadoop的软件测试方法、装置和***
CN104199957A (zh) 一种Redis通用代理的实现方法
CN104537013B (zh) 一种处理数据的方法和装置
CN108959385A (zh) 数据库部署方法、装置、计算机设备和存储介质
US10108463B2 (en) System, method of controlling to execute a job, and apparatus
US20160147643A1 (en) Web browser emulator
CN110213309A (zh) 一种绑定关系管理的方法、设备及存储介质
JP2006344068A5 (zh)
CN110221845A (zh) 应用部署方法、装置、设备和介质
CN104125303B (zh) 数据读写请求方法、客户端及***
CN107368419A (zh) 分布式环境下的自动测试方法及***、服务终端、存储器
JP4495688B2 (ja) 検証システム
CN106506269A (zh) 执行测试任务的方法、***、计算设备及测试***
CN111090519B (zh) 任务执行方法、装置、存储介质及电子设备
CN105279065B (zh) 在云测试平台中统计测试结果的方法及装置
CN103336721B (zh) 数据库操作请求分配方法、设备和***
CN105893147A (zh) 多任务队列管理方法、设备及***
CN109033315A (zh) 数据查询方法、客户端、服务器及计算机可读介质
CN107483640A (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
C14 Grant of patent or utility model
GR01 Patent grant