一种网络传输环境的模拟系统的制作方法

文档序号:7982515阅读:186来源:国知局
一种网络传输环境的模拟系统的制作方法
【专利摘要】本发明提供一种网络传输环境的模拟系统,该系统包括:接口单元、设置单元、真实传输单元和模拟传输单元;接口单元,用于根据所述设置单元的设置,调用所述真实传输单元或者所述模拟传输单元;所述设置单元,用于设置使用所述真实传输单元或者所述模拟传输单元,以及设置受限带宽和网络异常参数;所述真实传输单元,用于进行真实网络传输;所述模拟传输单元,用于根据所述受限带宽和网络异常参数,进行受限带宽模拟和网络错误模拟。通过本模拟系统可以模拟各种网络带宽、各种网络异常情况下应用程序的执行情况,以评估应用程序的逻辑严密性,得到系统的性能参数,并简化网络应用程序的测试,降低测试周期,提高网络应用程序的开发速度。
【专利说明】一种网络传输环境的模拟系统
【技术领域】
[0001]本发明涉及网络通信测试领域,具体涉及一种网络传输环境的模拟系统。
【背景技术】
[0002]如果网络终端需要在受限带宽下运行,以进行稳定性、系统表现等方面评估时,一般需要搭建真实网络环境,让网络终端运行于真实网络环境下。此种方法需要搭建复杂网络环境,花费高昂。为测试不同情况下的系统表现,需要改变网络设置甚至拓扑结构,环境搭建复杂且适用性较差。在测试系统网络异常处理逻辑是否完备时,需要制造物理网络错误,更是难以进行。

【发明内容】

[0003]本发明的目的在于,提供一种网络传输环境的模拟系统,能通过方便的设置,测试网络应用程序在带宽受限环境下的系统表现,且能方便地模拟各种网络异常,以测试网络应用程序的异常处理逻辑。
[0004]为达上述目的,本发明实施例提供了一种网络传输环境的模拟系统,所述系统包括:接口单元、设置单元、真实传输单元和模拟传输单元;
[0005]所述接口单元,用于根据所述设置单元的设置,调用所述真实传输单元或者所述模拟传输单兀;
[0006]所述设置单元,用于设置使用所述真实传输单元或者所述模拟传输单元,以及设置受限带宽和网络异常参数;
[0007]所述真实传输单元,用于进行真实网络传输;
[0008]所述模拟传输单元,用于根据所述受限带宽和网络异常参数,进行受限带宽模拟和网络错误模拟。
[0009]本发明的技术方案的有益效果在于,通过本模拟系统的实施,可以模拟各种低于真实测试环境网络带宽、各种网络异常情况下应用程序的执行情况,以评估应用程序的逻辑严密性,得到系统的性能参数等。还可以模拟出现各种网络异常情况,以测试系统的异常处理逻辑是否完备等。通过本模拟系统的实施,可以大大简化网络应用程序的测试,降低测试周期,提高网络应用程序的开发速度。
【专利附图】

【附图说明】
[0010]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0011]图1为本发明实施例的被测试的网络应用程序架构图;
[0012]图2为本发明实施例的网络传输环境的模拟系统结构示意图;[0013]图3为本发明实施例的模拟传输单元的具体功能框图。
【具体实施方式】
[0014]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0015]一个网络终端设备,由于所处的网络环境带宽受限,给终端上运行的网络软件系统呈现为网络数据传输能力受限。而由于实验室内难以搭建能反映真实应用场景的受限带宽网络环境,而让系统在受限带宽情况下测试较为困难且不全面。有鉴于此,本发明的目的在于,提供一种网络传输环境的模拟系统,能通过方便的设置,测试网络应用程序在带宽受限环境下的系统表现,且能方便的模拟各种网络异常,以测试上层网络业务应用程序的异常处理逻辑。
[0016]通过该网络传输环境的模拟系统的实施,可以测试一个接近真实情况的,模拟各种网络带宽、各种网络异常情况下应用程序的执行情况,以评估应用程序的逻辑严密性,得到系统的性能参数等。且对于物理网络没有什么要求,只需在实验室条件下,通过配置文件的配置,即可进行指定带宽环境下进行模拟测试。另外,也可以进行一些配置,模拟出现各种网络异常情况,以测试系统的异常处理逻辑是否完备等。通过本模拟系统的实施,可以大大简化网络应用程序的测试,降低测试周期,提高上层网络业务应用程序的开发速度。
[0017]本发明实施例的网络传输环境的模拟系统包括对于套接字API (ApplicationProgramming Interface,应用编程接口)的一层封装,对应用程序呈现有限的接口,并且通过C++基类进行抽象封装,利用基类指针可以指向派生类的语言特性,实现实际网络通讯处理逻辑和模拟网络通讯处理逻辑可进行无差别替换,方便模拟测试的同时,又不会引入因为模拟测试逻辑而需要增加或删除任意业务逻辑。
[0018]其中,模拟测试逻辑是指应用受限带宽的模拟系统,进行模拟具备真实应用功能逻辑的上层网络业务应用程序,在网络带宽受限、网络异常等情况下,进行程序功能的测试。业务逻辑是指上层网络业务应用程序本身业务功能逻辑,即利用本发明实施例的网络传输环境的模拟系统进行模拟测试的被测试对象逻辑。
[0019]图1为本发明实施例的被测试的网络应用程序架构图,基于这个架构图实现的应用程序,就能利用本发明的模拟系统进行测试。如图1所示,在操作系统之上,上层网络业务应用程序之下,对系统提供的网络操作API进行一层封装,实现一个网络套接字封装功能模块,利用此功能模块,一方面可以更好的实现跨操作系统,另一方面,可以通过此功能模块中的设置单元,进行网络行为模拟设置,通过模拟传输单元替换TCP/UDP传输单元(如图2所示),实现各种网络情况的灵活配置和模拟。
[0020]本发明实施例的网络传输环境的模拟系统,在图1所示的程序架构基础上,在网络套接字封装功能模块引入设置单元和模拟传输单元,支持通过设置单元进行灵活的设置,让模拟传输单元替代TCP/UDP传输单元(如图2所示)进行网络IO模拟,以实现作为上层网络业务应用程序系统开发过程中测试的一种手段,达到提高开发速度,保证程序质量的效果。[0021]图2为本发明实施例的受限带宽的模拟系统的结构示意图,如图2所示,该网络传输环境的模拟系统100 (网络套接字封装功能模块),包括如下功能单元:接口单元110、模拟测试设置单元(以下简称设置单元)120、真实传输单元(TCP/UDP传输单元)130和模拟传输单元140。
[0022]网络套接字封装功能模块通过接口单元110,给应用程序开发提供统一的接口,而且通过设置单元120,可以配置该网络传输环境的模拟系统是使用TCP/UDP传输单元130,还是模拟传输单元140,在设置使用模拟传输单元140时,还可以灵活设置模拟带宽、多种随机网络异常情况等。这样可以实现一个正常开发的系统,在测试阶段,通过设置单元120设置系统网络IO使用模拟传输单元140,模拟设置各种受限带宽、多种随机网络异常情况,以测试系统在网络带宽受限、各种网络异常情况下的性能(包括稳定性等),简化测试环境搭建,增大测试覆盖面,以达到提高被测试系统稳定性的效果。
[0023]接口单元110通过接口抽象,实现TCP和UDP两套接口,其内部调用TCP/UDP传输单元130或者模拟传输单元140。接口单元110默认调用TCP/UDP传输单元130,实现真实的网络I/O功能。用户可以通过设置单元120,触发接口单元110调用模拟传输单元140,以达到模拟测试应用系统的功能。且允许用户通过设置单元120,设置模拟测试运行的网络带宽,选择网络异常随机算法,以让模拟传输单元140模拟多种复杂网络情况。
[0024]其中,TCP/UDP传输单元130和模拟传输单元140是由设置单元120决具体使用哪个单元,TCP/UDP传输单元130和模拟传输单元140是不同时生效的。接口单元110调用模拟传输单元140,实现模拟网络I/O功能。设置单元120不直接调用模拟传输单元140,设置单元120仅完成是否模拟、模拟带宽、网络异常参数等参数设置。设置后的参数能影响到模拟传输单元140的行为逻辑。网络异常参数例如可以包括:1、网络异常模拟方式,模拟方式可以是通过返回值体现错误或关闭套接字制造错误等;2、网络异常产生概率或条件,SP设置网络异常的随机发生概率,或者设置在某个特定程序逻辑条件满足时发生网络异常。
[0025]该网络传输环境的模拟系统作为系统API和上层应用之间的中间层,对上层应用系统开发的是接口单元110,通过接口单元110的返回值体现上层应用调用的结果。而接口单元110具体执行逻辑是TCP/UDP传输单元130或者模拟传输单元140,则是由设置单元120决定。TCP/UDP传输单元130和模拟传输单元140都会调用到系统API,实现真实的网络I/O功能等。具体地,TCP/UDP传输单元130利用系统API,实现网络I/O功能;而模拟传输单元140则由于设置单元120的设置参数,对正常的网络I/O功能进行干预,比如限制数据收发速度达到受限带宽模拟,随机错误模拟网络错误等,但也是需要进行系统API的调用,在带宽未达到受限条件或未产生模拟错误时,进行真实的网络I/O功能。
[0026]在一个实施例中,用户可以通过配置文件,让设置单元120按配置文件的配置生效,实现设置功能。配置文件的内容可以包括:受限带宽值、随机异常算法选择等。若不配置或不存在配置文件,则系统按正常逻辑运行,即非模拟测试逻辑。
[0027]在一个实施例中,各种网络异常对于上层应用,表现为系统API调用失败,而通过封装,是给上层应用呈现为封装接口调用失败。如此可以通过随机算法,在各个封装接口内一定概率的返回失败,以测试上层应用逻辑对于失败返回的处理是否严谨。
[0028]图3为本发明实施例的模拟传输单元的具体功能框图。如图3所示:
[0029]在一个实施例中,该模拟传输单元140包括:TCP带宽受限模拟模块142,用于使得单位时间内的数据发送量或接收量不超过受限带宽的上限值。
[0030]在另一个实施例中,该模拟传输单元140包括:UDP带宽受限模拟模块144,用于当单位时间内的数据发送量或接收量超过受限带宽的上限值时,进行丢包处理。
[0031]在又一个实施例中,该模拟传输单元140包括:网络错误模拟模块146,用于根据网络异常随机算法,随机模拟网络错误,反馈给上层应用程序,或者关闭使用的I/o句柄以呈现为真实错误。
[0032]在又一个实施例中,该模拟传输单元140可以包括上述任意两个或三个模块的组
口 ο
[0033]上述TCP带宽受限模拟模块142、UDP带宽受限模拟模块144、网络错误模拟模块146的具体功能阐述如下:
[0034]模拟传输单元140中的模块,具体可以用于读取设置单元120的设置,模拟进行流量限制,以达到和带宽受限时一致的上层应用表现。
[0035]在实现TCP带宽受限模拟模块142时,对于TCP通讯而言,受限带宽的主要表现为数据发送能力较低,数据接收能力下降。其中,数据发送能力通过以I秒钟为统计周期,统计数据发送量,使得每一秒钟的数据发送量都小于等于设置的带宽上限值,以达到模拟受限带宽的数据发送能力。类似的,数据接收也以I秒钟为统计周期,通过修改上层调用接收时传入的接收缓冲区长度,来实现每一秒钟内从协议栈套接字缓冲获取的数据量不超过设置的带宽上限值。
[0036]在实现UDP带宽受限模拟模块144时,对于UDP通讯而言,则表现为网络带宽受限时出现丢包。数据发送时,若I秒钟内上层下发的待发送数据量大于设置的带宽上限,则主动丢包而不进行网络传输。对于数据接收而言,则是I秒钟内接收的数据量大于带宽上限时,进行丢包处理。丢包处理是指丢掉后面发送的数据包,如I秒允许发送IMB的数据量,若上层实际发送了 2MB,则丢掉后IMB数据。
[0037]网络错误模拟模块146,支持通过配置文件设置,通过接口返回值,随机模拟网络错误,呈现给上层网络业务应用程序。主要采用随机算法,在通讯的过程中,以一定的概率产生错误,通过接口返回值反馈给上层应用程序。也支持随机产生错误时,模拟传输单元关闭使用的I/o句柄,而让后续的I/O句柄操作失败,呈现为一种网络异常。
[0038]对上层软件系统,接口返回正确则没有异常,若返回错误,就表示存在异常,需要异常处理。即通过分层,上层不关心具体错误,只关心是否异常。
[0039]在一个实施例中,可以使用randomOAPI实现随机值,再对随机值进行一定范围内的求余,若余数等于0,则产生错误。如此可以通过调整求余范围实现概率调整。
[0040]在本发明实施例中,对于网络错误的模拟,是通过两种方式实现:1、接口单元的接口返回失败,对上层应用而言,认为网络异常了 ;2、模拟传输单元关闭套接字,而关闭套接字会带来真实的网络异常,最后还是通过接口单元的返回失败反馈给上层应用。
[0041]本发明实施例中:(1)分层的系统设计,统一对系统API进行封装,抽象接口单元,从而使架构清晰,可以降低维护成本等;(2)通过设置单元,方便的进行真实传输逻辑和模拟传输逻辑切换,且对于真实传输逻辑不形成任何有害影响;(3)利用模拟传输单元内部进行受限带宽模拟以及网络错误模拟,可方便测试、提高开发速度、测试异常处理流程而达到加强测试的效果。通过本发明实施例的上述模拟系统的开发,开发人员可以方便的进行网络程序在受限带宽情况下的功能、性能表现测试,提高程序开发速度,以及测试网络异常的处理流程,达到加强测试的效果。
[0042]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,或者二者的结合来实施。
[0043]以上实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。
【权利要求】
1.一种网络传输环境的模拟系统,其特征在于,所述系统包括:接口单元、设置单元、真实传输单兀和模拟传输单兀; 所述接口单元,用于根据所述设置单元的设置,调用所述真实传输单元或者所述模拟传输单兀; 所述设置单元,用于设置使用所述真实传输单元或者所述模拟传输单元,以及设置受限带宽和网络异常参数; 所述真实传输单元,用于进行真实网络传输; 所述模拟传输单元,用于根据所述受限带宽和网络异常参数,进行受限带宽模拟和网络错误模拟。
2.根据权利要求1所述的系统,其特征在于,所述接口单元包括TCP接口和UDP接口。
3.根据权利要求1所述的系统,其特征在于,所述模拟传输单元包括: TCP带宽受限模拟模块,用于使得单位时间内的数据发送量或接收量不超过受限带宽的上限值。
4.根据权利要求1所述的系统,其特征在于,所述模拟传输单元包括: UDP带宽受限模拟模块,用于当单位时间内的数据发送量或接收量超过受限带宽的上限值时,进行丢包处理。
5.根据权利要求1所述的系统,其特征在于,所述模拟传输单元包括: 网络错误模拟模块,用于根据网络异常随机算法,随机模拟网络错误,反馈给上层网络业务应用程序,或者关闭使用的I/o句柄以呈现为真实错误。
6.根据权利要求1所述的系统,其特征在于,所述真实传输单元包括TCP/UDP传输单J Li ο
7.根据权利要求1所述的系统,其特征在于,所述受限带宽的模拟系统构成于操作系统之上、上层网络业务应用程序之下,为网络套接字封装功能模块。
【文档编号】H04L29/08GK103634137SQ201210308142
【公开日】2014年3月12日 申请日期:2012年8月27日 优先权日:2012年8月27日
【发明者】何林强, 周明伟, 张兴明, 傅利泉, 朱江明, 吴军, 吴坚 申请人:浙江大华技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1