前言: 前言: 使用脚本语言来设计自动化测试 自动化测试开发框架,是很多大型IT企业在进行自动化测试中所采用的方法,一 自动化测试 个好的自动化测试框架,可以大幅度提高测试人员自动化脚本开发的效率,可以提高自动化脚本开发的并行性 和可靠性。自动化测试框架设计的好与坏,直接关系到整个公司的测试水平,也关系到公司产品的发布周期和 发布质量。那么在设计一个自动化测试框架的时候,会面临哪些问题?对这些
问题,有什么解决方法,每一种 解决方法的优劣又如何呢? 我们在脚本开发长期的经验中,看到了美国,中国;大型,小型等不同IT公司对于自动化测试框架设计 上的面临的挑战和相应的不同解决方法,这里结合我们的观点,和大家一起探讨一下。 要选择什么样的开发语言? 要选择什么样的开发语言? 常见的自动化框架开发语言有: C,C++,Java, TCL, Perl, Ruby, Python。
使用 C 或者 C++,对于整个自动化测试框架的执行效率而言会有所提高。但是由于常见的测试流程对设 计到对大量字符串的处理能力,C 或者 C++ 在这些方面的支持并不完备。会导致整个开发流程的延长,更重 要的是,使用 C 或者 C++,不能够实现跨平台。如果自动化框架只是在公司内部使用,不是商用产品的话, 不建议使用。 Java 的自动化测试框架主要还是面向对使用
Java 开发的产品的测试,并且主要使用在单元测试 单元测试阶段。对 单元测试 于用其他 其他语言开发并编译的软件产品,在测试方面提供的支持力度一般。如果是对于嵌入式
系统的测试,就 其他 更欠缺。在 Web 界面的测试方面,Java 提供一定的支持。 TCL 是老牌的自动化测试语言。在 80 年代开始就在 Motorola 使用,后来被思科采纳,并在自动化测试 领域得到了广泛的应用。对于基于命令行来远程控制的设备如路由器,交换机等的自动化测试领域应用非常成 熟。美中不足的是:TCL 在设计之初是不支持面向对象的设计方法的,虽然后来出现了 iTCL 来弥补不足,但 是常见的基于 TCL 的测试脚本开发还不是基于面向对象的。 对脚本的可维护性和可复用性带来了一些挑战。 Perl 语言在设计之初也不支持面向对象,在网络管理员的圈子里应用的很广,被称作是 the duct tape of the Internet。在自动化测试领域应用的范围不是很广泛。有一些 IT 厂家由于历史的原因在使用 Perl 进行自动 化测试,但是也在慢慢向其他脚本开发语言转型。 Python 作为一个脚本开发语言,它的使用者社区的技术水平比较高。相对来说,它的支持库的代码水平 也比较高。对于软件开发的各个方面的第三方库(如图
像处理,
网络通信,Web 技术等)都有非常好的支持。 Python 本质上就是面向对象的脚本语言。90 年代以后成立的硅谷高科技公司,很多都使用 Python 作为他们 自动化测试的官方语言。在美国的群众基础非常好。社区也非常活跃。它的创始人还因此被 Google 招募旗下。 Ruby 是日本人发明的完全面向对象的脚本语言。它的使用者社区起初主要在日本和台湾的一些 IT 公司。 在 2006 年左右,当 Web 的综合开发框架 Ruby on Rails 出现后,在网站的开发社区中也开始流行开来。 Ruby 语言也受到了大型 IT 公司的测试团队的关注。在自动化测试领域得到了越来越广泛的应用。有一些大型 公司正在由其他的脚本语言向 Ruby 转换。 作为一个自动化测试框架,一个设计原则就是快速成形,快速推广,增量开发。框架的基本功能要马上可 用,并能迅速找到使用者,得到成功推广的案例,形成自己的使用社区。并在此基础上,按照社区使用人的需 求,进行增量开发,逐步扩大社区的用户基数,并丰富框架的功能。在这个要求上,对编程语言的选择有如下 两点: 1、Fast Prototype (马上就可以用) 2、可扩展
第一点,对于解释执行的脚本语言