应用流量生成方法及装置制造方法

文档序号:6622199阅读:161来源:国知局
应用流量生成方法及装置制造方法
【专利摘要】本发明公开了一种应用流量生成方法,包括以下步骤:1)、确定被模拟的应用,提取应用流量生成需求,所述应用流量生成需求包括被模拟的应用和每种应用的不同操作在时间序列上的先后顺序;2)、对步骤1)得到的应用建立应用模版;3)、对步骤1)得到的应用流量的生成进行序列化描述;4)、根据步骤2)的所述应用模板和步骤3)得到的所述序列化描述,构建应用流量脚本;5)、使用流量引擎执行步骤4)的应用流量脚本,生成应用流量。本发明的应用流量生成方法应用范围广,针对大部分应用,都可自动生成其流量。方法实现简单、高效、可行性高,具有对不同应用的流量进行生成的能力,可扩展性良好,实用性强。
【专利说明】应用流量生成方法及装置

【技术领域】
[0001]本发明属于网络测试领域,具体涉及应用流量生成方法及装置。

【背景技术】
[0002]随着网络发展的深入,出现了越来越多的上层应用,如HTTP、DNS、P0P3等,应用测试是检查和验证应用系统功能和性能的重要手段。应用测试的核心是通过自动化的方式产生尽可能真实的应用流量数据,观察应用系统是否能够正确处理相应流量,从而判断其功能和性能指标。
[0003]目前的应用流量生成方法主要有:
[0004]I)应用流量回放。这种方法首先抓取网络的应用层数据,之后将这些数据按顺序进行回放,以生成测试所需的应用流量。这种方法生成的应用流量内容固定、格式单一,无法适应网络应用和场景的变化需求。
[0005]2)无状态应用流量生成:这类方法基于应用协议规范,自动化生成单个独立的包含应用数据的数据包。这种方法强调独立数据包中的应用数据,数据包之间的关联性不强,无法模拟完整的应用状态及用户行为特征。
[0006]3)真实物理机的应用流量生成:这类方法在网络中部署真实的物理机器,测试人员通过操作物理机器,产生与真实网络场景几近一致的应用流量。但这种方法存在人力、物力消耗大,部署周期长,缺乏灵活性等问题。
[0007]因此,需要一种新的应用流量生成方法以解决上述问题。


【发明内容】

[0008]本发明的目的是针对现有技术中应用流量生成方法的缺点,提供一种应用流量生成方法。
[0009]为实现上述发明目的,本发明应用流量生成方法可采用如下技术方案:
[0010]一种应用流量生成方法,包括以下步骤:
[0011]I)、确定被模拟的应用,提取应用流量生成需求,所述应用流量生成需求包括被模拟的应用和每种应用的不同操作在时间序列上的先后顺序;
[0012]2)、对步骤I)得到的应用建立应用模版;
[0013]3)、对步骤I)得到的应用流量的生成进行序列化描述;
[0014]4)、根据步骤2)的所述应用模板和步骤3)得到的所述序列化描述,构建应用流量脚本;
[0015]5)、使用流量引擎执行步骤4)的应用流量脚本,生成应用流量。
[0016]更进一步的,步骤2)中建立应用模版根据步骤I)中得到的被模拟的应用,对每种应用分别构建应用模版。
[0017]更进一步的,步骤2)中建立应用模板包括以下步骤:
[0018]一、提取应用元信息;
[0019]二、提取数据包类型,一种类型的数据包对应一种应用动作;
[0020]三、对应用字段进行分类,分为常变字段与非常变字段;
[0021]四、以应用动作为单位,保存所有应用动作与应用动作中所有字段信息,形成应用模板。
[0022]上述应用模版生成方法中,步骤一中,应用元信息指与应用有关,但不会出现在应用字段中的信息,如端口号信息。应当理解,根据定义,应用元信息并不限于上述端口号信息,可根据具体的应用来进行设置。应用元信息可以通过多种途径提取,例如人工读取相关RFC、构造自动机提取等,本发明并不局限于上述几种方式。步骤二中,应用动作的提取,可通过人工分类、机器学习等进行识别,本发明不限于其实现方式。步骤三中,对应用字段进行分类,同应用模版生成方法步骤一,可以使用多种方法对字段类型进行分类。分类的最终目的是将字段划为两类,常变字段与非常变字段。并进一步地,对非常变字段经常出现的内容进行提取。步骤四中,经过上述过程,形成应用模板。应用动作的提取与保存,保证了应用数据包种类的还原,这样生成的应用流量在应用数据包类型方面是真实完备的。应用字段信息的提取,保证每种类型应用数据包构造的灵活与完备,这样生成的应用流量在每种应用数据包所包含数据方面是真实完备的。应用模版的保存可以有多种方式,例如JSON数据格式、XML数据格式、二进制格式、数据库表格等。本发明不限于以上保存方式。应当理解,凡是符合以上特点的应用描述机制,均是本发明所涉及的应用模版。
[0023]更进一步的,步骤3)中所述序列化描述中具有应用状态与用户行为特征。加入应用状态与用户行为特征支持,使得应用流量具备一定的应用状态与用户行为特征,如用户偏好、习惯特征等。应用流量脚本由若干动作构成,可根据加入到序列化描述中的应用状态与用户行为特征来设置应用状态与用户行为动作。
[0024]更进一步的,步骤4)中所述应用流量脚本中的动作包括:应用流量动作;应用状态及用户行为动作;数据构造、解析和数据运算动作。
[0025]本发明还公开了一种应用流量生成装置,包括应用模版管理模块、应用流量序列化描述模块、应用流量脚本生成模块和流量弓I擎模块,
[0026]所述应用模版管理模块用于对应用模版进行存储和管理;
[0027]所述应用流量序列化描述模块用于对应用流量进行序列化描述;
[0028]所述应用流量脚本生成模块用于生成应用流量脚本;
[0029]所述流量引擎模块用于加载运行应用流量脚本,生成待模拟的应用流量。
[0030]更进一步的,还包括应用状态与用户行为特征支持模块,所述应用状态与用户行为特征支持模块用于对应用流量添加应用状态与用户行为特征的支持。
[0031]发明原理:在步骤I)中,应用流量生成需求可用于后续的应用模版构建、序列化描述构建与应用流量脚本构建。应用流量生成需求具体应该包含但不限于以下信息:被模拟的应用;每种应用的不同操作在时间序列上的先后顺序。
[0032]在步骤2)中,根据步骤I)中得到的被模拟的应用,对每种应用分别构建应用模版。应用模版是对应用信息的保存。通过应用模版可以进行应用数据的构造与应用流量的生成。
[0033]在步骤3)中,根据步骤I)中得到的被模拟的应用以及每种应用的不同操作在时间序列上的先后顺序,使用序列化描述方式实现对应用流量生成的刻画与模拟。具体地,根据应用的不同操作,实例化应用模版中对应的应用动作。并将此实例化后的应用动作作为应用流量刻画的基本单元,根据应用的不同操作在时间序列上的先后顺序调整各应用动作。上述对应用流量的描述方式即为序列化描述方式。
[0034]在步骤4)中,根据步骤3)中得到的序列化描述与步骤2)中得到的应用模板,构造应用流量脚本。应用流量脚本由若干动作构成,支持应用模板中的应用动作,支持应用状态与用户行为特征,支持构造任何格式的应用数据。应用流量脚本中的动作可以包括:应用流量动作;应用状态与用户行为动作;数据构造、解析、运算动作。其中,可根据序列化描述中的应用动作来设置应用流量动作;可根据应用动作中的字段信息涉及到的信息来设置数据构造、解析、运算动作。
[0035]在步骤5)中,所述流量引擎可以并发创建多进程或多线程执行步骤4)中得到的应用流量脚本,生成应用流量。
[0036]有益效果:本发明的应用流量生成方法应用范围广,针对大部分应用,都可自动生成其流量。方法实现简单、高效、可行性高,具有对不同应用的流量进行生成的能力,可扩展性良好,实用性强。

【专利附图】

【附图说明】
[0037]图1为本发明应用流量生成方法流程图;
[0038]图2为本发明应用流量生成方法实施例一中网络场景示意图;
[0039]图3为本发明应用流量生成方法实施例一中应用流量生成需求;
[0040]图4为本发明应用流量生成方法实施例一中应用流量生成的序列化描述;
[0041]图5为本发明应用流量生成方法实施例二中应用流量生成装置结构图;
[0042]图6为本发明应用流量生成方法实施例二中被模拟网络场景;
[0043]图7为本发明应用流量生成方法实施例二中又一被模拟网络场景。

【具体实施方式】
[0044]下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
[0045]请参阅图1、图2、图3、图4、图5、图6和图7所示,本发明的应用流量生成方法,包括以下步骤:
[0046]I)、确定被模拟的应用,提取应用流量生成需求,应用流量生成需求包括被模拟的应用和每种应用的不同操作在时间序列上的先后顺序;应用流量生成需求可用于后续的应用模版构建、序列化描述构建与应用流量脚本构建。应用流量生成需求具体应该包含但不限于以下信息:被模拟的应用;每种应用的不同操作在时间序列上的先后顺序。
[0047]2)、对步骤I)得到的应用建立应用模版;步骤2)中建立应用模版根据步骤I)中得到的被模拟的应用,对每种应用分别构建应用模版。
[0048]建立应用模板包括以下步骤:
[0049]一、提取应用元信息;
[0050]二、提取数据包类型,一种类型的数据包对应一种应用动作;
[0051]三、对应用字段进行分类,分为常变字段与非常变字段;
[0052]四、以应用动作为单位,保存所有应用动作与应用动作中所有字段信息,形成应用模板。
[0053]上述应用模版生成方法中,步骤一中,应用元信息指与应用有关,但不会出现在应用字段中的信息,如端口号信息。应当理解,根据定义,应用元信息并不限于上述端口号信息,可根据具体的应用来进行设置。应用元信息可以通过多种途径提取,例如人工读取相关RFC、构造自动机提取等,本发明并不局限于上述几种方式。步骤二中,应用动作的提取,可通过人工分类、机器学习等进行识别,本发明不限于其实现方式。步骤三中,对应用字段进行分类,同应用模版生成方法步骤一,可以使用多种方法对字段类型进行分类。分类的最终目的是将字段划为两类,常变字段与非常变字段。并进一步地,对非常变字段经常出现的内容进行提取。步骤四中,经过上述过程,形成应用模板。应用动作的提取与保存,保证了应用数据包种类的还原,这样生成的应用流量在应用数据包类型方面是真实完备的。应用字段信息的提取,保证每种类型应用数据包构造的灵活与完备,这样生成的应用流量在每种应用数据包所包含数据方面是真实完备的。应用模版的保存可以有多种方式,例如JSON数据格式、XML数据格式、二进制格式、数据库表格等。本发明不限于以上保存方式。应当理解,凡是符合以上特点的应用描述机制,均是本发明所涉及的应用模版。
[0054]3)、对步骤I)得到的应用流量的生成进行序列化描述;优选的,序列化描述中具有应用状态与用户行为特征。应用流量脚本由若干动作构成,可根据加入到序列化描述中的应用状态与用户行为特征来设置应用状态与用户行为动作。根据步骤I)中得到的被模拟的应用以及每种应用的不同操作在时间序列上的先后顺序,使用序列化描述方式实现对应用流量生成的刻画与模拟,并在其中加入应用状态与用户行为特征。具体地,根据应用的不同操作,实例化应用模版中对应的应用动作。并将此实例化后的应用动作作为应用流量刻画的基本单元,根据应用的不同操作在时间序列上的先后顺序调整各应用动作。上述对应用流量的描述方式即为序列化描述方式。在此基础上,加入应用状态与用户行为特征支持,使得应用流量具备一定的应用状态与用户行为特征,如用户偏好、习惯特征等。
[0055]4)、根据步骤2)的应用模板和步骤3)得到的序列化描述,构建应用流量脚本;应用流量脚本中的动作包括:应用流量动作;应用状态与用户行为动作;数据构造、数据解析和数据运算动作。根据步骤3)中得到的序列化描述与步骤2)中得到的应用模板,构造应用流量脚本。应用流量脚本由若干动作构成,支持应用模板中的应用动作,支持应用状态与用户行为特征,支持构造任何格式的应用数据。应用流量脚本中的动作可以包括:应用流量动作;应用状态与用户行为动作;数据构造、解析、运算动作。其中,可根据序列化描述中的应用动作来设置应用流量动作;可根据加入到序列化描述中的应用状态与用户行为特征来设置应用状态与用户行为动作;可根据应用动作中的字段信息、应用状态与用户行为特征涉及到的信息来设置数据构造、解析、运算动作。
[0056]5)、使用流量引擎执行步骤4)的应用流量脚本,生成应用流量。流量引擎可以并发创建多进程或多线程执行步骤4)中得到的应用流量脚本,生成应用流量。
[0057]本发明还公开了一种应用流量生成装置,包括应用模版管理模块、应用流量序列化描述模块、应用流量脚本生成模块和流量弓I擎模块,
[0058]应用模版管理模块用于对应用模版进行存储和管理;
[0059]应用流量序列化描述模块用于对应用流量进行序列化描述;
[0060]应用流量脚本生成模块用于生成应用流量脚本;
[0061]流量引擎模块用于加载运行应用流量脚本,生成待模拟的应用流量。
[0062]更进一步的,还包括应用状态与用户行为特征支持模块,应用状态与用户行为特征支持模块用于对应用流量添加应用状态与用户行为特征的支持。
[0063]发明原理:在步骤I)中,
[0064]在步骤2)中,根据步骤I)中得到的被模拟的应用,对每种应用分别构建应用模版。应用模版是对应用信息的保存。通过应用模版可以进行应用数据的构造与应用流量的生成。
[0065]在步骤3)中,根据步骤I)中得到的被模拟的应用以及每种应用的不同操作在时间序列上的先后顺序,使用序列化描述方式实现对应用流量生成的刻画与模拟。具体地,根据应用的不同操作,实例化应用模版中对应的应用动作。并将此实例化后的应用动作作为应用流量刻画的基本单元,根据应用的不同操作在时间序列上的先后顺序调整各应用动作。上述对应用流量的描述方式即为序列化描述方式。
[0066]本发明的应用流量生成方法应用范围广,针对大部分应用,都可自动生成其流量,并支持应用状态和用户行为特征。方法实现简单、高效、可行性高,具有对不同应用的流量进行生成的能力,可扩展性良好,实用性强。
[0067]实施例一
[0068]在本实施例中,提供了一种应用流量生成方法。概括来讲,该方法包括:
[0069]步骤I)、应用流量生成需求提取。确定被模拟应用,提取应用流量生成需求。
[0070]步骤2)、应用模板构建。对涉及的应用建立应用模版。
[0071]步骤3)、序列化描述构建。对应用流量的生成进行序列化描述,并加入应用状态与用户行为特征。
[0072]步骤4)、应用流量脚本构建。根据应用模板和序列化描述,构建应用流量脚本。
[0073]步骤5)、应用流量生成。使用流量引擎执行应用流量脚本,生成应用流量。具体参见图1。
[0074]根据实施例一,在步骤I)中,确定需要被模拟的应用,以及该应用的不同操作在时间序列上的先后顺序。这些信息可以以文本、列表、树形等形式进行存储。为了更好地说明实施例一步骤I)的过程,假设现有某网络场景中应用流量需被模拟,该网络场景具体参见图2。通过分析,该网络场景最常见的操作是浏览网站,所以被模拟的应用为HTTP。进一步地,通过对客户端行为的分析,得出其应用流量的生成需求,如图3。图3以顺序图的方式,将应用流量的生成需求保存、展示了出来,同时包含了用户的行为特征,如“用户接电话,停止操作10秒”。本发明并不限于此一种需求记录与展示方式。
[0075]根据实施例一,在步骤2)中,对涉及的应用建立应用模版。仍以上述的被模拟网络场景为例,根据实施例一步骤I)中的应用流量生成需求,可知需对HTTP建立应用模版。应用模版的建立过程首先需要读取HTTP的RFC文档,提取其应用元信息、应用动作。HTTP应用元信息具体为:端口 80。然后对HTTP的应用动作进行提取。具体地,HTTP包括两种常见类型的应用动作=HTTP Request和HTTP Reply0更进一步地,需要对应用字段进行分析。以 HTTP Request 为例,HTTP Request 中常见字段为:method、host、connect1n、accept、user-agent、type、body等。而其中根据上述对被模拟网络场景的分析,HTTP Request应用动作中的method、host两个字段经常发生变动,为常变字段;其他几个字段的内容基本固定,为非常变字段。实施例一采用如表I所示的方式对应用模版进行保存,其保存信息的媒介是Perl脚本。应当理解的是,对于本领域普通的技术人员来讲,在不付出创造性劳动性的前提下,根据实施例一的流程与表I中应用模版信息保存的方式,可获得其他应用的应用模版,以上均属本发明范畴。
[0076]表I
[0077]

【权利要求】
1.一种应用流量生成方法,其特征在于:包括以下步骤: I )、确定被模拟的应用,提取应用流量生成需求,所述应用流量生成需求包括被模拟的应用和每种应用的不同操作在时间序列上的先后顺序; 2)、对步骤I)得到的应用建立应用模版; 3)、对步骤I)得到的应用流量的生成进行序列化描述; 4)、根据步骤2)的所述应用模板和步骤3)得到的所述序列化描述,构建应用流量脚本; 5)、使用流量引擎执行步骤4)的应用流量脚本,生成应用流量。
2.权利要求1所述的应用流量生成方法,其特征在于:根据步骤I)中得到的被模拟的应用,对每种应用分别构建应用模版。
3.权利要求1所述的应用流量生成方法,其特征在于:步骤2)中建立应用模板包括以下步骤: 一、提取应用兀信息; 二、提取数据包类型,一种类型的数据包对应一种应用动作; 三、对应用字段进行分类,分为常变字段与非常变字段; 四、以应用动作为单位,保存所有应用动作与应用动作中所有字段信息,形成应用模板。
4.如权利要求1所述的应用流量生成方法,其特征在于:步骤3)中所述序列化描述中具有应用状态与用户行为特征。
5.权利要求1所述的应用流量生成方法,其特征在于:步骤3)中所述序列化描述包括以下步骤: (1)、根据应用的不同操作,实例化应用模版中对应的应用动作,并将其作为基本单元; (2)、根据得到的不同操作在时间序列上的先后顺序,调整实例化后的应用动作的顺序; (3)、加入应用状态与用户行为特征,得到完整的序列化描述。
6.权利要求1所述的应用流量生成方法,其特征在于:步骤4)中的应用流量脚本由应用流量动作;应用状态及用户行为动作;数据构造、解析和运算动作构成。
7.一种应用流量生成装置,其特征在于,包括应用模版管理模块、应用流量序列化描述模块、应用流量脚本生成模块和流量弓I擎模块, 所述应用模版管理模块用于对应用模版进行存储和管理; 所述应用流量序列化描述模块用于对应用流量进行序列化描述; 所述应用流量脚本生成模块用于生成应用流量脚本; 所述流量引擎模块用于加载运行应用流量脚本,生成待模拟的应用流量。
8.如权利要求7所述的应用流量生成装置,其特征在于,还包括应用状态与用户行为特征支持模块,所述应用状态与用户行为特征支持模块用于对应用流量添加应用状态与用户行为特征的支持。
【文档编号】G06F17/30GK104168155SQ201410375412
【公开日】2014年11月26日 申请日期:2014年7月31日 优先权日:2014年7月31日
【发明者】许智君, 王龙 申请人:南京赛拜诺信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1