网络异常测试方法及装置、计算机设备及可读介质与流程

文档序号:17158259发布日期:2019-03-20 00:17阅读:156来源:国知局
网络异常测试方法及装置、计算机设备及可读介质与流程

本发明涉及计算机应用技术领域,尤其涉及一种网络异常测试方法及装置、计算机设备及可读介质。



背景技术:

随着互联网科技的发展,各种互联网产品的兴起,大大地方便了人们的生活。

常规的互联网产品一般分为客户端和服务端,服务端的质量保证工作中,除常规功能、性能等测试手段外,网络异常测试也是重要的质量保证手段。网络异常测试是指在测试过程中,人为模拟网络异常场景,实现网络异常的测试。现有的网络异常测试普遍通过修改业务代码或者关闭外部服务等方式来实现。

但是,现有的通过修改业务代码或者关闭外部服务等方式来实现网络异常的测试,仅仅能模拟服务关闭的场景,而对于网络拥塞、网络丢包、数据包重复、连接超时等常见的网络异常场景均无法模拟,从而无法实现网络异常测试。因此现有的网络异常测试方案的局限性较大,灵活性较差。



技术实现要素:

本发明提供一种网络异常测试方法及装置、计算机设备及可读介质,用于丰富现有的网络异常测试方案的灵活性。

本发明提供一种网络异常测试方法,所述方法包括:

根据待测试服务模块相关的物理信息以及待测试的异常类型,生成测试用的配置文档;

加载所述配置文档;

根据所述配置文档对所述待测试服务模块进行异常模拟测试,使得所述待测试服务模块的网络异常环境生成,以进行网络异常测试。

进一步可选地,如上所述的方法中,根据待测试服务模块相关的物理信息以及待测试的异常类型,生成测试用的配置文档,具体包括:

根据待测试服务模块的下游服务模块的ip信息、端口信息以及所述待测试的异常类型,生成测试用的所述配置文档。

进一步可选地,如上所述的方法中,根据待测试服务模块相关的物理信息以及待测试的异常类型,生成测试用的配置文档之后,所述方法还包括:

在所述配置文档中配置所述异常类型对应的异常参数。

进一步可选地,如上所述的方法中,根据所述配置文档对所述待测试服务模块进行异常模拟测试,具体包括:

根据所述配置文档中的所述下游服务模块的所述ip信息和所述端口信息,在所述待测试服务模块的目标网卡上建立与所述下游服务模块通信的所述异常类型的通信队列;

对于所述异常类型的网络场景,根据所述配置文档中的所述异常参数,对所述待测试服务模块的所述目标网卡发送至所述下游服务模块的数据进行异常模拟处理,使得进入对应的所述通信队列中数据具有与场景相同的所述异常类型;

采集所述待测试服务模块在所述异常类型的网络场景下的响应,完成对所述待测试服务模块的网络异常测试。

进一步可选地,如上所述的方法中,根据所述配置文档对所述待测试服务模块进行异常模拟测试,使得所述待测试服务模块的网络异常环境生成,采用linux平台的trafficcontrol内核模块来实现。

进一步可选地,如上所述的方法中,所述异常类型包括丢包、拥塞、重复或者超时。

本发明提供一种网络异常测试装置,所述装置包括:

生成模块,用于根据待测试服务模块相关的物理信息以及待测试的异常类型,生成测试用的配置文档;

加载模块,用于加载所述配置文档;

异常测试模块,用于根据所述配置文档对所述待测试服务模块进行异常模拟测试,使得所述待测试服务模块的网络异常环境生成,以进行网络异常测试。

进一步可选地,如上所述的装置中,所述生成模块,用于:

根据待测试服务模块的下游服务模块的ip信息、端口信息以及所述待测试的异常类型,生成测试用的所述配置文档。

进一步可选地,如上所述的装置中,所述生成模块,还用于在所述配置文档中配置所述异常类型对应的异常参数。

进一步可选地,如上所述的装置中,所述异常测试模块,用于:

根据所述配置文档中的所述下游服务模块的所述ip信息和所述端口信息,在所述待测试服务模块的目标网卡上建立与所述下游服务模块通信的所述异常类型的通信队列;

对于所述异常类型的网络场景,根据所述配置文档中的所述异常参数,对所述待测试服务模块的所述目标网卡发送至所述下游服务模块的数据进行异常模拟处理,使得进入对应的所述通信队列中数据具有与场景相同的所述异常类型;

采集所述待测试服务模块在所述异常类型的网络场景下的响应,完成对所述待测试服务模块的网络异常测试。

进一步可选地,如上所述的装置中,所述异常测试模块采用linux平台的trafficcontrol内核模块来实现。

进一步可选地,如上所述的装置中,所述异常类型包括丢包、拥塞、重复或者超时。

本发明还提供一种计算设备,包括:

处理器;以及

存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上任何一所述的方法。

本发明还提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上任一所述的方法。

本发明的网络异常测试方法及装置、计算机设备及可读介质,通过根据待测试服务模块相关的物理信息以及待测试的异常类型,生成测试用的配置文档;加载配置文档;根据配置文档对待测试服务模块进行异常模拟测试,使得待测试服务模块的网络异常环境生成,以进行网络异常测试,可以在不修改业务代码或者关闭外部服务的同时,进行网络异常测试,从而可以在保持业务逻辑的独立性的前提下,进行网络异常测试,网络异常测试的灵活性非常高;而且可以测试各种异常类型,实用性非常强。且本发明的技术方案,可以对下游服务支持ip+port维度的任意类型的网络异常模拟,实现对服务的个性化异常模拟测试,满足各种测试场景的需求。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。

图1为本发明的网络异常测试方法实施例的流程图。

图2为本发明实施例提供的一种测试实例的架构图。

图3为本发明的网络异常测试装置实施例的结构图。

图4示出了根据本发明一实施例可用于实现上述网络异常测试方法的计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

图1为本发明的网络异常测试方法实施例的流程图。如图1所示,本实施例的网络异常测试方法,具体可以包括如下步骤:

s100、根据待测试服务模块相关的物理信息以及待测试的异常类型,生成测试用的配置文档;

本实施例的网络异常测试方法的执行主体为网络异常测试装置,该网络异常测试装置具体为一个网络异常模拟装置,能够模拟网络异常场景,实现对不同异常类型场景的模拟,从而实现服务模块在异常类型场景中的测试,而不用通过修改代码或者关闭外部服务实现对异常类型的网络场景的测试,异常类型的网络场景测试非常灵活、方便。

本实施例的网络异常测试,是对待测试服务模块的下游服务的网络异常的模拟测试。在异常测试中,首先需要待测试服务模块相关的物理信息以及待测试的异常类型配置测试所用的配置文档。例如,本实施例的待测试服务模块相关的物理信息具体可以指的是待测试服务模块的下游服务模块的ip(地址)信息和端口(port)信息,在通信中,ip信息+port信息可以唯一标识与待测试服务模块通信的下游服务模块。本实施例的待测试的异常类型可以包括丢包、拥塞、重复或者超时等等。也就是说,本实施例的网络异常模拟,用于在待测试服务模块侧模拟对ip地址+port所标识的下游服务模块进行网络异常模拟,以测试待测试服务模块在各种异常网络场景下的响应。本实施例中,首先,需要根据待测试服务模块的ip信息+port信息以及待测试的异常类型,生成测试用的配置文档。进一步可选地,对于某些异常类型,为了更加准确地测试各种异常类型的网络场景,本实施例中,还可以在配置文档中配置异常类型对应的异常参数,本实施例的异常参数可以为对应异常类型下的异常程度。例如,如果异常类型为丢包时,对应的异常参数可以为丢包率的大小,如20%的丢包率。如果异常类型为超时时,对应的异常类型可以为超时的时间,等等。

例如,如下为本实施例的几种配置文档:

在上述配置文档中,模拟对应的异常场景中,第三列中d代表超时(delay)异常,l代表丢包(loss)异常,du代表重复(duplicate)异常。如上的3个配置分别表示:针对ip为11.251.208.140,port为5560的服务设置延迟200ms;针对ip为11.251.208.140,port为3306d的服务设置20%的丢包率;针对ip为11.251.208.140,port为3408的服务设置20%的重复率。按照上述方式,可以配置各种异常类型的配置文档。

本实施例的配置文档可以由测试人员根据测试需求在网络异常模拟装置中自动生成。

s101、加载配置文档;

s102、根据配置文档对待测试服务模块进行异常模拟测试,使得待测试服务模块的网络异常环境生成,以进行网络异常测试。

本实施例的网络异常模拟装置生成配置文档后,加载配置文档,并根据配置文档对待测试服务模块进行异常模拟测试,可以模拟待测试服务模块的配置文档中异常类型对应的异常环境,从而实现网络异常测试。

例如,本实施例中,在异常模拟测试时,可以对待测试服务模块的目标网卡进行控制,以模拟拥塞、丢包、重复以及超时等网络异常环境。

例如,该步骤s102“根据配置文档对待测试服务模块进行异常模拟测试,使得待测试服务模块的网络异常环境生成,以进行网络异常测试”,具体可以包括如下步骤:

(a)根据配置文档中的下游服务模块的ip信息和port信息,在待测试服务模块的目标网卡上建立与下游服务模块通信的异常类型的通信队列;

(b)对于异常类型的网络场景,根据配置文档中的异常参数,对待测试服务模块的目标网卡发送至下游服务模块的数据进行异常模拟处理,使得进入对应的通信队列中数据具有与场景相同的异常类型;

(c)采集待测试服务模块在异常类型的网络场景下的响应,完成对待测试服务模块的网络异常测试。

本实施例中,可以由linux的内核trafficcontrol模块来执行,例如由linux的内核trafficcontrol模块,在待测试服务模块的目标网卡上建立与下游服务模块通信的通信队列。具体地,建立的通信队列的数量与要测试的异常类型的数量一致。并将每一种异常类型的场景与对应的通信队列绑定,使得后续进入通信队列中的数据具有相同的异常类型。

异常模拟处理时,对于每一种异常类型的网络场景,根据配置文档中的异常参数,对待测试服务模块的目标网卡发送至下游服务模块的数据进行异常模拟处理,使得进入对应的通信队列中数据具有与场景相同的异常类型。对应地,在下游服务模块侧,通过异常类型对应的通信队列接收到待测试服务模块发送的数据便为网络异常数据,从而可以测试待测试服务模块在网络异常环境下的响应,完成对待测试服务模块的网络异常测试。

本实施例中,在异常模拟测试时,还需要采集待测试服务模块在异常类型的网络场景下的响应,才可以完成对待测试服务模块的网络异常测试。本实施例的采集待测试服务模块在异常类型的网络场景下的响应,包括下游服务模块在接收到模拟的待测试模块的网络异常数据后,所作出的反馈响应。基于这些反馈响应,可以得知待测试服务模块在发生网络异常时的处理能力,从而完成待测试服务模块的网络异常测试。

本实施例的网络异常测试方法,可以与现行的自动化测试流程绑定,在自动化测试流程执行的前置hook中,首先加载本实施例的上述网络异常测试,后续还可以再进行常规测试。

本实施例的网络异常测试方法,可以测试任意的待测试服务模块。无论待测试服务模块与下游服务模块之间的服务是基于传输控制协议(transmissioncontrolprotocol;tcp),还是用户数据报协议(userdatagramprotocol;udp),都可以采用本实施例的网络异常测试方法来模拟测试。

本实施例的网络异常测试方法,通过根据待测试服务模块相关的物理信息以及待测试的异常类型,生成测试用的配置文档;加载配置文档;根据配置文档对待测试服务模块进行异常模拟测试,使得待测试服务模块的网络异常环境生成,以进行网络异常测试,可以在不修改业务代码或者关闭外部服务的同时,进行网络异常测试,从而可以在保持业务逻辑的独立性的前提下,进行网络异常测试,网络异常测试的灵活性非常高;而且可以测试各种异常类型,实用性非常强。且本实施例的技术方案,可以对下游服务支持ip+port维度的任意类型的网络异常模拟,实现对服务的个性化异常模拟测试,满足各种测试场景的需求。

图2为本发明实施例提供的一种测试实例的架构图。如图2所示,本实施例中,以待测试服务模块a和下游服务模块b为例,采用本实施例的网络异常测试方法,对待测试服务模块a进行网络异常测试。

例如,本实施例中,以下游服务模块b为待测试服务模块a的下游服务模块,在测试时,需要得知下游服务模块b的ip+port,然后在根据要测试的网络异常类型,必要时可以结合异常参数,一起实现配置文档的生成。

例如,按照上述方式,若要测试延时100ms,本实施例的网络异常测试装置可以配置网络异常延时100ms对应的配置文档。

在模拟网络异常延时100ms的测试时,本实施例的网络异常测试装置首先加载配置好的配置文档,然后可以由linux的内核trafficcontrol模块在待测试服务模块a的服务器网卡上以ip+port的维度模拟网络异常延时场景,实现网络异常延时的测试。

例如,首先可以由linux的内核trafficcontrol模块在待测试服务模块a的服务器网卡上建立异常延时对应的通信队列。然后在待测试服务模块a向下游服务模块b发送请求时,网络异常测试装置获取该请求数据,并按照配置文档对请求数据进行异常模拟处理,使得处理后的请求数据延时100ms,以模拟网络异常延时100ms,并将异常模拟处理后的请求数据加入通信队列中,从而使得进入通信队列中的请求数据具有了异常延时100ms的因素。这样,在下游服务模块b侧,通过通信队列接收到待测试服务模块a发送的请求数据,便已经具有网络异常延时100ms,这样,便实现了网络的异常模拟。此时可以在待测试服务模块a向下游服务模块b发送请求数据时发生网络异常延时100ms后,采集待测试服务模块a的响应,以及下游服务模块b对a的响应,从而可以测试待测试服务模块a在网络异常延时100ms的处理能力。

图3为本发明的网络异常测试装置实施例的结构图。如图3所示,本实施例的网络异常测试装置,具体可以包括:

生成模块10用于根据待测试服务模块相关的物理信息以及待测试的异常类型,生成测试用的配置文档;

加载模块11用于加载生成模块10生成的配置文档;

异常测试模块12用于根据加载模块11加载的配置文档对待测试服务模块进行异常模拟测试,使得待测试服务模块的网络异常环境生成,以进行网络异常测试。

本实施例的网络异常测试装置,通过采用上述模块实现网络异常的模拟测试,与上述相关方法实施例的实现原理相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。

进一步可选地,本实施例的网络异常测试装置中,生成模块10具体用于:

根据待测试服务模块的下游服务模块的ip信息、端口信息以及待测试的异常类型,生成测试用的配置文档。

进一步可选地,本实施例的网络异常测试装置中,生成模块10还用于在配置文档中配置异常类型对应的异常参数。

进一步可选地,本实施例的网络异常测试装置中,异常测试模块12用于:

根据加载模块11加载的配置文档中的下游服务模块的ip信息和端口信息,在待测试服务模块的目标网卡上建立与下游服务模块通信的异常类型的通信队列;

对于异常类型的网络场景,根据配置文档中的异常参数,对待测试服务模块的目标网卡发送至下游服务模块的数据进行异常模拟处理,使得进入对应的通信队列中数据具有与场景相同的异常类型;

采集待测试服务模块在异常类型的网络场景下的响应,完成对待测试服务模块的网络异常测试。

进一步可选地,本实施例的网络异常测试装置中,异常测试模块采用linux平台的trafficcontrol内核模块来实现。

进一步可选地,本实施例的网络异常测试装置中,异常类型包括丢包、拥塞、重复或者超时。

上述实施例的网络异常测试装置,通过采用上述模块实现网络异常的模拟测试,与上述相关方法实施例的实现原理相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。

图4示出了根据本发明一实施例可用于实现上述网络异常测试方法的计算设备的结构示意图。

参见图4,计算设备1000包括存储器1010和处理器1020。

处理器1020可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1020可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(gpu)、数字信号处理器(dsp)等等。在一些实施例中,处理器1020可以使用定制的电路实现,例如特定用途集成电路(asic,applicationspecificintegratedcircuit)或者现场可编程逻辑门阵列(fpga,fieldprogrammablegatearrays)。

存储器1010可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器1020或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1010可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、minsd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。

存储器1010上存储有可执行代码,当可执行代码被处理器1020处理时,可以使处理器1020执行上文述及的网络异常测试方法。

上文中已经参考附图详细描述了根据本发明的网络异常测试方法。

此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。

或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当图8可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使图8处理器执行根据本发明的上述方法的各个步骤。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,图8模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

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