云验证和测试自动化的制作方法

文档序号:16363744发布日期:2018-12-22 08:18阅读:295来源:国知局
云验证和测试自动化的制作方法

本申请要求于2016年2月26日提交的美国临时申请no.62/300,512的权益和优先权,其据此通过引用以它的整体被并入。

各种通信系统可以受益于改进的云基础设施测试。例如,这样的云验证平台可能是有帮助的,其能够以自动化和系统化的方式代表在云上执行的应用来测试和验证云基础设施。

背景技术

云计算系统在信息技术时代已经变得越来越重要。云计算是一种已建立的且成熟的技术,其可以在许多不同行业中用来运行许多类型的应用。然而,在电信网络中,云计算仍然是一种新兴的技术,其有望在电信网络的持续演进中发挥重要作用。

支持在云计算基础设施上部署电信应用的工具和服务的开发未良好建立。云计算基础设施灵活但复杂,具有硬件、操作系统、管理程序、容器、应用、以及服务,全部一起操作以支持云的运转。尽管云计算机基础设施具有灵活性,但是基础设施和运行在基础设施上的应用的性能和相互作用可能是变化的且不可预测的。在云计算基础设施上运行的软件应用可能因此有时未表现得如预期。

这种不可预测性可能在电信应用中引起各种问题,其中的一些电信应用具有严格的要求,诸如对于联网的精确时延和带宽需求。为了在云计算基础设施上成功部署电信应用,基础设施必须首先针对操作、可靠性和性能被测试。考虑到云行为的动态和可变的性质,测试这些应用在云基础设施上的执行可能是困难且耗时的。

尝试在云计算基础设施上部署多个电信应用可能加重这个问题。应用中的每个应用可能具有它们施加在云上的不同的工作负荷要求、计算要求、存储要求和联网要求。测试云基础设施的成本和时间可能是大的,尤其是当统计上显著量的数据必须被收集以提供准确测量时。



技术实现要素:

一种方法可以包括:连接到云验证服务以测试云基础设施。该方法还可以包括:触发云基础设施上的虚拟网络功能的执行。云基础设施的关键属性使用云验证服务而利用执行的虚拟网络功能被测试。另外,该方法可以包括:在用户设备处接收云基础设施的关键属性或虚拟网络功能的度量。

根据某些实施例,一种装置可以包括:包括计算机程序代码的至少一个存储器、以及至少一个处理器。至少一个存储器和计算机程序代码可以被配置为,与至少一个处理器一起,至少连接到云验证服务以测试云基础设施。至少一个存储器和计算机程序代码还可以被配置为,与至少一个处理器一起,至少触发云基础设施上的虚拟网络功能的执行。云基础设施的关键属性使用云验证服务而利用执行的虚拟网络功能被测试。另外,至少一个存储器和计算机程序代码可以被配置为,与至少一个处理器一起,至少在用户设备处接收云基础设施的关键属性或虚拟网络功能的度量。

在某些实施例中,一种装置可以包括:用于连接到云验证服务以测试云基础设施的部件。该装置还可以包括:用于触发云基础设施上的虚拟网络功能的执行的部件。云基础设施的关键属性使用云验证服务而利用执行的虚拟网络功能被测试。另外,该方法可以包括:在用户设备处接收云基础设施的关键属性或虚拟网络功能的度量。

根据某些实施例,一种编码有指令的非暂态计算机可读介质,这些指令当在硬件中被执行时执行过程。该过程可以包括:连接到云验证服务以测试云基础设施。该过程还可以包括:触发云基础设施上的虚拟网络功能的执行。云基础设施的关键属性使用云验证服务而利用执行的虚拟网络功能被测试。另外,该过程可以包括:在用户设备处接收云基础设施的关键属性或虚拟网络功能的度量。

根据某些实施例,一种编码有指令的计算机程序产品,这些指令用于根据一种方法来执行过程,该方法包括:连接到云验证服务以测试云基础设施。该方法还可以包括:触发云基础设施上的虚拟网络功能的执行。云基础设施的关键属性使用云验证服务而利用执行的虚拟网络功能被测试。另外,该方法可以包括:在用户设备处接收云基础设施的关键属性或虚拟网络功能的度量。

一种方法可以包括:连接到云验证服务以测试云基础设施。该方法还可以包括:通过平台设备来调度对云基础设施的关键属性的测试。虚拟网络功能可以在云基础设施上被执行。另外,该方法可以包括:向测试代理发送调度。此外,该方法可以包括:接收云基础设施的关键属性或虚拟网络功能的度量。

根据某些实施例,一种装置可以包括:包括计算机程序代码的至少一个存储器、以及至少一个处理器。至少一个存储器和计算机程序代码可以被配置为,与至少一个处理器一起,至少连接到云验证服务以测试云基础设施。至少一个存储器和计算机程序代码还可以被配置为,与至少一个处理器一起,至少通过平台设备来调度对云基础设施的关键属性的测试。虚拟网络功能可以在云基础设施上被执行。另外,至少一个存储器和计算机程序代码还可以被配置为,与至少一个处理器一起,至少向测试代理发送调度。此外,至少一个存储器和计算机程序代码可以被配置为,与至少一个处理器一起,至少接收云基础设施的关键属性或虚拟网络功能的度量。

在某些实施例中,一种装置可以包括:用于连接到云验证服务以测试云基础设施的部件。该装置还可以包括:用于通过平台设备来调度对云基础设施的关键属性的测试的部件。虚拟网络功能可以在云基础设施上被执行。另外,该装置可以包括:用于向测试代理发送调度的部件。此外,该方法可以包括:用于接收云基础设施的关键属性或虚拟网络功能的度量的部件。

根据某些实施例,一种编码有指令的非暂态计算机可读介质,这些指令当在硬件中被执行时执行过程。该过程可以包括:连接到云验证服务以测试云基础设施。该过程还可以包括:通过平台设备来调度对云基础设施的关键属性的测试。虚拟网络功能可以在云基础设施上被执行。另外,该过程可以包括:向测试代理发送调度。此外,该过程可以包括:接收云基础设施的关键属性或虚拟网络功能的度量。

根据某些实施例,一种编码有指令的计算机程序产品,这些指令用于根据一种方法来执行过程,该方法包括:连接到云验证服务以测试云基础设施。该方法还可以包括:通过平台设备来调度对云基础设施的关键属性的测试。虚拟网络功能可以在云基础设施上被执行。另外,该方法包括:向测试代理发送调度。此外,该方法可以包括:接收云基础设施的关键属性或虚拟网络功能的度量。

一种方法可以包括:从平台设备接收针对云基础设施的关键属性进行测试的请求。虚拟网络功能可以在云基础设施上被执行。该方法还可以包括:针对云基础设施的关键属性和虚拟网络功能进行测试。另外,该方法可以包括:向平台设备发送云基础设施的关键属性或虚拟网络功能的度量。

根据某些实施例,一种装置可以包括:包括计算机程序代码的至少一个存储器、以及至少一个处理器。至少一个存储器和计算机程序代码可以被配置为,与至少一个处理器一起,至少从平台设备接收针对云基础设施的关键属性进行测试的请求。虚拟网络功能可以在云基础设施上被执行。至少一个存储器和计算机程序代码还可以被配置为,与至少一个处理器一起,至少针对云基础设施的关键属性和虚拟网络功能进行测试。另外,至少一个存储器和计算机程序代码还可以被配置为,与至少一个处理器一起,至少向云平台设备发送云基础设施的关键属性或虚拟网络功能的度量。

在某些实施例中,一种装置可以包括:用于从平台设备接收针对云基础设施的关键属性进行测试的请求的部件。虚拟网络功能可以在云基础设施上被执行。该装置还可以包括:用于针对云基础设施的关键属性和虚拟网络功能进行测试的部件。另外,该装置可以包括:用于向平台设备发送云基础设施的关键属性或虚拟网络功能的度量的部件。

根据某些实施例,一种编码有指令的非暂态计算机可读介质,这些指令当在硬件中被执行时执行过程。该过程可以包括:从平台设备接收针对云基础设施的关键属性进行测试的请求。虚拟网络功能可以在云基础设施上被执行。该过程还可以包括:针对云基础设施的关键属性和虚拟网络功能进行测试。另外,该过程可以包括:向平台设备发送云基础设施的关键属性或虚拟网络功能的度量。

根据某些实施例,一种编码有指令的计算机程序产品,这些指令用于根据一种方法来执行过程,该方法包括:从平台设备接收针对云基础设施的关键属性进行测试的请求。虚拟网络功能可以在云基础设施上被执行。该方法还可以包括:针对云基础设施的关键属性和虚拟网络功能进行测试。另外,该方法可以包括:向平台设备发送云基础设施的关键属性或虚拟网络功能的度量。

附图说明

为了恰当理解本发明,应当参考附图,其中:

图1图示了根据某些实施例的系统架构。

图2图示了根据某些实施例的流程图。

图3图示了根据某些实施例的流程图。

图4图示了根据某些实施例的系统架构。

图5图示了根据某些实施例的系统架构。

图6图示了根据某些实施例的用户界面。

图7图示了根据某些实施例的流程图。

图8图示了根据某些实施例的流程图。

图9a图示了根据某些实施例的拓扑。

图9b图示了根据某些实施例的拓扑图。

图9c图示了根据某些实施例的拓扑。

图10图示了根据某些实施例的流程图。

图11图示了根据某些实施例的系统架构。

图12图示了根据某些实施例的流程图。

图13图示了根据某些实施例的流程图。

图14图示了根据某些实施例的用户界面。

图15图示了根据某些实施例的用户界面。

图16图示了根据某些实施例的流程图。

图17图示了根据某些实施例的流程图。

图18图示了根据某些实施例的流程图。

图19a图示了根据某些实施例的流程图。

图19b图示了根据某些实施例的流程图。

图20图示了根据某些实施例的系统。

具体实施方式

某些实施例提供一致的测试,其允许分析在云基础设施上运行的电信应用的性能。该测试可以针对各种电信应用被再现,从而测试可以彼此进行比较。

某些实施例还可以有益于全局服务组织,诸如系统集成、网络规划和优化、以及关爱服务。正在开发要在云计算基础设施上运行的应用的产品开发组织也可能受益。一些实施例适用于网络核心和无线电接入网络(ran)产品,包括例如ims、tas、移动性管理实体、epc、flexi-ng和cloudran。依赖于稳定的高性能硬件和软件平台以便满足它们的性能要求的其他产品也可能受益。

一种用于测试和自动化的方法可以用来评估给定模式下的云环境的性能,该给定模式可以允许应用被测试,就好像它正由真实世界中的云基础设施所服务。该模式可以称为服务模式。在某些实施例中,多个云中的测试可以根据单个逻辑服务而被编排。多个云可以变化。一些实施例涉及具有可变互联网访问的云、或甚至没有互联网访问的云、或通过代理的互联网访问的云。

某些实施例可以基于服务测试节点的可用性和连接到特定云的能力,来提供服务测试节点到云的自动化选择和重新指配。因为某个云环境可能包含防火墙,所以某些实施例可以允许服务发现哪个节点具有到云的连接。某些给定连接可能未被防火墙阻挡,并且这些连接可以按自动化的方式被选择用于运行测试。

测试可以用来通过运行具有不同配置和因素的多次迭代来优化云的部署。测试结果可以允许针对性能和成本来确定最佳云配置。

在一些实施例中,供应测试环境可以独立于云的类型。换言之,测试环境可以具有单个测试定义,该单个测试定义可以跨各种云类型而应用。单个测试定义可以允许跨各种云类型的测试是一致的,即使不同的云类型使用不同的方式来参考将被启动的虚拟实例的配置。

其他实施例即使当来自通过动态主机配置协议指配给云的池中的仅一些互联网协议(ip)地址可以被使用时,也可以在云环境中运行测试。然而,在其他实施例中,对云服务可能不具有访问的虚拟机可以使用代理请求以便访问云服务。在某些实施例中,这些虚拟机可以从云内运行云服务测试。

跨云的测试结果可以按自动化的方式被比较。测试结果可以用来将云性能分级。在一些实施例中,该分级可以基于多个测试结果根据自动化的阈值而被调整。在其他实施例中,灵活的机制可以被提供用于新测试插件的产品熟悉(on-boarding)。通过允许虚拟网络功能团队比传统产品更快地贡献新插件,插件添加可以被简化。报告可以被生成,该报告包括云基础设施资产的评估、以及与云基础设施所涉及的可能的风险或差距有关的任何推荐。

某些实施例还包括一种用于创建平台的方法,该平台利用自动化的测试向量的组合来跨越可用的云服务进行测试,以及测试联网度量、计算度量和存储度量。在一些实施例中,该组合可以包括超过一千个自动化的测试向量。云计算验证服务也可以被创建,其包括在分配用于电信软件的云的区域中的联网、计算和存储的活动性能的测试。

在一些实施例中,云测试可以在单租户或多租户环境上的大数目的同时测试中被启动、运行和监测。结果可以按视觉形式被呈现,以加速对详细测量和分析的理解。用户界面可以被创建以允许查看测量和分析,并且以图表、表格、图形的形式、或任何其他视觉形式呈现给观看者,这将允许观看者理解该分析。

一些测试可以有助于评估云基础设施和虚拟化应用的性能。评估可以包括检查云计算基础设施以确保对于虚拟化网络功能应用软件产品的最低性能要求。测试可以仿真代表电信软件应用的工作负荷,以评估在云基础设施中运行应用的性能。该仿真可以允许应用与云基础设施进行交互的真实世界场景的虚拟模拟。

某些实施例涉及测试虚拟机之间的不同协议(诸如传输控制协议(tcp)、用户数据报协议(udp)和流控制传输协议(sctp))的传送的网络性能。在一个虚拟交换机内或跨虚拟交换机边界被传送的范围分组大小可以用来在测试期间对云进行基准检测(benchmark),并且将结果与参考要求进行比较。这些要求在一些实施例中可以预先确定。“黑色散列化(blackhashing)”算法可以在某些实施例中用来测试云基础设施的计算能力。

替换地,一些实施例可以涉及测试虚拟机与外部网关边界之间的不同协议(诸如tcp、udp和sctp)的传送的网络性能。网络性能可以用作用于正被测试的云的基准,并且结果然后可以与参考要求进行比较。

上面讨论的测试实施例可以允许在应用的设计和开发阶段对应用的连续测试。测试因此可以用来验证应用的完全功能与云基础设施的最低性能要求之间的匹配,这对于应用恰当运转可能是需要的。

某些实施例可以将机器和深度学习应用到从基础设施的云测试收集的数据。基准和关键性能指示符(kpi)可以被存储用于比较性应用测试。系统可以利用机器学习来提供云的偏差、异常和正常行为的复杂的相关和指示。收集的数据可以与相同基础设施的先前测试、以及用于比较的来自其他云的测试进行比较。用于比较的先前数据可以来自单个测试,或者可以通过多个依次或并行测试累积,这可以改进先前测试的统计有效性。测试还可以捕获云和它的行为的某些时间和上下文变化特性。

从云测试收集的数据的实时和后续分析也可能发生。某些实施例还可以用来预测趋势和未来异常、或者如下的某些参数,这些参数可能需要基于未来潜在条件而被监测,这些未来潜在条件可能在云基础设施处或在应用级别引起功能或性能问题。

在一些实施例中,对已经在云中施行的安全措施的正确运转的评估可以被执行。安全特征的存在和经验证的功能可以被执行,并且报告被生成。云还可以通过自动化的威胁攻击来针对安全威胁(诸如分布式服务拒绝和网络钓鱼)被测试,以评估云对这种攻击的复原能力和稳健性。其他实施例可以通过使用各种故障条件来测试在云中运行的应用的高可用性。故障条件可以仿真各种类型的真实世界故障。云对故障的响应以及故障条件可以被监测。

云性能指标和排名可以从多个基础设施测试kpi来生成,并且对照用于比较的基线或基准来计算。性能数据可以被使用,并且度量可以被监测并与通信网络中的流量模式进行相关,以在潜在的云容量问题发生之前预测它们。来自相同云或不同云的多个测试结果可以在用户界面处视觉地表示。这可以允许结果的覆盖以及当前结果与基线之间的差异的评估。

在某些实施例中,测试的云的数据库和关于云的信息(诸如硬件、软件、管理程序、以及它们的配置)可以被管理。信息和测试结果可以被聚合、同步、存档、聚类、或分组。这可以允许对结果的逻辑集中,即使测试区域性地或现场地被完成而不是从一个地方被运行。对测试结果的管理还可以允许当前测试的数据与先前测试的比较,包括与参考云的比较。另一方面,其他实施例允许分析多个云的结果并且显示云和配置的可变性。

一些实施例可以采用一键式方法。在一键式方法中,用户的单个发起动作(诸如按钮的按下或点击)可以发起测试。测试可以经由测试菜单预先被定义或调度,由此允许测试利用单个按钮的按下或点击而自动进行。

应用和云基础设施的测试还可以涉及评估云中的流量的增加和/或缩减。例如,云可以具有响应于云基础设施中的快速需求变化而生成附加虚拟机的能力。这样的评估可以有助于确保基础设施和应用能够跟上流量的增加,并且有助于指示基础设施无法应对流量变化的任何特定限制或失效点。

某些实施例可以采用来自一个或多个供应商的指纹识别应用或虚拟化网络功能。指纹识别可以允许用户分析kpi并且将应用与实际性能进行相关。在一些实施例中,机器学习可以用来预测性能kpi。例如,在云中实施应用之前,可以进行应用的配置和硬件/软件模型行为中的假定(what-if)变化。

性能验证在某些实施例中可以在所需要的时间的一部分内被执行,同时能够维持高置信水平。这种验证方法可以包括生成应用的指纹和/或模式的能力,这些指纹和/或模式可以与在给定云中运行良好的典型指纹和/或模式进行比较和匹配。

在某些实施例中,指纹识别方法可以包括使用进行学习以生成虚拟网络功能模型的机器。机器然后可以测量目标云的基础设施性能,并且将性能数据和/或所意图的流量模型应用到虚拟网络功能模型以确定置信水平。性能数据的反馈回路然后可以被部署,其可以将数据发送回到虚拟网络功能模型。

在一个特定实施例中,将被验证的虚拟网络功能可以是ip多媒体系统(ims)的呼叫会话控制功能(cscf)子系统。imscscf模型可以从先前收集的性能数据(例如,客户云或实验室测试中的已有部署)来生成。该性能数据然后可以通过能够生成ims模型的机器学习框架被处理,ims模型然后可以生成指纹。性能数据的类型可以包括例如ims性能kpi或基础设施性能kpi。

目标云基础设施性能数据然后可以被收集和测量。基础设施性能数据连同预期的流量模型然后可以被提供给ims模型,以确定ims在目标云中按预期运行的置信水平或概率。一旦ims可以在生产中使用,性能数据可以用作对机器学习框架的反馈回路以改进模型。

在某些实施例中,剩余的虚拟机和资产可以留在云中。这些留下的虚拟机和资产在某些实施例中可以自激活,并且在没有任何外部干预的情况下自动执行测试以及报告结果。如果足够的变化被检测到,则虚拟机和资产然后可以报告并且发送警报以触发更深入的测试体制。监督操作员然后可以决定何时以及以何种方式执行深入测试。

一些实施例可以允许应用的功能分解,其涉及将分解的模块插入到云中。分解的模块的性能然后可以在模块级别以及在整个应用级别被测试。涉及有噪声的邻居的条件也可以被评估。在相同云中、在存在其他工作负荷的情况下的有噪声的邻居对云性能的影响可以被评价。

上面的实施例可以涉及云基础设施上的电信应用的测试。各种结果可以允许网络提供者确定如何分配动态调用、以及如何基于云度量来处理流量。

图1图示了根据某些实施例的系统架构。例如,该系统架构可以包括平台110。平台110的每个部分本身可以是具有处理器和存储器的设备。平台的控制器部分可以部署在云内部。在其他实施例中,平台可以部署在支持多个云同时被测试的中心位置。平台110还可以支持多节点部署,其仍然可以在逻辑上被视为一个集群。

调度器111可以被提供在平台的核心部分中。调度器可以是管理特定测试的生命周期的主要组件。测试的生命周期可以包括若干阶段。例如,一个阶段可以是测试规划阶段,在测试规划阶段中,测试实例将从测试模板列表被创建,并且被指配给特定云。测试然后可以被配置并且被设置为在调度的时间运行。例如,第二阶段可以是测试执行阶段,在测试执行阶段中,测试实例可以被执行。测试的进度、以及作为结果的测试度量可以在测试的持续期的至少一部分内、或测试的整个持续期内被监测。

平台110还可以包括收集器112。收集器112可以执行重要的测试相关数据的收集。例如,测试进度、测试结果和测试日志可以由收集器112收集。数据的收集在一些实施例中可以经由消息传递接口实时地进行,诸如消息代理软件,例如,rabbitmq113。所有收集的数据可以存储在选择数据库114中,诸如mongodb。

在某些实施例中,平台110包括编排器115。编排器115可以负责在测试开始之前在云中创建一个或多个测试集群。编排器115可以创建虚拟机实例,配置实例之间的联网,并且在这些实例上安装必要的软件包。平台110可以具有它自己的内部编排器115,内部编排器115可以由外部服务器或软件辅助,诸如apache2、libcloud和ansible。在其他实施例中,外部编排元件(诸如cam)可以与平台110一起提供。在该外部编排元件中,所有操作可以经过单个编排接口,该单个编排接口可以贯穿各种不同的实施方式被使用。

分析器和报告器116也可以被包括在平台110中。分析器和报告器116可以分析收集的测试数据,生成云资源索引和/或等级,并且生成最终的云报告。另外,该组件可以包括机器学习特征,其例如用来基于云的连续低开销测试来预测云容量问题。在一些实施例中,调度器111、收集器112、编排器115、以及分析器和报告器116可以是平台110的核心功能的一部分。

在某些实施例中,平台110可以包括最终报告生成器117。命令行工具集合也可以被包括,其可以与其他表示性状态转移(rest)组件安装在相同节点上。最终报告生成器可以提供从经测试的结果生成报告所需要的功能,包括在用户界面上显示的图形。报告可以与任何文字处理软件兼容。rest应用程序接口(api)也被提供。restapi118可以暴露云基础设施和测试元数据。restapi118然后可以报告经测试的元数据,并且向外部应用暴露云操作,例如,测试云连接。在一些实施例中,restapi可以将用户界面119视为外部应用。

在某些实施例中,用户界面119(ui)可以提供用于与平台110交互的界面。ui119可以是基于web的。ui119可以允许用户规划对云的测试,监测测试进度,以及查看和/或下载所生成的报告。

图1中示出的实施例还包括测试代理120。测试代理120有助于执行由平台110调度的测试。测试代理120可以放置在运行测试用例的一个或多个虚拟机实例中。心跳(hbeat)121可以被包括在测试代理120中。hbeat可以负责向平台110发送isalive信号。该信号可以由平台110解释为代理准备好执行调度的测试的指示。

报告器122也可以被包括。报告器122可以经由消息传递接口向平台110发送测试进度更新和测试结果。测试进度更新和结果可以被发送到平台110中的收集器112。测试代理120还可以包括记录器123,其处理测试代理的记录操作。记录器123可以在测试的执行阶段期间处理插件。由记录器123采集的日志可以经由消息传递接口113被发送到平台110。

在某些实施例中,可插拔执行器也被提供。可插拔执行器124可以执行由平台110发送的在测试实例中定义的所有测试用例。执行器124可以经由测试代理120的插件能力来支持附加的新测试用例类型,例如speccpu20xx测试。换言之,新测试用例可以简单地被开发作为新测试插件,而不需要触动测试代理120的核心部分。

至少一个插件125可以被包括在测试代理120中。插件125可以是负责个体测试用例执行的个体组件。这样的个体测试用例执行可以包括在执行之前的准备、测试用例执行、和/或测试用例结果的收集和报告。

图1中示出的实施例还包括监测客户端130。监测客户端130可以被包括在涉及测试集群的一些或所有实例中。监测客户端130收集针对云基础设施的硬件的资源使用,并且可以周期性地收集kpi以用于测试监测目的。测试代理和平台主要使用收集的库用于系统度量收集和传送。

图2图示了根据某些实施例的流程图。步骤201可以是云验证服务的第一步骤。步骤201可以包括设立云连接,其进行动作以确保测试平台具有通向云管理层的连接和访问权限。如果在这个阶段出现问题,则可以通知管理员。

在某些实施例中,步骤202包括执行基础设施测试以便测试云基础设施上的应用(诸如电信应用)的性能。该测试可以涉及使用虚拟机来模拟云基础设施上的应用的运行。云验证服务可以评估云基础设施的计算机、存储和网络服务的性能,以及监测云服务的可用性。为了计入云性能上的差异,每个测试可以运行多次。测试的最终等级有时仅能够在至少已经存在三个连续有效梯级时被生成,这有助于确保所生成的数据在统计上是显著的。

在一些实施例中,云验证服务管理测试的整个周期,从而它可以创建虚拟机,供应它们,在它们上运行测试,收集测试的结果,以及终止所有分配的资源。

步骤203可以是虚拟化网络功能(vnf)测试阶段。在vnf测试阶段,云验证服务运行测试,这些测试测量特定于vnf的kpi以评估所安装的应用的性能。基础设施和vnf测试的结果然后被呈现,并且与参考点进行比较。该参考可以是已经被预定义为vnf操作的基准参考的先前测试的云或标准化的云。如步骤204中示出的,测试的结果然后可以被分析,并且报告可以基于这些结果被生成。

在图2中,步骤201可以包括设置云连接以便访问测试服务。云验证服务可以是多租户服务,该多租户服务可以服务多个用户并且并行地测试多个云。为了访问允许用户测试云基础设施的测试服务,用户可以使用用户名和密码。一旦用户已经成功登录或访问服务,用户可以然后选取是选择先前添加的云,还是选择新的云。

在某些实施例中,当用户选取添加新的云(包括例如openstackkeystone服务url)时,可以进行对用户具有恰当的访问凭证的请求。访问凭证可以包括租户名、用户名、和/或密码。一旦恰当的凭证被提供,服务可以将初始rest请求发送到云。用户可以接收与失败或成功连接尝试有关的反馈。如果连接尝试成功,则复选框可以被提供,其指示云restapi调用是成功的。如果连接尝试失败,则可以提供失败的原因。会话令牌在一些实施例中然后可以被提供。

云验证服务可以在所托管的部署模型中运行。这个实施例可以包括对各种云连接场景的支持,同时保持服务的管理的集中式视图。在一些实施例中,仅服务的一些节点可以到达目标云。这可以在防火墙被提供时发生,防火墙可能只允许来自某个ip池或甚至单个ip地址的流量。

另一实施例可以涉及通过虚拟私人网络(vpn)连接到云,vpn也可以进行动作以限制可以到达目标云的服务节点。通向云的vpn链接可以针对一个或多个特定节点被设立。vpn连接可能不允许分组从vpn隧道端点节点外部进行路由。为了处理通向(由vpn或防火墙引起的)具有受限访问的云的连接,如图3中示出的,云验证服务rest可以包括路由器rest请求。

图3图示了根据某些实施例的流程图。特别地,图3图示了云验证服务的rest接口。rest接口可以由用户界面310以及由用于集成的其他系统来使用。某些实施例可以包括对云api进行直接调用,诸如请求用于特定云的图像或网络列表。rest路由器组件可以负责将这样的api调用路由到可以到达云的至少一个rest响应者,向云进行直接请求,并且随后将响应发送回来。消息代理可以用来促进rest响应者与路由器之间的通信。

在图3的实施例中,用户界面310可以通过http负载平衡器320来发送超文本传送协议(http)请求。该请求可以调用云api,并且可以到达至少一个rest路由器330。rest路由器330然后可以向所有注册的rest响应者节点340广播:云api已经进行请求。rest响应者然后可以用来连接到云350,云350有时可以经由vpn或防火墙被锁定。来自第一rest响应者节点340的响应可以被发送回到用户界面。在一些实施例中,云标识可以利用最新的响应者节点信息来更新调度器指配配置,从而节点可以是用于处理云测试的指定调度器。

在某些实施例中,应当存在多于一个路由器主动工作。所有响应者节点可以向路由器注册。响应者节点可以自动注册它们自己。在一些实施例中,路由器节点也可以是响应者节点,这意味着该两个节点的功能可以组合成一个物理节点。后续请求可以被路由到已知的良好响应者,而不是从用户界面向所有响应者广播请求。响应者也可以被定期更新并且进行连接检查。另外,响应者可以具有主机支持列表,其可以称为白名单。白名单可以包括响应者可以进行排他服务的至少一个定义的云。

图4图示了根据某些实施例的系统架构。图4还图示了根据某些实施例的云restapi的详细视图。在图4的实施例中,存在一个rest路由器410和三个rest响应者(rest响应者a420、rest响应者b430和rest响应者c440)。路由器410可以将两个云apirest请求路由到云a450。第一api调用可以涉及获得网络列表,而第二api调用可以涉及获得图像列表。注意,与处理第一调用相关的操作涉及步骤1、2、3、4、5和6,而与第二调用相关的操作涉及步骤7、8、9、10和11。该流程的每个步骤被编号并且在图片下方描述。

在步骤0中,rest路由器410可以通过连接到数据库470(例如,mongodb)来开始。rest路由器410然后可以从数据库470获取rest响应者420、430和440到云a450和云b460的映射。rest响应者a420可以被指配来处理对云b460的请求,rest响应者b430可以被指配给云a450和云b460,并且rest响应者c440可以被指配给云a450。一旦路由开始,rest路由器410可以开始从响应者接收心跳消息。rest响应者420、430和440可能正通过消息队列广播心跳。

在步骤1中,利用列出云a450中的网络的请求,验证服务restapi可以被调用。请求可以向rest路由器410发送。在步骤2中,使用从响应者发送的心跳消息,rest路由器410可以检查指配给云a的响应者中的哪些是存活的。因为rest响应者b430可能不是活动的,所以列出网络请求可以被发送到向rest路由器410发送心跳的所有活动的响应者。

在步骤3中,响应者a420和响应者c440可以向云a450进行请求。在某些实施例中,响应者a420可能进行成功调用,而从响应者c440进行的请求失败,因为云由于防火墙限制而不可达。在步骤4中,响应者a420和响应者b430可以将它们的结果发送回来。在步骤5中,rest路由器410然后将云a450添加到数据库470中存储的响应者a420云指配。来自响应者a420的成功响应然后可以由路由器410返回。该响应指示成功连接被建立到云a450,这意味着云a450已经成功添加。

在步骤7中,对云a450的第二调用然后可以被发起以便请求图像列表。由于响应者a420已经被指配给云a450,所以该请求在步骤8中被转发到云a450。如果存在多于一个响应者被指配给云a450,则请求也可以发送到其他指配的响应者。在步骤9中,由响应者a420进行调用,并且在步骤10中,响应者a420可以将请求发送回到rest路由器410。在步骤11中,来自响应者a420的成功响应由rest路由器410返回。上述实施例可以采取动作以通过检索指配的响应者列表以及未决请求列表来监测暴露的rest端点。

一旦对云的凭证被提供,并且通向云的连接被建立,如图4中示出的,用户可以提供云配置的附加参数。这些参数可以用来确定将被测试的云的配置。参数可以分为若干类别,包括实例配置、风格(flavor)映射和连接配置。为了简化配置过程,在某些实施例中,云验证服务暴露rest接口以得到关于以下至少一项的数据:可用图像、网络、区域、密钥对、或风格。

在某些实施例中,实例配置可以包括提供与启动测试虚拟机相关的默认值。实例配置参数列表可以包括可用性区域或虚拟数据中心,其可以是测试虚拟机可以被启动的默认位置。实例配置参数还可以包括图像名称和虚拟应用名称,其可以是如下的图像的名称,该图像将被用于对云中启动的虚拟机的测试。在一些实施例中,如果图像尚未存在于云中,则云验证服务还可以将图像上传到目标云。这可以有助于简化云测试过程。另一实例配置参数可以是浮动ip协议或外部网络。根据这个参数,虚拟机将从网络接收可路由的ip地址。

图5图示了根据某些实施例的流程图。该流程图可以表示向云的图像上传流程。在步骤1中,将图像上传到云a540的restapi请求到达rest路由器510。在步骤2中,rest路由器510然后可以向指配给云a540的响应者发送查询,以便检查图像是否可以被上传。在步骤3中,rest响应者z520和rest响应者a530可以检查它们是否可以被用来上传图像,这意味着响应者可以检查图像文件是否存在于可以被访问的盘上。在图5的实施例中,在步骤5中,rest路由器510选择rest响应者a530来处理上传。在其他实施例中,rest响应者z520可以被选取。

rest响应者a530可以检查来自数据库550的上传的状态。如果存在已有条目并且最后的更新是新近的,例如在最近一分钟内,则数据库可以忽略上传请求并且返回消息,该消息说明http上传已经在进行中。替换地,如果没有条目或条目是旧的,则如步骤5中示出的,rest响应者a530可以开始向云540的上传过程。在步骤6中,rest响应者a530可以开始上传过程。它然后可以在一致的基础上更新数据库中的上传任务条目,包括最近更新的字段。

在步骤7中,关于图像上传状态的查询然后可以到达rest路由器。在步骤8中,由rest路由器广播要求图像上传状态的请求。图像上传状态请求可以被发送到所有响应者,包括rest响应者z520和rest响应者a530。在步骤9中,响应者可以检查上传状态,并且将上传状态发送到rest路由器510。在一些实施例中,仅正在上传图像的响应者可以对得到的图像上传状态请求进行响应。步骤10图示了rest响应者a从数据库550取回图像上传作业状态。如果工作者标识具有与环境标识相同的值,则数据库550可以利用上传作业状态进行响应。如果工作者标识不是与环境标识相同的值,则数据库550可以利用指示错误请求的消息进行响应。

在某些实施例中,云风格可以包括标签,该标签可以放置在虚拟cpu、存储器和存储库的特定组合上。公共云和私有云两者都可以使用云风格。然而,关于特定风格意味着什么,可能没有任何固定的标准。例如,在一个云中,风格“m1.tiny”可以意指具有一个虚拟cpu的虚拟机,而在另一云中,这样的风格甚至可以不被定义。为了能够使测试定义不被向下绑定到特定的云环境,通用索引可以用作虚拟机的风格。每个云因此可以具有它自己的内部风格到测试中使用的通用索引的映射。风格映射配置步骤可以允许用户建立这种配置。

图6图示了根据某些实施例的用户界面。具体地,图6图示了可以允许用户选取风格映射配置的用户界面。用户可以将云的风格列表610映射到可以用于测试的风格索引列表620。测试可以使用图6中示出的索引来指代风格,从而测试可以是云不可知的,并且不被向下绑定到具有特定风格的某个云。默认风格也可以被定义,其可以用于启动测试实例。

在某些实施例中,云配置的附加步骤可以是指定域名服务器和代理设置。作为测试供应步骤的一部分,这些配置然后可以被注入以测试虚拟机。

在一些实施例中,每个云可以具有在规划阶段期间被指配给它的一定数目的测试。测试例如可以包括云api性能测试、计算基础设施测试、网络基础设施缩放测试、和/或网络基础设施测试。图7图示了根据某些实施例的流程图。在图7的实施例中,可能存在数据库中存储的测试模板710,其可以由用户选择。测试模板可以描述哪些测试用例应当被运行、测试应当何时被执行、和/或将被测试的目标环境的拓扑,例如,虚拟机或后端存储库的配置。

如步骤720中示出的,测试模板的副本可以被创建并且与云相关联。测试模板的该副本可以称为测试实例文档730。在某些实施例中,测试实例可以在将它调度到平台110的调度器111(如图1中示出)中之前在步骤730中被定制。对测试实例文档进行定制可以包括改变不同测试用例的一些配置、和/或禁用或移除测试用例中的一些测试用例。

在某些实施例中,对于调度的测试执行750中的每个调度的测试执行,测试运行文档可以被创建。测试运行760可以是从中调度原始执行的测试实例文档的副本。测试运行760因此还可以包含重要测试配置和环境信息的快照,在执行时,每当可能需要审计先前的测试运行时,这些快照可以用于历史目的。每个测试运行执行可以生成多个测试结果文档770和测试日志文档780,它们与用于单个测试的执行的测试运行文档相关联。

在一些实施例中,测试可以通过cron表达式来启动。每个测试实例例如可以具有针对一个或多个未来执行时间指定的一个cron表达式。cron调度还支持有效时间段(当这样的时间段被指定时)。当调度的运行在给定的有效时间段之外时,测试可以不被执行。用户可以在用户界面中指定有效时间段。用户可以指定有效时间段的日期、时间和长度。用户在某些实施例中还可以指定测试用例可以并行运行,或者所有测试用例应当被执行,而不管失败。

在某些实施例中,测试可以通过ad-hoc一次执行来启动。在调度器接收到测试实例调度之后,测试可以短暂地被执行。另外,某个实施例可以采用“一键式”方法。在“一键式”方法中,用户的单个发起动作(诸如按钮的按下或点击)可以发起测试。如上面讨论的,测试可以经由测试菜单预先被定义或调度,由此允许测试利用单个按钮的按下或点击而自动进行。

图8图示了根据某些实施例的流程图。图8的实施例从平台视角表示测试执行流程。在步骤801中,用户可以通过输入某些要求(诸如用户名和密码)来登录测试服务。在步骤802中,用户界面可以用来确定要测试的新云。在一些实施例中,用户可能被要求输入云的凭证,包括授权url、租户、用户名、和/或密码。使用输入的凭证,测试的云然后可以通过远程位置被访问。

在某些实施例中,如步骤803中示出的,测试可以被规划。测试的规划可以包括使用允许测试云的各个方面的测试模板。测试可以针对在云、计算、网络、存储库和应用中运行的云服务(诸如虚拟化电信网络功能,例如ims)而被规划。模板然后可以被放入配置中用于测试。在步骤804中,用户可以选取选择数据库来存储所收集的数据。在一些实施例中,用户还可以从数据库中汲取参考或基准以在比较当前测试时使用。

在步骤805中,用户可以调度测试。在步骤806,调度测试清单然后可以通过用户界面示出。在查看清单之后,用户可以选择是否发起测试。如果用户选择改变清单中示出的测试配置,则用户可以返回并且重新配置步骤802、803、804和805。否则,用户可以在步骤807中发起测试。在一些实施例中,云可以使用全自动化被测试。一旦测试已经被发起,如808中示出的,若干设置步骤可以在实际测试进行之前被准备。例如,虚拟机可以被创建,并且图1图示的测试代理可以被部署。

在步骤809中,可以进行代理是否存活的确定。该确定可以基于如图1中图示的心跳121是否从代理发送到测试平台。在某些实施例中,一个代理可能不是存活的,并且该一个代理中的测试收集和监测可以被暂停,直到接收到代理为存活的指示。在其他实施例中,代理可以指示它们是活动的并且测试可以由平台监测,如监测测试执行步骤810中示出。在某些实施例中,当测试在最终报告可以被创建之前发生时,用户可以审阅测试的进度以及详细日志两者。测试结果然后可以在步骤811中被收集。

在步骤812中,可以进行测试是否完成的确定。如果不是,则测试以及步骤810和步骤811中对数据的监测和收集可以继续。如步骤813中示出的,当测试完成时,则测试可以被最终确定,并且虚拟机可以被销毁。如步骤814中示出的,报告然后可以由平台创建,该报告可以允许用户容易地审阅测试的结果。该报告可以在服务的用户界面内呈现。

如在图8中的步骤803中所解释的联网测试可以在不同的网络拓扑上进行,例如,可用性区域间拓扑、可用性区域内拓扑、或外部网关拓扑。图9a示出了根据某些实施例的拓扑。在图9a的实施例中,性能可以在当前云内部的节点与云环境外部的节点之间被测试。具体地,位于云的区域1901中的虚拟机1903与外部节点906之间的性能可以被测试。网关905可以用来促进虚拟机903与外部节点906之间的交互。

在其他实施例中,如图9b中示出的,性能可以在不同可用区域中的两个节点之间被测试,这导致可用性区域间拓扑。位于区域1901中的虚拟机1903可以与位于区域2902中的虚拟机2904交互。在图9c中示出的又另一实施例中,性能可以针对相同的可用性区域901中的两个虚拟节点903、904之间的交互而被测试。测试可以使用图9a、图9b和图9c中展示的网络拓扑而重复地被运行。

在某些实施例中,流量可以通过这些不同的拓扑来运行。流量可以具有不同的分组大小,并且使用不同的网络协议,例如tcp、udp和sctp。这可以允许从网络视角对时延和带宽的评价。

图10图示了根据某些实施例的流程图。特别地,该流程图从测试代理的视角示出。在步骤1010中,代理被安装和配置。代理可以用来在应用的运行期间帮助平台测试云基础设施。如步骤1020中示出的,代理服务可以被启动或部署。在步骤1030中,代理可以向平台发送“isalive”信号,以向平台指示它可以执行测试。在步骤1040中,代理可以等待来自调度器的指令以开始执行测试。在一些实施例中,如果用户未给予代理用于继续的许可,则测试可以不被执行。代理然后可以继续向平台发送“isalive”或心跳消息,以指示它可以开始测试。在其他实施例中,调度器可以发送执行程序的请求,其可以允许代理执行测试。代理可以在步骤1050中从平台接收测试指令,并且在步骤1060中开始执行测试。测试结果然后可以在步骤1070中发送到平台。

图11图示了根据某些实施例的系统架构。具体地,图11图示了在测试执行期间平台110与测试代理120(如图1中示出)之间的交互。调度器可以周期性地轮询可以在该时间期间开始的新测试。在步骤1中,当调度器1101找到将被启动的测试时,如步骤2中示出的,它创建可以管理测试生命周期的调度器测试实例1104。

在调度器测试实例1104内,不同类型的多个实例可以在步骤3中被创建,它们可以处理不同的测试。例如,实例类型可以包括测试代理中介器1103,其可以处理与测试代理1108的主要交互。编排器1102也可以被创建,其可以负责云供应和测试工具配置。另外,测试结果收集器1105,其可以从测试收集测试结果,以及测试进度收集器1106,其可以收集实况测试进度更新。

在步骤4中,一旦调度器测试实例1104已经被初始化,它可以首先指令编排器1102启动一个或多个虚拟机。虚拟机可以包括测试软件和测试代理1108的安装和配置。在某些实施例中,测试代理1108在步骤5中变为存活,并且开始经由消息传递接口或总线(例如,rabbitmq)通过测试代理中介器1103发送心跳。在步骤6中,测试代理中介器1103可以识别心跳,并且经由消息传递总线向代理1108发送测试套件文档。在步骤7中,基于由测试代理1108接收的测试套件文档,测试代理1108可以创建至少一个测试套件执行器1109以开始测试套件执行。

在一些实施例中,如步骤8中示出的,测试套件执行器1109可以进一步将每个测试用例委托给测试用例执行器1110。在步骤9中,测试用例执行器1110可以基于测试用例规范来确定需要加载的插件,并且可以动态地加载执行器插件。在一些实施例中,在步骤10中,测试用例执行器1110可以经由回调机制立即将测试用例进度更新发送到测试套件执行器1109,测试套件执行器1109然后可以经由消息传递总线10将更新发送到测试进度收集器1106。一旦测试进度更新由测试进度收集器1106收集,更新可以被发送并且存储在数据库1113中。

在某些实施例中,在步骤11中,取决于测试用例,执行器插件111可以经由步骤1112中的编排器代理来执行另外的编排。在步骤12中,编排器代理1112可以经由回调机制立即对编排请求进行响应。在一些实施例中,在步骤13中,编排器代理1112可以经由消息传递总线将请求封装到编排器代理后端1107,编排器代理后端1107可以创建新的编排实例。在步骤14中,创建的编排器实例可以按指令启动对云的编排过程。

在步骤15中,在执行器插件1111结束测试用例的执行之后,它可以将测试结果发送到测试用例执行器1110,测试用例执行器1110然后可以将结果转发给测试套件执行器1109。测试套件执行器1109然后可以通过消息传递接口或总线,将测试结果从代理发送到位于平台中的测试结果收集器1105。结果然后可以存储在数据库1113中。

图12图示了根据某些实施例的流程图。在测试的执行期间,用户可以监测云资源的利用率和基本kpi,诸如cpu、使用、或存储器使用。这允许用户快速发现测试和/或云基础设施的一些基本问题,而无需分析和调试日志。换言之,用户可以在测试期间查看和/或收集实况度量。

图12图示了用户可以实况监测各种测试度量的实施例。用户界面1201可以用来向“apache2”1202发送监测请求,“apache2”1202可以是与平台中的编排器通信的http服务器。“apache2”可以被包括在平台中的编排器中。监测请求可以通过位于云基础设施中的graphite1203和carbon1204被转发。所收集的数据然后可以通过云基础设施从测试虚拟机中的收集的插件1205被发送回到“apache2”1202。数据然后可以被转发到用户界面1201用于由用户查看。在一个实施例中,cpu负载和存储器使用可以被标绘为实况度量,实况度量可以用来监测测试的执行。

图13图示了根据某些实施例的流程图。为了便利测试执行的监测,云验证服务可以实施分布式记录。分布式记录可以帮助避免记录到测试虚拟机中的每个,并且可以在单个视图下提供所有日志。

在某些实施例中,在步骤1中,平台中的测试调度器实例1301在测试的发起期间创建日志收集器1302,其可以充当来自多个源的流式日志的接收端。在步骤2中,代理中的测试代理1303创建一个或多个分布式记录器客户端1304实例以将日志流式传输到平台。在步骤3中,分布式记录器客户端1304然后可以开始经由测量接口将日志流式传输到平台。在平台端,日志收集器1302可以接收流式传输的日志,并且将它们存储在数据库1305中。在某些实施例中,日志可以一经接收立即被存储。日志也可以按多个批次存储。

图14图示了根据某些实施例的用户界面1401。用户界面可以包括进度概览,进度概览包括自测试开始以来过去的时间量。用户界面1401还可以图示进度细节,包括针对每个执行的网络测试的进度量。在一些实施例中,示出所测试的进度日志的指定代码可以被示出。数据库中存储的日志可以经由rest接口被暴露,其可以允许用户界面中的日志呈现。

图15图示了根据某些实施例的用户界面。具体地,图15中示出的用户界面1501可以图示高级别结果视图,其可以允许云之间的结果比较。如上面讨论的,验证服务包括参考云,参考云可以在查看结果时用作基准。每个所测试的云可以基于该云与参考云结果的相对性能而被分级。初始输出可以是云等级,其在图15中示出的实施例中是单个数字,该数字具有在零到五之间的离散得分。得分可以针对基础设施和应用测试中的每个基础设施和应用测试被提供。

该顶部级别视图可以分解为针对每个测试类别的具体结果。例如,云的整体性能可以被划分为服务1520、计算1530、网络1540、存储1550、或应用1560中的至少一项。用户可以被提供有在零到五之间的得分,其描述云基础设施的整体性能。此外,上述类别中的每个可以分成另外的类别,其也可以按照从零到五的等级被分级。

当前测试的编译得分可以通过每个类别内的水平线来示出。例如,服务1520下的服务可用性被测试为具有大约5个中的4等级。另外,某些实施例可以包括垂直条或箭头,其示出针对参考云的相同测试的参考得分。这可以允许云与其他云进行比较,或者替换地与来自相同云的先前结果进行比较。例如,服务1520下的服务可用性类别具有大约5的参考云得分。用户可以从档案中选择特定的参考云。

云等级计算可以使用不同方法来计算。一些实施例例如按每种风格(例如,7-zip测试)生成测试用例等级。对于每种风格,每个kip的平均测试测量值可以被计算。另外,kpi等级可以通过将先前计算的平均值映射到阈值范围的右侧而被计算。所计算的测试用例等级还可以使用所有计算的kpi等级的加权等级平均来计算。

在其他实施例中,测试组等级可以按每个云资源被计算,例如,压缩测试。对于云资源中的测试组中的每个测试组,通过对来自所有风格的测试用例等级求平均,可以针对测试组中的所有风格计算测试用例等级平均。另外,通过对所有风格执行所计算的测试等级的加权平均,可以计算测试组等级。

在某些实施例中,云资源等级可以被生成。云资源等级可以在计算1530类别中使用。通过对所有测试组等级求平均,可以计算云资源等级。当测试组权重被预定时,则加权平均可以被计算。如果不是,则权重可以均匀地划分。在一些实施例中,通过对云资源等级中的一些或全部求平均,可以生成云等级。

查看每个类别内的结果在一些实施例中可以在参考云得分的上下文中被呈现。如图15中示出的,类别可以是服务1520、计算1530、网络1540、和存储1550、或应用1560中的至少一项。如图15中示出的,用户界面中示出的垂直箭头可以表示参考云得分。每个所测试的度量可以在与参考云得分的比较中被说明。

在一些实施例中,代替图15中示出的垂直线,云得分可以被示出为在水平轴上具有百分比的垂直直方图。参考云得分可以在直方图的零百分位数标记处,并且直方图中示出的条形的范围从零标记左侧的负百分位数到零标记右侧的正百分位数。负百分位数可以指示当前所测试的度量具有比参考云得分低的得分。另一方面,正百分位数可以指示当前所测试的度量具有比参考云得分高的得分。百分位数越高,当前测试的性能越好。

在另一实施例中,水平性能直方图或条形图可以用来报告当前测试的度量。这可以允许度量的更具体的评价,包括例如不同机器类型中的具有用于gzip压缩的时延的不同文件大小的性能。这可以允许比上文描述的云等级计算更详细和参数化的度量查看。在另一示例中,在联网类别1540中,可用性区域间拓扑中的吞吐量可以基于sctp协议、tcp协议或udp协议,按兆比特每秒来测量。

如图15中示出的,电信网络应用可以被测试。例如,ims可以被测试。用户界面可以用来输入网络订户负载、流量负载、和/或流量模式。在某些实施例中,应用性能的时间视图可以被查看。

在其他实施例中,任何类型的所测试的度量可以按任何形式被呈现,无论它是在图表中,诸如散点图、表格、图形、列表、脚本,还是可以与用户界面兼容的任何其他形式。

在某些实施例中,为了简化新测试工具的产品熟悉,云验证服务可以在用户界面侧实施小部件概念。该小部件概念可以允许在以javascript对象表示法(json)格式定义的仪表板中的结果查看。在某些实施例中,仪表板规范可以经由json检索和处理。测试结果数据然后可以被检索,并且小部件被生成。

图16图示了根据某些实施例的流程图。在步骤1601中,用户请求仪表板。如步骤1602中示出的,用户界面仪表板模块然后经由restapi来请求仪表板规范。在步骤1603中,仪表板规范然后可以从数据库(诸如mongodc)被发送到restapi。基于在步骤1604中返回给用户界面的仪表板规范,用户界面仪表板模块可以在步骤1605中经由restapi来请求测试数据。在步骤1606中,测试结果然后可以从数据库被发送到restapi,并且如步骤1607中示出的,结果可以被转发到用户界面。

在某些实施例中,在步骤1608中,用户界面仪表板模块然后可以根据仪表板规范来创建一个或多个仪表板小部件。如小部件规范中规定的,仪表板小部件可以包括经过滤的测试结果数据。在步骤1609中,仪表板小部件处理经过滤的测试结果数据,并且经由仪表板数据生成器将经过滤的测试结果数据变换为期望用于使小部件可视化的形式。在某些实施例中,仪表板数据生成器可以利用抽象语法树(ast)表达式解析实用工具(utility),来解析小部件规范中存在的任何表达式。结果可以被转发到仪表板小部件数据生成器,其然后可以将小部件数据发送到仪表板小部件。

最终报告可以由云验证服务生成,并且可以包括总结测试活动的最终报告文档。在一些实施例中,最终报告生成过程可以包括从数据库对云数据的检索、以及使用预定义的模板描述符,其可以帮助定义文档如何被组装,和/或哪些图形将被生成和包括在报告中。报告数据库插件然后可以被处理,并且报告变量可以被创建。最终,任何形式的文档可以被生成。在一些实施例中,生成的文档可以被加密或编码。文档还可以经由http协议被流式传输到用户的web浏览器。

图17图示了根据某些实施例的流程图。在步骤1701中,用户可以请求最终报告。文档可以根据预定义的模板、json报告变量、和/或json报告器描述符中的至少一项而被组装。在步骤1702中,该文档组装信息然后可以被转发到数据源插件。数据源插件然后可以从数据库收集数据,和/或从图形用户界面汲取信息。插件然后可以生成图形,并且处理将在最终报告中呈现的附加数据源。

数据源插件然后可以在步骤1703中生成文档,并且在步骤1704中将文档发送给用户。然而,在文档到达用户之前,在某些实施例中,在步骤1704中,文档可以利用密码被加密,例如使用docxencryptor工具。因此,在某些实施例中,文档可以通过http被加密并且被发送到用户的浏览器。在其他实施例中,不是加密,而是报告可以只作为没有加密的文档(例如,pdf文档)通过http被发送。

图18图示了根据某些实施例的流程图。如步骤1810中示出的,用户可以首先连接到云验证服务以用于测试云基础设施。在步骤1820中,用户设备可以触发云基础设施上的虚拟网络功能的执行。使用云验证服务,云基础设施的关键属性与所执行的虚拟网络功能然后可以被测试。关键属性可以包括云基础设施的类别,诸如服务、计算、联网、或存储。如步骤1830中示出的,云基础设施的关键属性或虚拟网络功能的度量可以在用户设备处被接收。度量可以由用户设备显示,并且由用户评价。用户设备可以包括图20中描述的所有硬件和/或软件,包括处理器、存储器、和/或收发器。

图19a图示了根据某些实施例的流程图。具体地,图19a图示了根据平台设备的流程图。步骤1901包括连接到云验证服务以用于测试云基础设施。在步骤1902中,平台设备可以调度对云基础设施的关键属性的测试。虚拟网络功能可以在云基础设施上被执行。在步骤1903中,调度可以从平台设备被发送给测试代理。如步骤1904中示出的,一旦测试代理开始测试,平台设备可以接收云基础设施的关键属性或虚拟网络功能的度量。平台设备可以将度量发送到用户设备,用户设备可以在用户界面上显示度量。

图19b图示了根据某些实施例的流程图。具体地,图19b图示了根据测试代理的流程图。如步骤1911中示出的,测试代理从平台设备接收针对云基础设施的关键属性进行测试的请求。在步骤1912中,测试代理可以针对云基础设施的关键属性和虚拟网络功能进行测试。如步骤1913中示出的,测试代理然后可以向平台设备发送云基础设施的关键属性或虚拟网络的度量。

图20图示了根据某些实施例的系统。应当理解,图1-图18、图19a和图19b的流程图的每个框以及它们的任何组合可以通过各种手段或它们的组合来实施,诸如硬件、软件、固件、一个或多个处理器和/或电路。在一个实施例中,一种系统可以包括若干设备,诸如,例如平台设备2010和测试代理设备2020。平台设备可以是调度器、收集器、编排器、分析器和报告器、最终报告生成器、或用户界面。测试代理设备例如可以是报告器、记录器、或可插拔执行器。

这些设备中的每个设备可以包括至少一个处理器或控制单元或模块,分别指示为2021和2011。至少一个存储器可以被提供在每个设备中,并且分别指示为2022和2012。存储器可以包括其中包含的计算机程序指令或计算机代码。一个或多个收发器2023和2013可以被提供,并且每个设备还可以包括天线,分别图示为2024和2014。尽管每个仅示出一个天线,但是许多天线和多个天线元件可以被提供给设备中的每个设备。例如,这些设备的其他配置可以被提供。例如,除了无线通信之外,平台设备2010和测试代理设备2020可以另外被配置用于有线通信,并且在这种情况下,天线2024和2014可以图示任何形式的通信硬件,而不仅限于天线。

收发器2023和2013每个可以独立地是发射器、接收器、或发射器和接收器两者,或者是可以被配置用于发射和接收两者的单元或设备。操作和功能可以在不同的实体中执行。一个或多个功能也可以被实施为可以在服务器上运行的软件中的(多个)虚拟应用。

用户界面可以位于用户装置或用户设备上,诸如移动电话或智能电话或多媒体设备、被提供具有无线通信能力的计算机(诸如平板)、被提供具有无线通信能力的个人数据或数字助理(pda)、或它们的任何组合。用户设备还可以包括至少一个处理器、存储器、以及收发器。

在一些实施例中,一种装置(诸如节点或用户设备)可以包括用于执行上面关于图1-图18、图19a和图19b描述的实施例的部件。在某些实施例中,包括计算机程序代码的至少一个存储器可以被配置为,与至少一个处理器一起,使得该装置至少执行本文描述的过程中的任何过程。

处理器2011和2021可以由任何计算性或数据处理设备来具体化,诸如中央处理单元(cpu)、数字信号处理器(dsp)、专用集成电路(asic)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、数字增强电路、或者相当的设备或它们的组合。处理器可以实施为单个控制器、或者多个控制器或处理器。

对于固件或软件,实施方式可以包括至少一个芯片组的模块或单元(例如,过程、功能等)。存储器2012和2022可以独立地是任何合适的存储设备,诸如非暂态计算机可读介质。硬盘驱动器(hdd)、随机访问存储器(ram)、闪存、或其他合适的存储器可以被使用。存储器可以组合在与处理器的单个集成电路上,或者可以与其分离。此外,计算机程序指令可以存储在存储器中,并且可以由处理器处理的可以是任何合适形式的计算机程序代码,例如,以任何合适的编程语言编写的编译型或解释型计算机程序。存储器或数据存储实体通常在内部,但是也可以在外部或它们的组合,诸如在从服务提供者获得附加存储器容量的情况下。存储器可以是固定的或可移除的。

存储器和计算机程序指令可以被配置为,与用于特定设备的处理器一起,使得硬件装置(诸如平台设备2010和/或测试代理设备2020)执行上面描述的相应过程中的任何过程(参见,例如,图1-图18、图19a和图19b)。因此,在某些实施例中,非暂态计算机可读介质可以被编码有计算机指令或一个或多个计算机程序(诸如添加的或更新的软件例程、小应用或宏指令),其当在硬件中执行时可以执行过程,诸如本文描述的过程之一。计算机程序可以通过编程语言被编码,编程语言可以是高级编程语言(诸如objective-c、c、c++、c#、java等)、或者低级编程语言(诸如机器语言或汇编程序)。替换地,某些实施例可以完全在硬件中执行。

上述实施例允许对云基础设施中的电信软件应用的测试。该测试可以用来在完全自动化和系统化的功能中,代表云应用(诸如虚拟网络功能)来验证底层云基础设施。上述实施例还可以跨被测试的云中的许多计算节点来部署具有测试和监测代理的分布式架构。这些代理可以近似于真实世界中部署的云应用的行为,并且可以测试底层计算能力、网络能力和存储能力的关键属性。

贯穿本说明书描述的某些实施例的特征、结构或特性可以在一个或多个实施例中以任何合适的方式被组合。例如,贯穿本说明书对短语“某些实施例”、“一些实施例”、“其他实施例”、或其他类似语言的使用是指如下的事实:关于该实施例描述的特定特征、结构或特性可以被包括在本发明的至少一个实施例中。因此,贯穿本说明书出现短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”、或其他类似语言不一定是指相同的实施例组,并且所描述的特征、结构或特性在一个或多个实施例中可以按任何合适的方式被组合。

本领域的普通技术人员将容易理解,如上面讨论的本发明可以利用不同顺序的步骤来实践、和/或利用与所公开的那些配置不同的配置中的硬件元件来实践。因此,尽管本发明已经基于这些优选实施例被描述,但是对本领域的技术人员明显的是,某些修改、变化和替代构造将是明显的,同时保持在本发明的精神和范围内。

部分词汇表

ran无线电接入网络

ip互联网协议

tcp传输控制协议

udp用户数据报协议

sctp流控制传输协议

kpi关键性能指示符

cscf呼叫会话控制功能

imsip多媒体系统

rest表示性状态转移

api应用程序接口

ui用户界面

hbeat心跳

vnf虚拟化网络功能

vpn虚拟私人网络

jsonjavascript对象表示法

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1