APP下载

基于TCL的网络自动化测试系统设计

2011-08-07王卫东戎舟于慧霞

电子测试 2011年11期
关键词:测试环境端口流量

王卫东,戎舟,于慧霞

(南京邮电大学,210046)

0 引言

随着Internet的高速发展,IP网络将数据、话音、视频等传统业务与新业务融合[1]在一起,这些发展在深刻地影响和改变着人们生活的同时,也向网络建设者和管理者提出了许多新的挑战。网络业务的融合和通信平台的统一,使得网络数据业务的流量特征、性能特征、可靠性特征和安全性特征日益受到业界的关注。针对这些特征进行各类网络业务性能测试成为一种全新的技术与业务需求,同时这种需求又进一步延伸到对构成网络通信平台的设备所进行的功能与性能测试,以及在网络设备研发过程中的阶段性测试与整机测试。

面对如此庞大的网络测试任务,如果采用手工测试,在某些带有大量回归测试的情况下,难免会进行大量的重复劳动,从而降低了整个测试工作的效率。在此前提下,我们很有必要在传统的手动测试基础上进行自动化测试的开发[2],这也是网络测试的发展趋势。

1 网络测试方法学

网络自动化测试的基础在于网络测试的方法学。在实际的测试过程中,由于测试类型、测试参数的定义、测试包的大小、测试协议、测试时间、测试点的分布、测试点的数目、抽样算法、抽样频率甚至统计分析方法,都会对测试结果产生影响,因此测试方法的标准化至关重要。

目前,网络测试主要以基准方法学工作组BMWG(Benchmarking Methodology Working Group)的RFC文档(如RFC2889、2544[3]等)为依据,这些文档构成了整个网络测试的方法学。

在进行网络自动化测试之前,必须要围绕测试的目的、对象、执行者、时间、成本、方法进行认真的分析,如图1所示。

具体分析内容如下:

(a)为什么要进行测试?即明确测试目的;

(b)测试什么?即明确测试对象;

(c)测试人员的技术背景?测试执行者应该具备怎样的的技术条件?

(d)测试周期大概有多长时间?

(e)测试任务完成的成本如何?

(f)如何确定详细的测试方法?

在上述问题考虑周详后,制定出合理的测试计划,之后在运行测试时,主要过程包括:测试床搭建、测试环境配置、执行测试、测试结果记录及分析等几个阶段。

图1 测试方法制定及测试执行流程图

2 网络测试任务

网络测试以网络需求为导向,根据网络运营对设备的要求制订出相应的测试内容,因此对设备的测试定位在网络[4]。网络测试的任务就是根据需求配置特定的场景,测试当负载逐渐增加时,系统各项性能指标的变化情况,从而了解当前的网络在一定负载下的运行情况,并了解该网络何时出现“应用瓶颈”。

3 网络测试自动化的实现

3.1 测试方法的选择

IP网络测试的方法有主动测量和被动测量两种[5]。主动式测量是利用网络测试仪,针对要测试的网络选取合适的被测设备(DUT),发送测试数据包进行主动探测。被动式测量则是通过在现有的网络上加装一定的软硬件,被动地监测和记录网络流量及流向的情况。

基于网络测试的任务特征,为了对待测IP网络性能[6]进行全面综合的评估,我们在综合主动测量和被动测量各自优点的基础上,采用分布式IP网络测试架构[7]。

3.2 网络自动化测试平台的构建

该网络自动化测试系统的设计是基于Spirent Test Center 2000A开发一个模块化、可复用、易维护、易扩充的网络自动化测试平台。在测试的同时加载2~7层数据流量[8]和不同的路由协议及应用层协议流量[9],在统一的平台上对网络中的关键设备(如核心路由器,三层交换机)进行高集成度、全面的2~7层叠加测试;我们采用图2中的模型构建自动测试平台。

图2 自动化测试平台结构

在搭建的自动化测试平台中,借助Spirent的测试设备,构建一个分布式的测试环境,完成网络性能的自动化测试与分析,如图3所示。

图3 分布式自动化测试环境

测试自动化通过运行脚本(Script)的方式来控制测试仪表进行测试,和传统的通过仪表的图形界面控制方式不同,测试脚本通过直接调用测试仪表的接口函数达到绕过仪表的图形化界面而直接控制仪表的目的,这样使得测试更加灵活、可控性更强,可以完成一些只以图形界面为依托的测试软件所不能完成的测试。

3.3 测试脚本的编写

测试例脚本是实现网络测试自动化的关键,测试例脚本的编写质量直接决定自动化测试的质量,因此,在脚本的编写上我们采用灵活性较高的TCL语言[10](Tool Command Language)。

TCL是一种简单的解释性脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。TCL解释器通过与系统其它部分的交互完成对被测设备DUT(Device Under Test)的测试,最后将测试结果返回形成测试报告。

4 测试实验及测试例分析

在指定VLAN镜像功能测试中,其拓扑结构如图4所示,其中包括仪表和被测试设备。

根据拓扑结构搭建好测试环境,我们将被测交换机FE1,FE2端口设置为Trunk模式,加入VLAN100,VLAN200;测试仪表端口A向C发送数据流,VLAN100,VLAN200各50M,端口FE3作为镜像端口,镜像VLAN100的数据流量,最后根据测试仪表端口B的流量情况来测试VLAN镜像功能。在已经搭建好的测试平台中,将测试脚本在IDE中运行从而启动整个自动化测试流程。

图4 指定VLAN镜像功能测试拓扑

在测试例脚本执行中,大致包括3大模块:测试环境的配置、数据流量的配置以及测试结果的保存方式。其中,对API函数的调用是通过“package require SpirentTestCenter”来实现。

测试环境的配置模块中,要对端口进行配置修改其物理属性,如端口名、带宽、端口IP地址等,最后通过“stc::connect $ChassisIP”来实现与测试机框的连接。

数据流量的配置模块中,根据测试要求的流量属性进行配置,这是整个测试例的核心部分。以该测试套为例我们的流量配置部分代码如下:

另外,对测试套中要求的Vlan配置部分代码如下:

通过一系列的测试例配置,测试要求的流量属性基本完成,接下来就是对测试结果的保存,其部分代码如下:

这样就将测试所需的数据结果进行保存,其中我们可以将测试结果以xml或tcl的形式导出到指定文件夹:stc::perform saveAsXml -filename "VLAN.xml" 或 者stc::perform saveAsTcl -filename "VLAN.tcl"

测试例运行完保存结果后,最后我们通过对端口的释放将前面一系列配置进行释放:

最终测试结果如表1所示。

表1 测试结果

5 结论

网络测试是保证网络性能安全的重要组成部分,实施并部署网络测试平台是实现网络测试自动化的重要步骤。本文所构建的基于TCL的网络自动化测试系统平台,通过采用分布式IP网络测试架构,能较好的完成对待测IP网络性能进行全面综合的评估。利用TCL语言来开发测试系统,使得系统的扩展性增强,具有更好的灵活性和可移植性,测试人员可以根据测试需要随时更改测试过程和测试数据,使测试用例更加全面丰富。该系统成功地对Cisco交换机或路由器进行了相关的功能和性能测试,通过实验验证了本系统是有效的,提高了测试的效率。

[1]朱畅华.IP网络测试和业务性能研究[D].成都:电子科技大学,2004.

[2]秦大勇,吴向东,罗省贤.多极生成的自动化测试框架的中心技术研究与实现[J].电子测试,2008(3).

[3]RFC 2544 Benchmarking Methodology for Network Interconnect Devices[OL].March 1999,http://www.rfceditor.org/rfc/rfc2544.txt.

[4]唐红,赵国锋,张毅.IP网络测试[M].北京:科学出版社,2009.

[5]潘飞,高岭.网络测量及其关键技术[J].计算机技术与发展,2006,16(07):101-102.

[6]吕雪峰,梅天凤.网络测试中海量数据包存储与处理技术的研究[J].计算机应用,2009,29(03):29-31.

[7]海洋,寿国础,胡怡红.基于RFC 2544测试的网络测试仪的设计与实现[J].计算机工程,2008,13(13):95-97.

[8]赵锋.IP网络测试技术[J].电信网技术,2009,1(01):43-44.

[9]尹霞,吴建平.一种路由协议测试框架研究[J].清华大学学报:自然科学版,2001,41(01):81-84.

[10]营志,赵保华,屈玉贵.基于TCL的路由协议一致性测试[J].北京邮电大学学报,2003,26(S):37-41.

猜你喜欢

测试环境端口流量
冰墩墩背后的流量密码
张晓明:流量决定胜负!三大流量高地裂变无限可能!
一种端口故障的解决方案
全数字仿真测试环境在航天软件测试中的应用研究
寻找书业新流量
雷达航迹处理测试环境构建方法研究
网络设备自动化测试设计与实现
端口阻塞与优先级
负离子纺织品检测方法分析
8端口IO-Link参考设计套件加快开发速度