*CN102868573A*
(10)申请公布号 CN 102868573 A(43)申请公布日 2013.01.09
(12)发明专利申请
(21)申请号 201210337759.X(22)申请日 2012.09.12
(71)申请人北京航空航天大学
地址100191 北京市海淀区学院路37号北
京航空航天大学(72)发明人孙海龙 刘旭东 闫敏之 王旭
赵文敏(74)专利代理机构北京同立钧成知识产权代理
有限公司 11205
代理人刘芳(51)Int.Cl.
H04L 12/26(2006.01)H04L 29/08(2006.01)
权利要求书 2 页 说明书 8 页 附图 2 页权利要求书2页 说明书8页 附图2页
(54)发明名称
Web服务负载云测试方法和装置(57)摘要
本发明提供一种Web服务负载云测试方法和装置,其中Web服务负载云测试方法,包括:获取进行Web服务负载云测试的两个以上的云测试节点,云测试节点为分布在云计算网络中的节点;获取测试任务信息,测试任务信息包括进行Web服务负载云测试的并发测试线程信息;根据所述并发测试线程信息为所述两个以上的云测试节点分发并发测试线程数目,并在两个以上的云测试节点上的并发测试线程准备完毕后,向其发送测试指令,其中,每个云测试节点分配到的并发测试线程数目小于该云测试节点的并发测试线程阈值;接收所述两个以上的云测试节点返回的负载测试结果。该技术方案能够解决测试节点的位置单一的缺陷,实现真正并发地调用目标测试服务。CN 102868573 ACN 102868573 A
权 利 要 求 书
1/2页
1.一种Web服务负载云测试方法,其特征在于,包括:获取进行Web服务负载云测试的两个以上的云测试节点,所述云测试节点为分布在云计算网络中的节点;
获取测试任务信息,所述测试任务信息包括进行Web服务负载云测试的并发测试线程信息;
根据所述并发测试线程信息为所述两个以上的云测试节点分发并发测试线程数目,并在所述两个以上的云测试节点上的并发测试线程准备完毕后,向其发送测试指令,其中,每个云测试节点分配到的并发测试线程数目小于该云测试节点的并发测试线程阈值;
接收所述两个以上的云测试节点返回的负载测试结果。2.根据权利要求1所述的Web服务负载云测试方法,其特征在于,所述获取进行Web服务负载云测试的两个以上的云测试节点包括:
获取满足如下条件的进行Web服务负载云测试的两个以上的云测试节点:
其中Nd表示云测试节点的数目,S表示云测试节点上安装的其他软件设备种类数,Cij
表示与云测试节点i中第j种类软件设备的数量,μj表示每增加一个第j种类设备对原始并发测试线程阈值Oi的影响参数,N表示要进行Web服务负载云测试的并发测试线程数目。
3.根据权利要求2所述的Web服务负载云测试方法,其特征在于,所述获取的所述进行Web服务负载云测试的两个以上的云测试节点包括用户指定的云测试节点;或
获取的所述进行Web服务负载云测试的两个以上的云测试节点为所有可用云测试节点中可用并发线程数目最多的一组云测试节点。
4.根据权利要求1所述的Web服务负载云测试方法,其特征在于,所述方法还包括:在Web服务负载云测试包括多个测试子任务时,在完成一个测试子任务后,重新获取下一个测试子任务所需要的两个以上的云测试节点;并重新为所述两个以上的云测试节点分发并发测试线程数目,并在所述两个以上的云测试节点上的并发测试线程准备完毕后,向其发送测试指令。
5.根据权利要求1-4任一所述的Web服务负载云测试方法,其特征在于,所述获取进行Web服务负载云测试的两个以上的云测试节点中优先获取非共享云测试节点。
6.一种Web服务负载云测试装置,其特征在于,包括:第一获取模块,用于获取进行Web服务负载云测试的两个以上的云测试节点,所述云测试节点为分布在云计算网络中的节点;
第二获取模块,用于获取测试任务信息,所述测试任务信息包括进行Web服务负载云测试的并发测试线程信息;
测试处理模块,用于根据所述并发测试线程信息为所述两个以上的云测试节点分发并发测试线程数目,并在所述两个以上的云测试节点上的并发测试线程准备完毕后,向其发送测试指令,其中,每个云测试节点分配到的并发测试线程数目小于该云测试节点的并发测试线程阈值;
接收模块,用于接收所述两个以上的云测试节点返回的负载测试结果。
2
CN 102868573 A
权 利 要 求 书
2/2页
7.根据权利要求6所述的Web服务负载云测试装置,其特征在于,所述第一获取模块具体用于获取满足如下条件的进行Web服务负载云测试的两个以上的云测试节点:
其中Nd表示云测试节点的数目,S表示云测试节点上安装的其他软件设备种类数,Cij
表示与云测试节点i中第j种类软件设备的数量,μj表示每增加一个第j种类设备对原始并发测试线程阈值Oi的影响参数,N表示要进行Web服务负载云测试的并发测试线程数目。
8.根据权利要求7所述的Web服务负载云测试装置,其特征在于,所述第一获取模块获取的进行Web服务负载云测试的两个以上的云测试节点包括用户指定的云测试节点;或
所述第一获取模块获取的所述进行Web服务负载云测试的两个以上的云测试节点为所有可用云测试节点中可用并发线程数目最多的一组云测试节点。
9.根据权利要求6所述的Web服务负载云测试装置,其特征在于,所述第一获取模块具体用于在Web服务负载云测试包括多个测试子任务时,在完成一个测试子任务后,重新获取下一个测试子任务所需要的两个以上的云测试节点;所述测试处理模块具体用于重新为
并在所述两个以上的云测试节点上的所述两个以上的云测试节点分发并发测试线程数目,
并发测试线程准备完毕后,向其发送测试指令。
10.根据权利要求6-9任一所述的Web服务负载云测试装置,其特征在于,所述第一获取模块在获取进行Web服务负载云测试的两个以上的云测试节点中优先获取非共享云测试节点。
3
CN 102868573 A
说 明 书
Web服务负载云测试方法和装置
1/8页
技术领域
本发明涉及计算机网络技术,尤其涉及一种Web服务负载云测试方法和装置,属
于服务负载测试技术领域。
[0001]
背景技术
近年来,随着互联网技术的不断发展,网络上聚集了越来越多的资源,不仅包
含丰富的计算、存储等物理资源,还有大量的软件、服务资源,且资源的数目和类型日益增长,从而为基于服务的网络软件开发提供了重要的基础。同时,随着简单对象访问协议(Simple Object Access Protocol,以下简称:SOAP)、Web服务描述语言(Web Services Description Language,以下简称:WSDL)、统一描述、发现和集成(Universal Description,Discovery,and Integration,以下简称:UDDI)协议和业务流程执行语言(Business Process Execution Language,以下简称:BPEL)等标准的制定,也进一步促进了Web服务(Web service)技术及面向服务架构SOA的快速发展,使得异构信息、异构平台的共享与集成成为可能,基于Web服务的分布式应用系统开发已经成为计算机软件领域一个重要的方向。
[0003] W3C对Web服务的定义为:Web服务是一个软件系统,用以支持网络间不同机器的互动操作。Web服务通常是许多应用程序接口(API)所组成的,它们通过网络,例如Internet的远程服务器端,执行客户所提交服务的请求。目前,Web服务技术得到广泛的接受,一方面存在大量商用、开放源码及独立开发的服务软件,据最新统计Web服务搜索引擎Seekda中收录的Web服务共有28000多个,且不断增长,开放注册库BindingPoint.com和XMethods.org上也有大量的Web服务注册,此外,谷歌、亚马逊等公司已开始对外提供商用Web服务。
[0004] 每个Web服务发布后,要公开地向来自各处的不同请求提供服务,它能应对多大的负载,在不同负载下性能会有何种不同表现,都需要通过Web服务负载测试来获得。所以,Web服务负载测试是通过测试服务在资源超负荷情况下的表现,以发现设计上的错误或验证Web服务的负载能力。在测试中,将使测试目标承担不同的工作量,以评测和评估测试服务在不同工作量条件下的性能行为,以及持续正常运行的能力。[0005] 现有的Web测试工具,大多采用单个测试节点或小集群环境对Web服务进行负载测试。由于测试节点数量有限,在测试大负载情况下的服务性能时,每个测试节点的并发测试线程数量过大,会导致大部分测试线程被归入到测试节点等待队列,得不到调度,测试节点的网卡处也会造成拥塞,此时,这些并发测试线程就无法实现真正并发地调用目标测试
很难模服务,对其大负载下的性能测试。另外,测试节点在地理位置也会存在单一的问题,
拟实际的Web服务调用请求的地理分布性。
[0002]
发明内容
[0006] 本发明提供一种Web服务负载云测试方法和装置,用于解决测试节点单一的缺
4
CN 102868573 A
说 明 书
2/8页
陷,实现真正并发地调用目标测试服务。
[0007] 本发明的第一个方面是提供一种Web服务负载云测试方法,包括:[0008] 获取进行Web服务负载云测试的两个以上的云测试节点,所述云测试节点为分布在云计算网络中的节点;[0009] 获取测试任务信息,所述测试任务信息包括进行Web服务负载云测试的并发测试线程信息;
[0010] 根据所述并发测试线程信息为所述两个以上的云测试节点分发并发测试线程数目,并在所述两个以上的云测试节点上的并发测试线程准备完毕后,向其发送测试指令,其中,每个云测试节点分配到的并发测试线程数目小于该云测试节点的并发测试线程阈值;[0011] 接收所述两个以上的云测试节点返回的负载测试结果。[0012] 本发明的另一个方面是提供一种Web服务负载云测试装置,包括:[0013] 第一获取模块,用于获取进行Web服务负载云测试的两个以上的云测试节点,所述云测试节点为分布在云计算网络中的节点;[0014] 第二获取模块,用于获取测试任务信息,所述测试任务信息包括进行Web服务负载云测试的并发测试线程信息;[0015] 测试处理模块,用于根据所述并发测试线程信息为所述两个以上的云测试节点分发并发测试线程数目,并在所述两个以上的云测试节点上的并发测试线程准备完毕后,向其发送测试指令,其中,每个云测试节点分配到的并发测试线程数目小于该云测试节点的并发测试线程阈值;[0016] 接收模块,用于接收所述两个以上的云测试节点返回的负载测试结果。[0017] 本发明提供的Web服务负载云测试方法和装置,其中的云测试节点为分布在云计算网络中的节点,通过使用该类云测试节点,可以解决现有的Web服务负载测试过程中测试节点单一,不能够模仿实际业务过程中对Web服务负载的影响的缺陷,同时由于在为云测试节点分发并发测试线程数目时,使得云测试节点分配到的并发测试线程数目小于该云测试节点的并发测试线程阈值,测试节点的网卡处不会造成拥塞,能够真正实现并发地调用目标测试服务。
附图说明
[0018] 图1为本发明实施例中Web服务负载云测试方法的流程示意图;[0019] 图2为本发明实施例中Web服务负载云测试装置的结构示意图;[0020] 图3a为本发明实施例中并发测试线程分配示意图一;[0021] 图3b为本发明实施例中并发测试线程分配示意图二。
具体实施方式
[0022] 本发明实施例提供了一种Web服务负载云测试方法,图1为本发明实施例中Web服务负载云测试方法的流程示意图,如图1所示,包括如下的步骤:[0023] 步骤101、获取进行Web服务负载云测试的两个以上的云测试节点,所述云测试节点为分布在云计算网络中的节点;[0024] 步骤102、获取测试任务信息,所述测试任务信息包括进行Web服务负载云测试的
5
CN 102868573 A
说 明 书
3/8页
并发测试线程信息;[0025] 步骤103、根据所述并发测试线程信息为所述两个以上的云测试节点分发并发测试线程数目,并在所述两个以上的云测试节点上的并发测试线程准备完毕后,向其发送测试指令,其中,每个云测试节点分配到的并发测试线程数目小于该云测试节点的并发测试线程阈值;
步骤104、接收所述两个以上的云测试节点返回的负载测试结果。
[0027] 本发明上述实施例提供的Web服务负载云测试方法,其中的测试服务器获取测试任务信息,以及进行Web服务负载云测试的两个以上的云测试节点,其中,测试任务信息包括进行Web服务负载云测试的并发测试线程信息,在获取到上述信息后,可以根据并发测试线程信息为所述两个以上的云测试节点分发并发测试线程数目,并在所述两个以上的云测试节点上的并发测试线程准备完毕后,向其发送测试指令,其中,每个云测试节点分配到的并发测试线程数目小于该云测试节点的并发测试线程阈值。具体的,上述的云测试节点为分布在云计算网络中的节点,通过使用该类云测试节点,可以解决现有的Web服务负载测试过程中测试节点比较单一,不能够模仿实际业务过程中对Web服务负载的影响的缺陷,同时由于在为云测试节点分发并发测试线程时,使得云测试节点分配到的并发测试线程数目小于该云测试节点的并发测试线程阈值,测试节点的网卡处不会造成拥塞,能够真正实现并发地调用目标测试服务。[0028] 本发明上述实施例中,其中获取进行Web服务负载云测试的两个以上的云测试节点可以具体包括:
[0029] 获取满足如下条件的进行Web服务负载云测试的两个以上的云测试节点:
[0026] [0030]
其中Nd表示两个以上的云测试节点,S表示云测试节点上安装的其他软件设备种
类数,Cij表示与云测试节点i中第j种类软件设备的数量,μj表示每增加一个第j种类设备对并发测试线程阈值Oi的影响参数,N表示要进行Web服务负载云测试的并发测试线程数目。
[0032] 在由用户指定云测试节点的情况下,获取的所述进行Web服务负载云测试的两个以上的云测试节点包括用户指定的云测试节点;[0033] 或者是,用户不指定云测试节点,获取的所述进行Web服务负载云测试的两个以上的云测试节点为所有可用云测试节点中可用并发线程数目最多的一组云测试节点。
[0031]
本发明上述实施例中,在Web服务负载云测试包括多个测试子任务时,在完成一
个测试子任务后,重新获取下一个测试子任务所需要的两个以上的云测试节点;并重新为所述两个以上的云测试节点分发并发测试线程数目,并在所述两个以上的云测试节点上的并发测试线程准备完毕后,向其发送测试指令。
[0035] 并且在获取进行Web服务负载云测试的两个以上的云测试节点中优先获取非共享云测试节点,具体的该非共享云测试节点是指在一个时间段内,只有一个测试测试任务使用的云测试节点,而在一个时间段内被两个以上测试任务使用的节点被称为共享测试节点。
[0036] 与上述方法实施例对应的,本发明还提供了一种Web服务负载云测试装置,图2为
[0034]
6
CN 102868573 A
说 明 书
4/8页
本发明实施例中Web服务负载云测试装置的结构示意图,如图2所示,包括第一获取模块11,第二获取模块12,测试处理模块13和接收模块14,其中第一获取模块11用于获取进行Web服务负载云测试的两个以上的云测试节点,所述云测试节点为分布在云计算网络中的节点;第二获取模块12用于获取测试任务信息,所述测试任务信息包括进行Web服务负载云测试的并发测试线程信息;测试处理模块13用于根据所述并发测试线程信息为所述两个以上的云测试节点分发并发测试线程数目,并在所述两个以上的云测试节点上的并发测试线程准备完毕后,向其发送测试指令,其中,每个云测试节点分配到的并发测试线程数目小于该云测试节点的并发测试线程阈值;接收模块14用于接收所述两个以上的云测试节点返回的负载测试结果。
[0037] 本发明上述实施例提供的Web服务负载云测试装置,其中获取的云测试节点为分布在云计算网络中的节点,通过使用该类云测试节点,可以解决现有的Web服务负载测试过程中测试节点比较单一,不能够模仿实际业务过程中对Web服务负载的影响的缺陷,同时由于在为云测试节点分发并发测试线程数目时,使得云测试节点分配到的并发测试线程数目小于该云测试节点的并发测试线程阈值,测试节点的网卡处不会造成拥塞,能够真正实现并发地调用目标测试服务。[0038] 本发明上述实施例中,其中的第一获取模块具体用于获取满足如下条件的进行Web服务负载云测试的两个以上的云测试节点:
[0039]
其中Nd表示两个以上的云测试节点,S表示云测试节点上安装的其他软件设备种
类数,Cij表示与云测试节点i中第j种类软件设备的数量,μj表示每增加一个第j种类设备对并发测试线程阈值Oi的影响参数,N表示要进行Web服务负载云测试的并发测试线程数目。
[0041] 另外,用户可以指定云测试节点,所述第一获取模块获取的进行Web服务负载云测试的两个以上的云测试节点包括用户指定的云测试节点;或者是,测试任务信息中不携带指定云测试节点,所述第一获取模块获取的所述进行Web服务负载云测试的两个以上的云测试节点为所有可用云测试节点中可用并发线程数目最多的一组云测试节点。[0042] 另外,上述的一获取模块还可以具体用于在Web服务负载云测试包括多个测试子任务时,在完成一个测试子任务后,重新获取下一个测试子任务所需要的两个以上的云测试节点;所述测试处理模块具体用于重新为所述两个以上的云测试节点分发并发测试线程数目,并在所述两个以上的云测试节点上的并发测试线程准备完毕后,向其发送测试指令。[0043] 本发明上述实施例中,上述第一获取模块在获取进行Web服务负载云测试的两个以上的云测试节点中优先获取非共享云测试节点。[0044] 本发明的具体实施例中,其中的Web服务负载云测试业务平台可以分为三层结构实现,即包括SaaS、PaaS和IaaS三层,其中的SaaS层用于实现前端测试任务接收和监控,对应的功能可以在云测试装置完成,图2所示的第一获取模块和第二获取模块位于该层,能够向测试人员提供测试任务配置、提交和监控的接口界面,接收用户输入的测试任务信息,对测试任务的执行情况进行监控,存储历史的Web服务负载测试结果,另外还可以负责云测试节点的选择。
[0040]
7
CN 102868573 A[0045]
说 明 书
5/8页
PaaS层包括测试任务管理器、软件设备管理器、云测试节点代理和测试引擎,其中
测试任务管理器能够根据测试任务信息、以及从云测试节点代理获取的各云测试节点的信息,为云测试节点的测试引擎分发并发测试线程,并在云测试节点上的并发测试线程准备完毕后,向其发送测试指令,同时搜集各个云测试节点上测试引擎反馈的负载测试结果,该功能可以在Web服务负载测试装置中实现,即对应上述图2所示实施例中测试处理模块和接收模块。上述的软件设备管理器主要是负载上述各个云测试节点上软件设备的模块,负责各种软件设备的注册、启动和关闭等操作。云测试节点代理是辅助软件设备管理器管理云测试节点上软件设备的模块,它负责将本地的软件设备信息定时注册到软件设备管理器中,当软件设备管理器发出启动、关闭等指令时,也是由云测试节点代理来实际执行。另外,上述的测试引擎是云测试节点上负责负载测试的专用软件设备,负责实际地向目标测试服务发起调用请求,按照测试任务管理器分发的并发测试线程数目启动相应的并发测试线程并同时调用目标测试服务,同时对调用请求的结果进行收集和分析,判断调用是否成功,并可以记录各调用的响应时间等信息。[0046] 另外,IaaS层主要是指负载测试用的基础设施,例如可以包括计算、存储、网络等资源。
[0047] 对于任意一个测试任务,可以通过如下的测试过程实现:[0048] 步骤一:接收测试任务,例如由云测试装置的接口界面接收用户输入的测试任务信息,该测试任务信息除包括并发测试线程信息外,还可以包括预测试的目标Web服务的地址,测试请求的超时时间或预期的测试结果等,其中并发测试线程信息可以将测试分为三种类型,一种是静态测试,即规定并发测试线程的总数目,并分发给多个云测试节点,有云测试节点根据分发到的并发测试线程数目一次完成测试,第二种是递增测试,例规定并发测试线程的数目由10到100,共10个测试子任务,每个测试子任务递增10个并发测试线程,云测试装置可以为每次的测试子任务确定相应的云测试节点,并分配相应的并发测试线程数目,第三种是给定需满足的预期结果上限的测试,例如给出测试的起始并发测试线程数目为10,每次递增10个并发测试线程,未规定测试的并发测试线程数目的上限,仅当并发测试线程对Web服务调用,出错率达到某一上限时停止测试,该类型的测试任务也会包括多个测试子任务。具体的测试任务信息中还可以包括测试请求的超时时间或预期的测试结果,该两项信息可以发送给各个云测试节点,以由云测试节点根据实际测试的信息与预期的测试结果进行分析,将分析结果作为负载测试结果反馈回来,或者是云测试节点是将实际测试的信息作为负载测试结果反馈回来,云测试装置根据实际测试的信息与预期的测试结果进行分析,对于云测试节点通过并发测试线程对Web服务发起测试调用时,若Web服务的响应时间超时,即超过了测试请求的超时时间,或者是对Web服务发起测试调用时返回的调用结果与预期的测试结果不匹配,都可认为是出错;[0049] 在获取到上述的测试任务信息后,可以将测试任务信息提供给测试任务管理器。[0050] 步骤二:配置测试环境,在接收到测试任务信息后,可以配置测试环境,同时可以选择云测试节点,并启动各测试节点上的测试引擎。[0051] 本步骤中,选择云测试节点可以包括两种情况,一是测试人员指定了云测试节点,如果测试人员指定了Nd个云测试节点,则可以计算是否满足下式:
8
CN 102868573 A[0052]
说 明 书
6/8页
其中,Oi表示云测试节点i的原始并发测试线程阈值,该值可以通过如下的方式
测定:选取服务资源库中20个最常用的Web服务,然后分别测试它们在云测试节点i的非并发调用的响应时间,取平均值记为t1,然后逐步提高并发线程数量并计算平均响应时间t2,当t2=2t1时,这时的并发线程数量即为节点i的原始并发测试线程阈值。另外,Nd表示测试人员指定的云测试节点的数目,S表示云测试节点上安装的其他软件设备种类数,Cij表示与云测试节点i中第j种类软件设备的数量,μj表示每增加一个第j种类设备对原始并发测试线程阈值Oi的影响参数,N表示要进行Web服务负载云测试的并发测试线程数目。如果不满足上式,则可以要求测试人员增加新的云测试节点,或者是云测试装置自动补充一些新的测试节点。
[0054] 如果测试人员未指定云测试节点,则可以按照各个云测试节点的可用并发线程数目对可测试节点进行降序排列,获取所有可用云测试节点中可用并发线程数目最多的一组云测试节点,该云测试节点的数目为Na,其也满足上述的计算公式
[0053]
步骤三:将测试任务分发给各个云测试节点,该分发过程可以遵循“非共享云测试节点优先”策略。[0056] 具体的,可以按照如下的方式定义云测试装置的资源利用率,云测试装置在一段时间Ts内的平均测试资源使用率(Average Resource Utilization Ratio,以下简称:ARUR)可以定义为:
[0055] [0057]
其中,ti和Ni分别表示测试任务i的执行时间和并发测试线程数量,n代表在Ts时间段内总共执行的测试任务数量,Sum和Oi分别表示可用云测试节点数目和云测试节点i的原始并发测试线程阈值。
[0059] 为了提高云测试装置中的测试资源利用率,可以对测试任务的分配采用非共享节点优先(Non-shared First,以下简称:NSF)的调度算法。NSF调度算法每间隔一个△t对接收到的测试任务进行一次调度,由于这些测试任务指定的云测试节点可能有重复,如果平均分配并发测试线程数目到各个云测试节点,则可能导致多个任务共享的云测试节点很快达到原始并发测试线程阈值,无法同时支持更多的测试任务的执行,影响了云测试装置的测试任务并发度,为此,优先使用非共享云测试节点,会使共享云测试节点可以同时支持更多的测试任务。具体的,NSF调度算法包括如下的步骤:
[0058]
首先,将△t时间内接收到的每个测试任务指定的云测试节点分别分成共享云测试节点和非共享云测试节点两个节点列表;[0061] 其次,对于每个测试任务执行如下步骤:
[0062] 一是分别对该测试任务的两个节点列表按照可用并发测试线程数目的降序排序;
[0060]
9
CN 102868573 A[0063]
说 明 书
7/8页
二是依次向非共享云测试节点列表中的云测试节点分发并发测试线程数目,每个
云测试节点分配的并发测试线程数目都是其当前可用并发测试线程数目,当该测试任务的剩余并发测试线程数目少于该测试节点的可用并发测试线程数目时为任务剩余并发数,即尽其最大能力执行此测试任务,并修改相应云测试节点的可用并发测试线程数目。若该测试任务的总并发测试线程数目分配完毕或非共享云测试节点列表已经为空,则停止;三是若该测试任务的并发测试线程还未分配完毕,继续以类似上述步骤的分配方式依次向共享云测试节点列表中的各个云测试节点分配并发测试线程,直至测试任务的并发测试线程分配完毕;
[0065] 四是返回该测试任务的两个并发线程分配数列:非共享云测试节点和共享云测试节点的并发线程分配数列。
[0066] 通过使用NSF调度算法,云测试装置的ARUR可以显著提高。例如图3a和图3b所示,假设在同一△t内接收到两个测试任务:T1和T2,它们各自需要的并发测试线程数目分别为200,220,而各个云测试节点的原始并发测试线程阈值可如所示,云测试节点A~F的原始并发测试线程阈值为80、60、100、50、60、90,其中。测试任务T1需要使用A,B,C,D四个云测试节点进行测试,而T2需要使用C,D,E,F四个云测试节点,即C,D是它们共享的云测试节点,如图3a所示,采用均分的策略将测试任务T1的并发测试线程均分到A,B,C,D四个云测试节点后,该四个云测试节点上的并发测试线程数目均为50,A,B,C三个云测试节点上剩余的可用并发测试线程数目为30、10和50,在云测试节点D上剩余的可用并发测试线程为零,T2则无法进行任务分配,只能等待T1执行完毕后才能够使用云测试节点D。如图3b所示,若采用NSF调度算法,T1占用云测试节点A和B,以及云测试节点C上的60个可用并发测试线程,T2占用云测试节点D、E和F,以及云测试节点上的20个可用并发测试线程,则两个测试任务可以同时执行。这样,在两种不同情况下,执行完T1的时间段内(假设T1与T2执行时间相同),根据上述公式计算得到的ARUR分别为45.5%和95%,有显著提高。[0067] 本发明上述实施例中,如果测试任务要求逐步增加对Web服务负载云测试的并发测试线程数目对其进行测试,例如要求从并发测试线程数目为10、20、30、40…100依次对Web服务负载进行测试,上述测试过程需要较长的时候,则在Web服务负载云测试过程中,可以在每次执行完一次测试子任务后,重新获取进行Web服务负载云测试的两个以上的云测试节点;并重新为所述两个以上的云测试节点分发并发测试线程,并在所述两个以上的云测试节点上的并发测试线程准备完毕后,向其发送测试指令。
[0064]
本发明上述实施例提供的技术方案,是针对其中一项Web服务的性能和能力进行测试,衡量Web服务的性能和能力的依据可以是该Web服务针对每次测试调用的响应时间,或者是针对每次调用所返回结果的准确性。当超时或者是返回的结果与预期的结果不一致时,都可以认为是并发测试线程对Web服务的调用出错,而通过出错率可以衡量出Web服务的性能和能力。
[0069] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。[0070] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;
[0068]
10
CN 102868573 A
说 明 书
8/8页
尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
11
CN 102868573 A
说 明 书 附 图
1/2页
图1
图2
12
CN 102868573 A
说 明 书 附 图
2/2页
图3a
图3b
13
因篇幅问题不能全部显示,请点此查看更多更全内容