发明名称 一种基于多接口的自适应的云服务测试方法
摘要 本发明是一种基于多接口的自适应的云服务测试方法,其中云平台提供的软件测试是一种新型的测试模式,它不同于一般的软件测试,主要区别是在云平台提供一种在线环境,能够并发地同时处理大量的任务集,并把测试的结果通过网络返回到客户端。主要目的是:在整个过程中主要是完成用户任务分类上传,以节约云平台按客户要求聚类的时间,以及对聚类任务进行小粒度的划分和任务的合理调度,使得云平台能够合理分配资源,实现负载均衡,从而达到在最大程度上提高云测试的效率的目标。
申请公布号 CN103475538B 申请公布日期 2016.04.13
申请号 CN201310391101.1 申请日期 2013.09.02
申请人 南京邮电大学 发明人 张迎周;王参参;张卫丰;王子元;周国强;符炜;钱小燕;常霞
分类号 H04L12/26(2006.01)I;H04L29/08(2006.01)I 主分类号 H04L12/26(2006.01)I
代理机构 江苏爱信律师事务所 32241 代理人 唐小红
主权项 一种基于多接口的自适应的云服务测试方法,其特征在于该方法所包含的步骤为:步骤1)在多个接口上,开发上传界面的应用:步骤1.1)获取当前云服务平台所能提供的虚拟机资源信息;步骤1.2)选取虚拟机资源作为云服务中心控制平台;步骤1.3)标签已经被选取的虚拟机资源:“已分类”;步骤1.4)标签没有被选取的虚拟机资源:“未分类”;步骤1.5)获取标签为“已分类”的虚拟机资源信息;步骤1.6)分类虚拟机资源;其中,虚拟机资源信息包含操作系统的类型、互联网服务器的类型、数据库的类型和虚拟机资源标签:步骤1.6.1)获取操作系统类型的种类n1类;步骤1.6.2)根据操作系统类型的种类,分类虚拟机资源为n1类;步骤1.6.3)获取互联网服务器类型的种类n2类;步骤1.6.4)根据互联网服务器类型的种类,划分步骤1.6.2)中生成的虚拟机资源为n1×n2类;步骤1.6.5)获取数据库类型的种类n3类;步骤1.6.6)根据数据库类型的种类,划分步骤1.6.4)中生成的虚拟机资源为n1×n2×n3类;步骤1.6.7)更新步骤1.6.6)中n1×n2×n3类虚拟机资源的标签为“已分类”;步骤1.6.8)输出生成的n1×n2×n3类虚拟机资源信息;步骤1.7)映射步骤1.6)中虚拟机资源为客户端的n1×n2×n3个接口;步骤1.8)获取“未分类”的虚拟机资源信息;步骤1.9)定义“未分类”的虚拟机资源信息为模糊虚拟机资源;步骤1.10)映射模糊虚拟机资源为客户端的一个接口;步骤1.11)根据用户使用客户端所有接口的情况,获取用户选择资源的偏好性的值;步骤1.12)判断偏好性的值是否大于预先规定的阈值,如果大于,转步骤1.13),否则,转步骤1.8);步骤1.13)判断是否存在“未分类”的虚拟机资源,如果存在,转步骤1.14),否则,转步骤1.15);步骤1.14)在客户端增加一个新的接口,转步骤1.11);步骤1.15)结束:在多个接口上,开发上传界面的应用;步骤2)动态划分所有接口的任务集:步骤2.1)获取任务集列表;步骤2.2)计算该列表的长度,即该长度为任务的个数;步骤2.3)获取该列表中的所有任务;步骤2.4)获取该列表中所有任务的大小;步骤2.5)计算该列表中所有任务的平均值avg:<math><![CDATA[<mrow><mi>a</mi><mi>v</mi><mi>g</mi><mo>=</mo><mfrac><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>L</mi><mo>-</mo><mn>1</mn></mrow></munderover><mi>l</mi><mrow><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo></mrow></mrow><mi>L</mi></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000914222380000021.GIF" wi="1108" he="223" /></maths>其中,L表示任务的个数;l[i]表示第i+1个任务的大小;步骤2.6)设置阈值,其值为步骤2.5)中的所有任务的平均值;步骤2.7)统计列表中任务的大小大于阈值的任务数量;步骤2.8)统计列表中任务的大小小于阈值的任务数量;步骤2.9)判断步骤2.7)中的任务数量是否大于步骤2.8)中的任务数量,如果大于,采用最大最小算法设置任务优先级,否则,采用最小最小算法设置任务优先级;步骤2.10)计算并调度当前任务接口中资源池的每个集群的负载值:步骤2.10.1)获取当前任务接口中资源池的每个集群的信息;步骤2.10.2)获取集群的个数;步骤2.10.3)获取每个集群的负载值;步骤2.10.4)计算所有集群的平均值avgc:<math><![CDATA[<mrow><mi>a</mi><mi>v</mi><mi>g</mi><mi>c</mi><mo>=</mo><mfrac><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><mi>u</mi><mi>s</mi><mi>e</mi><mi>d</mi><mi>c</mi><mrow><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo></mrow></mrow><mi>n</mi></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000914222380000022.GIF" wi="1181" he="232" /></maths>其中,n表示集群的个数;usedc[i]表示第i+1个集群的负载值;步骤2.10.5)获取负载值小于集群平均值的所有集群信息;步骤2.10.6)更新当前任务接口中资源池的集群信息;步骤2.10.7)按照负载值,升序排列集群信息;步骤2.10.8)获取步骤2.9)中已设置优先级的任务;步骤2.10.9)分配到步骤2.10.7)的集群信息中;步骤2.10.10)按照负载值,升序排列集群信息;步骤2.11)定期计算集群的负载平均值;步骤2.12)判断负载平均值是否大于集群的最大负载,如果大于,转步骤2.13),否则,转步骤2.10.5);步骤2.13)结束该过程;步骤3)集群节点动态执行测试任务:步骤3.1)获取步骤2)中集群的任务集;步骤3.2)判断任务集是否为空,如果是,转步骤3.9),否则,转步骤3.3);步骤3.3)遍历集群下每一个节点的空闲资源;步骤3.4)计算集群下所有节点资源的平均空闲值avgr:<math><![CDATA[<mrow><mi>a</mi><mi>v</mi><mi>g</mi><mi>r</mi><mo>=</mo><mfrac><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>r</mi><mo>-</mo><mn>1</mn></mrow></munderover><mi>r</mi><mi>e</mi><mi>s</mi><mrow><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo></mrow></mrow><mi>r</mi></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000914222380000031.GIF" wi="1109" he="229" /></maths>其中,r表示资源个数;res[i]表示第i+1个资源的空闲值;avgr表示所有节点的空闲资源均值;步骤3.5)选取资源空闲值大于平均空闲值的节点;步骤3.6)获取步骤2.10.9)任务集群中每个任务的优先级;步骤3.7)按照降序原则,将每个任务的优先级调度到步骤3.5)中选取的节点上;步骤3.8)判断每个节点的空闲情况是否达到平均值,如果达到,转步骤3.2);否则,转步骤3.7);步骤3.9)结束该过程;步骤4)收集测试结果,返回客户端。
地址 210003 江苏省南京市新模范马路66号