发明内容
本申请实施例的目的在于提供一种无连接服务的性能测试方法、装置及系统,通过功能测试平台,实现流量的倍增和倍减,从而达到性能测试目的,快速、高效且低成本,解决了现有方法成本高、周期长、使用场景局限性和稳定性差的问题。
本申请实施例提供了一种无连接服务的性能测试方法,应用于流量调节服务器,所述方法包括:
接收并解析业务报文,以确定所述业务报文的来源;
若所述业务报文来自功能测试平台,则判断所述业务报文的源IP地址,以确定是否倍增流量并转发至被测设备;
若所述业务报文来自被测设备,则判断所述业务报文的目的IP地址,以确定是否倍减流量并转发至对应的功能测试平台。
在上述实现过程中,借助于功能测试平台如当前功能自动化平台或实际终端应用程序实现的协议栈和业务流构造能力,能够快速实现协议连接,大大降低工具实现的复杂度,快速、低成本的实现性能测试,且稳定性强,此外,所需硬件资源简单,利用闲置服务节点即可实现,对比购买仪表,成本大大降低。
进一步地,所述判断所述业务报文的源IP地址,以确定是否倍增流量并转发至被测设备,包括:
若所述业务报文来自功能测试平台,则查找倍变规则表,当所述源IP地址为所述功能测试平台的原始IP地址时,倍增所述业务报文并发送至被测设备。
在上述实现过程中,将发送至被测设备的业务报文进行流量倍增处理,从而可测试被测设备对倍增流量的处理能力,实现性能测试。
进一步地,所述倍增所述业务报文并发送至被测设备,包括:
复制所述业务报文,并修改所述业务报文的源IP地址和总和校验码,以将修改后的所述业务报文发送给所述被测设备。
在上述实现过程中,通过复制业务报文进行流量倍增,从而实现流量调节功能,从而可根据流量转发结果实现性能测试。
进一步地,所述判断所述业务报文的目的IP地址,以确定是否倍减流量并转发至对应的功能测试平台,包括:
若所述业务报文来自被测设备,则查找倍变规则表,当所述目的IP地址为所述功能测试平台的原始IP地址时,转发所述业务报文至对应的功能测试平台,如果是测试用报文,则丢弃所述测试用报文。
在上述实现过程中,如果业务报文来自被测设备,将业务报文发送至功能测试平台,表示已接收到被测设备发送的业务报文,可体现被测设备的性能,如果是测试用报文则,则丢弃该报文,实现倍减功能。
进一步地,所述判断所述业务报文的目的IP地址,以确定是否倍减流量并转发至对应的功能测试平台,包括:
若所述业务报文来自被测设备,则查找倍变规则表,当所述目的IP地址不是所述功能测试平台的原始IP地址时,丢弃所述业务报文并在倍变记录表中记录已接收到所述业务报文。
在上述实现中,通过倍变记录表的记录结果,可检测被测设备的性能。
进一步地,所述方法还包括设置倍变规则表,所述倍变规则表包括终止模式、透明模式和反向模式:
接收配置的倍变报文的源IP地址网段至所述终止模式,所述终止模式为业务报文的接收者为被测设备,被测设备将返回应答报文至客户端;
接收配置的客户端和服务端的原始IP地址、倍变地址网段至所述透明模式,所述透明模式为业务报文的接收者为服务端,被测设备将转发业务报文至所述服务端,且所述业务报文的源目的IP地址不变;
接收配置的客户端和服务端的原始IP地址、倍变地址网段和被测设备的地址至所述反向模式,所述反向模式为业务报文的接收者为服务端,被测设备将转发处理后的业务报文至所述服务端,所述业务报文的源目的IP地址发生改变。
在上述实现过程中,通过设置不同场景模式下的倍变规则,从而适应不同业务场景的性能测试需求。
本申请实施例还提供一种无连接服务的性能测试装置,所述装置包括:
来源判定模块,用于接收并解析业务报文,以确定所述业务报文的来源;
倍增模块,用于若所述业务报文来自功能测试平台,则判断所述业务报文的源IP地址,以确定是否倍增流量并转发至被测设备;
倍减模块,用于若所述业务报文来自被测设备,则判断所述业务报文的目的IP地址,以确定是否倍减流量并转发至对应的功能测试平台。
在上述实现过程中,借助于当前功能自动化平台或实际终端应用程序实现的协议栈和业务流构造能力,能够快速实现协议连接,大大降低工具实现的复杂度,快速、低成本的实现性能测试,且稳定性强,此外,所需硬件资源简单,利用闲置服务节点即可实现,对比购买仪表,成本大大降低。
本申请实施例还提供一种性能测试系统,包括流量调节服务器、功能测试平台和被测设备,所述功能测试平台包括DNS客户端、DNS服务器和被测设备,所述被测设备为DNS代理:
所述流量调节服务器,用于接收所述DNS客户端发送DNS查询请求,并进行流量倍增,并将倍增后的流量发送至所述被测设备,以及,接收所述被测设备返回的处理后的流量,并对接收到的流量进行倍减后转发至所述DNS服务端;
所述流量调节服务器还用于,接收DNS服务端回复的DNS应答消息,并进行流量倍增,并将倍增后的流量发送至所述被测设备,以及,接收被测设备返回的处理后的流量,并对接收到的流量进行倍减后转发至所述DNS客户端。
在上述实现过程中,实现了DNS代理测试,NGTOS平台实现了四层UDP代理业务,支持透传代理和反向代理需要完成的功能和性能测试,可发挥功能功能测试平台的协议丰富度、场景完备度,实现更加全面的性能测试。
本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行上述中任一项所述的无连接服务的性能测试方法。
本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的无连接服务的性能测试方法。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例1
请参看图1,图1为本申请实施例提供的一种无连接服务的性能测试方法的流程图。作为其中一种实施方式,该方法适用于所有基于UDP传输的业务协议的性能测试,可以是到设备终止的业务如终止模式,也可以是穿越设备的代理业务如透明模式,因此适用于终止模式、反向模式和透明模式。该方法具体包括以下步骤:
步骤S100:接收并解析业务报文,以确定所述业务报文的来源;
步骤S200:若所述业务报文来自功能测试平台,则判断所述业务报文的源IP地址,以确定是否倍增流量并转发至被测设备;
若所述业务报文来自功能测试平台,则查找倍变规则表,当所述源IP地址为所述功能测试平台的原始IP地址时,倍增所述业务报文并发送至被测设备。
功能测试平台可以是自动化平台的客户端Client/服务端Server或真实的业务Client/Server程序。
具体地,如图2所示,为判断过程流程图,获取业务报文的源MAC地址和源目的IP地址,根据源MAC地址判断报文来源,是来自被测设备还是来自功能测试平台,若来自功能测试平台(客户端Client/服务端Server),则进入倍增模块,根据业务报文的源IP地址查找倍变规则库(倍变规则表),匹配业务报文源IP地址是否为倍变规则表中的Client或Server的原始IP地址,若是,则按照倍变规则库倍增流量即复制报文,修改报文的源IP地址,修改checksum(总和校验码),把复制的后的批量报文发送给DUT(被测设备),若不是Client或Server的原始IP地址,则丢弃该业务报文。
步骤S300:若所述业务报文来自被测设备,则判断所述业务报文的目的IP地址,以确定是否倍减流量并转发至对应的功能测试平台。
若所述业务报文来自被测设备,则查找倍变规则表,当所述目的IP地址为所述功能测试平台的原始IP地址时,转发所述业务报文至对应的功能测试平台。
具体地,如果业务报文为来自DUT的流量报文,则进入倍减模块,根据该业务报文的目的IP地址查找倍变规则表,如果目的地址为Client或Server的原始IP地址,转发报文给相应的功能测试平台(Client或Server)。如果目的地址不是来自Client或Server的原始IP地址,说明是测试用报文(复制后的报文),则丢弃报文,以实现流量的倍减,并在倍变记录表中记录已接收到此报文。
其中,对于倍变记录表,如图3所示,为倍变记录表示意图。倍变记录表用于统计在此IP地址发生倍增和倍减的报文数目,在没有丢包的情况下,测试结束后两者应该相等。
对于倍变规则表的设置,倍变规则表包括终止模式、透明模式和反向模式,如图4所示,为倍变规则表的示意图。
其中,如图5所示,为终止模式示意图。图中的设备即为被测设备,在该业务场景下,业务的目的端即为被测设备,业务报文的接收者为DUT,DUT处理完成后返回应答报文给Client端。倍变规则表中配置倍变报文使用的源IP地址网段。
如图6所示,为透明模式示意图。在该业务场景下,业务的目的端为Server端,但被测设备只是作为中间代理来中转业务,并不进行网络的拓扑隐藏。业务报文的接收者为Server端,DUT处理完报文后转发给Server端,业务报文的源目的IP地址不变。倍变规则表中配置倍变报文使用的Client端和Server端的原始IP地址、倍变地址网段。
如图7所示,为反向模式示意图。在该业务场景下,业务的目的端即为被测设备,被测设备为中间业务代理设备,负责隔离内部网络和外部网络,对Client端隐藏内部Server端的网络拓扑。业务报文的接收者为Server,DUT处理完报文后转发给Server端,报文的源目的IP地址均发生了变化。倍变规则表中配置倍变报文使用的Client端和Server端的原始IP地址、倍变地址网段,以及DUT端的地址。
本申请实施例还提供一种无连接服务的性能测试装置,如图8所示,为无连接服务的性能测试装置的结构框图,该装置应用于流量调节服务器,所述装置包括:
来源判定模块100,用于接收并解析业务报文,以确定所述业务报文的来源;
倍增模块200,用于若所述业务报文来自功能测试平台,则判断所述业务报文的源IP地址,以确定是否倍增流量并转发至被测设备;
倍减模块300,用于若所述业务报文来自被测设备,则判断所述业务报文的目的IP地址,以确定是否倍减流量并转发至对应的功能测试平台。
如图9所示,为流量调节服务器的结构框图,其中,报文收发模块:接收网络层转发过来的业务流量,把处理后的业务流量发送到网络层,系统再通过网络层发给对端设备。
功能测试平台包括功能测试Client端和功能测试Server端,因此,相应地,倍增模块包括Server端倍增模块和Client端倍增模块,倍减模块200包括Server端倍减模块和Client端倍减模块。
Client端倍增模块:对来自功能测试平台的Client端的业务报文实现倍增,把倍增后的流量发送给被测设备;
Client端倍减模块:对来自被测设备的发往Client端的流量实现倍减,把倍减后的流量发送给Client端;
Server端倍增模块:对来自功能测试平台的Server端的业务报文实现倍增,把倍增后的流量发送给被测设备;
Server端倍减模块:对来自被测设备的发往Server端的流量实现倍减,把倍减后的流量发送给Server端;
倍变规则表:记录通过webui配置下来的倍变规则。在收到初始的业务报文时,首先查询此表,然后按照表项内容实现流量的倍变。
倍变记录表:记录已经实现了倍变变化的报文统计信息,用于性能数据分析。
如图10所示,为流量处理结构示意图,功能测试时使用的自动化平台的Client端或真实的业务Client程序发起业务请求,业务请求首先被转发给流量调节服务节点的Client端流量倍增模块,实现流量的倍增,然后流量调节服务节点把倍增后的流量发送给被测设备DUT;
被测设备处理完的业务报文也都首先转发给流量调节服务节点,通过Client端流量倍减模块处理后把之前倍增后的流量恢复为一个服务器测的流量报文,然后再把此报文发送给自动化平台的Server端或真实的Server;
同理,Server端的应答报文也是首先由流量调节服务节点的Server端倍增模块进行倍增后发送给被测设备,被测设备处理完后再转发给流量调节服务节点,由其Server端倍减模块进行流量倍减,恢复为一个应答报文转发给Client端,至此,完成了一次业务交互。后续的每次业务交互都是经历如此的业务倍增倍减过程,从而完成整体的性能测试。
终止、透传、反向三种业务使用场景中实现了流量的倍增倍减能力,记录流量转发结果,完成性能测试。该方法制定了一套流量倍增倍减的调节策略,实现了流量调节功能,并部署在功能自动化测试的组网中,实现了功能测试流量到性能测试流量的转换,从而为无连接业务提供了一种实现快速、部署简单、成本超低的性能测试方法。
该方法通过把被测设备部署在功能测试平台中实现流量的倍增和倍减,从而达到性能测试的目的。借助于当前功能自动化平台或实际终端应用程序实现的协议栈和业务流构造能力,能够快速实现协议快速,大大降低工具实现的复杂度,快速、低成本的实现性能测试,且稳定性强。并且所需硬件资源简单,利用闲置服务节点即可实现,对比购买仪表,成本大大降低。
实施例2
本申请实施例提供一种性能测试系统,包括实施例1中的流量调节服务器、功能测试平台和被测设备,所述功能测试平台包括DNS客户端、DNS服务器和被测设备,所述被测设备为DNS代理:
所述流量调节服务器,用于接收所述DNS客户端发送DNS查询请求,并进行流量倍增,并将倍增后的流量发送至所述被测设备,以及,接收所述被测设备返回的处理后的流量,并对接收到的流量进行倍减后转发至所述DNS服务端;
所述流量调节服务器还用于,接收DNS服务端回复的DNS应答消息,并进行流量倍增,并将倍增后的流量发送至所述被测设备,以及,接收被测设备返回的处理后的流量,并对接收到的流量进行倍减后转发至所述DNS客户端。
给出了DNS代理测试的使用场景,NGTOS平台实现了四层UDP代理业务,支持透传代理和反向代理,需要完成功能和性能测试,如图11所示,为该性能测试系统的结构框图。在此测试组网中,性能测试完全可以发挥功能测试平台的协议丰富度、场景完备度,实现更加全面的性能测试。
通过引入流量调节服务节点,借助于当前功能测试平台功能即可快速实现稳定的性能测试环境,大大降低了性能测试的成本投入,使得被测设备能够得到充分的性能测试验证,从而提升了产品质量,降低了网上故障率。
本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行实施例1所述的无连接服务的性能测试方法。
本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行实施例1所述的无连接服务的性能测试方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。