您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 基于TCL语言和ATF框架的自动化测试实现初步讨论
-1-基于TCL语言和ATF框架的自动化测试实现初步讨论摘要传统的软件测试是以手工测试为主,其固有的缺陷,如人工成本巨大,错误率高等。现今,随着软件规模的扩大,质量要求的提高,自动化测试已经成为软件测试的未来发展趋势。本文初步研究了基于TCL语言和ATF框架的自动化测试脚本,为自动化测试的实现打下基础。关键字:自动化测试TCL语言ATF架构1、TCL语言简介TCL(ToolCommandLanguage工具命令语言)是一种脚本语言,包括两部分:脚本语言和脚本语言的解释器,解释器的作用是可以使语言嵌入到应用程序中,可以通过添加TCL解释器将自己的应用程序组织,组织的结果是操作原语,并通过原语来构造自己需要的脚本程序[1]。TCL解释器提供了丰富的内部命令和基于C语言的开发接口,方便脚本开发人员进行脚本的开发以及与C语言的编程[2],从C语言的编程层面来讲,可以调用TCL脚本,设置变量,跟踪解释器的执行。与其他脚本语言类似,TCL提供了足够的可编程特性,用户可以将现有的程序组装成为适合自己的复杂的脚本程序;TCL还可以作为扩展语言,用来配置和定制应用程序[3]。TCL是基于命令行的解释型语言,具有高效、移植性好等特点。TCL的功能强大,其数据类型是完全基于字符串的,支持重定义和重载,可移植性强,扩展性强,支持多种平台,易于维护。使用TCL语言开发自动化测试系统,可以使系统具备协议描述能力强、灵活性好、移植性好等特点[4]。TCL语言的一条命令可以完成某种工作,其处理机制有:字符串处理、数据类型处理、流程处理、过程处理、作用域处理,以上处理机制配合正则表达式,可以提供强大的字符串处理功能,正则表达式可以用来提高其执行力[5]。TCl语言不支持面向对象,应用最广泛的扩展是TK,TK可以提供多种操作系统的UI,本文所使用的平台就是某网络设备厂商根据自身需要所单独开发的软件RJ2000。2、ATF框架ATF的全称是AutoTestFramework,即自动化测试框架,是用来由计算机来代替人力手动输入命令的。自动化框架是就是重用整个或部分系统,是可以被应用者定制的应用骨架,其终极目的是花少量的资源完成最大工作量的任务[6]。-2-在网络设备(如路由器、交换机、防火墙等)中,ATF的作用就是自动的连续下发命令来完成对被测设备的测试,并根据自动返回的测试结果,来确定结果是否正常的方法。某网络设备厂商独立开发了一款专门用于ATF测试的软件RJ2000,ATF在该厂商的运行全部都是基于该软件的。其工作原理为:用TCL语言编写自动化测试脚本,脚本运行在自动化测试框架中。其方式如图2所示:图错误!文档中没有指定样式的文字。ATF框架自动化测试脚本分为三部分,分别是测试床,逻辑拓扑,测试脚本。2.1逻辑拓扑逻辑拓扑描述的是测试组网中真实设备对应的虚拟接口,是测试过程中与真实设备通信必备的拓扑环境,描述的是逻辑设备与物理设备之间的映射,及对应关系。逻辑拓扑的作用是实现测试脚本与物理环境的通信,保持测试脚本的独立性,增加脚本的可移植性。逻辑拓扑还能减少测试脚本执行的过程中出现的异常问题,提高执行效率,增加测试脚本的可读性。逻辑拓扑中可以选择多种类型的设备以减少由于设备性能的不同引起的不兼容问题。例如,被测模块需要或只能在某几个类型的接口上测试,此时需要在逻辑拓扑中加以约束,限制脚本运行的物理环境,提高脚本运行的可靠性。2.2ATF工作原理物理设备(组网环境)与逻辑测试脚本的分离是自动化测试需解决的主要问题[7],ATF正是为了解决该问题而存在的。二者分离后,脚本移植、再利用等问-3-题便迎刃而解,ATF的目的正是用尽可能小的修改,来实现整个测试脚本环境的变化。在不同的测试物理环境中,很多参数(设备名,接口名,端口号,槽位号,IP地址等)都各不相同,然而这些参数虽然是必要的,但与测试结果基本没有关系,ATF的任务就是要将这些必要但不重要的参数在脚本移植的过程中做尽可能少的改变,减少工作时间,提高自动化测试的工作效率。其实现方法简单而有效:将测试脚本与物理环境中需要改变的部分分割,移植的过程不对a脚本做任何修改,只改变测试环境中变化的部分[8]。当物理环境改变时,只需修改测试床和逻辑拓扑中的参数即可,复杂的测试脚本不需要修改,这样就可以极大的增加测试脚本的可移植性。如表2.2所示:测试脚本中的变量$addr(DUT1,PORT1)值为192.168.100.1/24,变量$intf(DUT1,PORT1)的值为Ethernet1/0/1。当物理环境发生变化时,测试脚本中所引用的变量名$addr(RTA,PORT1)不需要改变,只需要将测试床和逻辑拓扑文件中的变量值改变即可。表错误!文档中没有指定样式的文字。.2拓扑映射关系表测试脚本$addr(DUT1,PORT1);$intf(DUT1,PORT1)逻辑拓扑link1,RTAPORT1,RTBPORT2测试床link1,DUT1ETH1/0/1192.168.100.1/24,DUT2ETH1/0/1192.168.100.2/24物理连接如图2.2所示,物理环境中有三台被测设备SW1、RT1、RT2,在某测试过程中,只需两台设备即可,假设测试中只用到RT1和RT2,分别命名为DUT1和DUT2,ATF通过映射关系将DUT1和DUT2对应为实际设备RT1和RT2。然后脚本中对DUT1和DUT2进行命令的下发,以完成测试过程。脚本移植时,只要将DUT1和DUT2的对应关系改为其他设备,运行脚本时即可完成对其他设备的命令下发。-4-图错误!文档中没有指定样式的文字。.1拓扑映射关系图3、接口函数的实现接口函数的具体实现思想是将设备支持的所有的命令行封装在接口函数中[9],再将接口函数位于指定的库中。当自动化测试脚本需要向被测设备下发某条命令时,只需调用库中的接口函数即可,无须直接在脚本中输入直接下发某命令的语句。通常情况下,每个接口函数实现一条命令行的功能,实现复杂、参数多的命令可对应多个接口函数。例如,当命令“displayinstallactive”没有封装在接口函数中时,测试脚本中需要下发命令时需要实现语句为:DUT1tsend”displayinstallactive”;上述语句中tsend为公司内部实现的库函数命令,实现语句下发功能。若将命令“displayinstallactive”封装在接口函数DisInstallActive()中,测试脚本中DUT1设备需要下发该命令时,脚本中需要调用该接口函数,具体实现语句为:DUT1DisInstallActive;虽然这两条语句看上去复杂度没有什么不同,编写接口函数又需要进行额外的工作,似乎有点得不偿失,但是接口函数实现了一个非常重要的功能,即增加了自动化测试脚本的可移植性和可维护性。假设测试脚本中需要调用“displayinstallactive”100次,当某新版本-5-的平台需要将该命令修改为“displaypackageactive”时,问题就出现了,我们需要在测试脚本中修改100次该命令,即每次下发此命令都需要进行修改。如果把该命令封装在接口函数DisInstallActive()中,修改该命令的时候只需要在库函数中找到DisInstallActive()的实现,将接口函数中下发的命令由“displayinstallactive”修改为“displaypackageactive”即可,测试脚本中调用的接口函数DisInstallActive()就会下发新的命令,这对脚本的移植和维护是非常有用的。4、总结ATF框架总结来有如下特性:接口丰富,多样的接口可供脚本管理和运行,可移植性好,支持多种平台。ATF在测试中的位置简而言之是为用户和设备提供通信桥梁,向下调用底层库函数中的接口,向上为用户提供输入和输出,正如图4所示:图4ATF框架上下关系图软件自动化测试已成为软件测试的发展趋势,随着软件规模的扩大,自动化测试的地位也越来越高。自动化测试的发展过程中,自动化测试框架的不断完善,测试脚本库的不断增加和改善,使得自动化测试覆盖率、测试效率等相应升高,自动化测试将应用在各种软件系统中。-6-参考文献[1]BRENTWelch.PracticalProgramminginTclandTk.[M].US:Prentice2Hall,2000.[2]赵丽.基于TCL脚本的自动化测试工具的研究与实现.[J].信息化研究,2009(11):28-30.[3]BrentB.Welch著.崔凯译.Tcl/Tk编程权威指南.[M].北京.中国电力出版社,2002.[4]赵保华.高存皓.基于TCL的BGP协议一致性自动化测试系统设计.[J].计算机工程与应用,2006(27):80-83.[5]JohnK.Ousterhout,KenJones著.张元章译.Tcl/Tk入门经典(第2版).北京.清华大学出版社,2010.10.[6]曹晓华.基于RFT的自动化测试框架.[D].硕士.浙江大学,2008.[7]Chakravadhanula,Krishna.&Chickermane,Vivek.AutomatingIEEE1500CoreTest--AnEDAPerspective[J].Design&TestofComputers.IEEE,2009,26(3):6-15.[8]夏雷.基于TCL语言的系统配置自动化测试脚本的设计与实现.[D].硕士.北京邮电大学,2007.[9]叶波.孙俊若.林洁.软件接口自动化技术研究与实现.[J].信息化研究,2010(4):47-51.
本文标题:基于TCL语言和ATF框架的自动化测试实现初步讨论
链接地址:https://www.777doc.com/doc-2535172 .html