首先,何谓"测试脚本语言"?准确的说,"测试脚本语言"这个概念并没有确定的范围,一般是用来指在测试过程中使用到的脚本语言。那么,测试过程中使用的脚本语言到底包括哪些呢?
测试过程中对脚本语言的需求主要来自两个方面: 一方面是测试工具本身使用的脚本语言,另一方面是需要使用某种脚本语言自行编写测试工具,或是实现某个测试任务。
对前者来说,使用何种脚本语言主要取决于工具本身,例如,Robot工具使用的脚本语言类似于VBScript和JavaScript,LoadRunner使用的脚本语言是类C和类JavaScript的,TestComplete工具使用的脚本语言是类似Delphi的脚本语言。对后者来说,脚本语言的范围就更大了--几乎所有的脚本语言都可以用来实现某种特定的测试任务,因此广义上来说 ,他们都可以被归为"测试脚本语言"。
测试工具使用的脚本语言一般都被限定在特殊的工具中,对脚本语言的掌握体现为对工具掌握的一部分,而且这部分脚本语言的文档很容易获取,在此我们不详细描述。本文中我们重
测试过程中对脚本语言的需求主要来自两个方面: 一方面是测试工具本身使用的脚本语言,另一方面是需要使用某种脚本语言自行编写测试工具,或是实现某个测试任务。
对前者来说,使用何种脚本语言主要取决于工具本身,例如,Robot工具使用的脚本语言类似于VBScript和JavaScript,LoadRunner使用的脚本语言是类C和类JavaScript的,TestComplete工具使用的脚本语言是类似Delphi的脚本语言。对后者来说,脚本语言的范围就更大了--几乎所有的脚本语言都可以用来实现某种特定的测试任务,因此广义上来说 ,他们都可以被归为"测试脚本语言"。
测试工具使用的脚本语言一般都被限定在特殊的工具中,对脚本语言的掌握体现为对工具掌握的一部分,而且这部分脚本语言的文档很容易获取,在此我们不详细描述。本文中我们重
点关注上文描述的后者。
测试中常用的脚本语言包括Perl,Unix/Linux Shell,Python,Ruby等。本文无意评价各种语言的优劣(实际上,很难用短短的几句话描述这些脚本之间的优劣,无论使用哪种语言,只要你真正熟悉它,就可以用它完成所有你想要完成的工作),而仅仅是给出一些本人在使用这些脚本语言辅助进行测试时的一些思路和想法。
1, 如何选择最适合你的脚本语言(注意,不是"最好的",而是"最适合你的")
虽说脚本语言很难对其评价为"好"或者"不好",但真正要选择一种来使用的话,还是可以到一款最"适合"你的。一般来说,决定选择何种脚本语言可以从以下几个方面考虑:
脚本语言是否与你已经熟悉的某种语言比较接近?
如果你已经习惯用一种面向对象的语言(例如Java),建议你可以考虑选择完全面向对象的脚本语言Python或者Ruby;
脚本语言是否提供对你所在平台的支持?
测试中常用的脚本语言包括Perl,Unix/Linux Shell,Python,Ruby等。本文无意评价各种语言的优劣(实际上,很难用短短的几句话描述这些脚本之间的优劣,无论使用哪种语言,只要你真正熟悉它,就可以用它完成所有你想要完成的工作),而仅仅是给出一些本人在使用这些脚本语言辅助进行测试时的一些思路和想法。
1, 如何选择最适合你的脚本语言(注意,不是"最好的",而是"最适合你的")
虽说脚本语言很难对其评价为"好"或者"不好",但真正要选择一种来使用的话,还是可以到一款最"适合"你的。一般来说,决定选择何种脚本语言可以从以下几个方面考虑:
脚本语言是否与你已经熟悉的某种语言比较接近?
如果你已经习惯用一种面向对象的语言(例如Java),建议你可以考虑选择完全面向对象的脚本语言Python或者Ruby;
脚本语言是否提供对你所在平台的支持?
如果你的平台是Unix/Linux,除了Windows上的脚本外,其他的你都可以选择;如果你的平台是Windows,基本上除了Unix Shell外,你也都可以选择;
脚本语言是否提供了满足你的测试要求的特性?
一般的脚本语言都会提供很多扩展库来扩充自己,例如Perl的CPAN扩展,Ruby的唐骏语录Watir扩展等等。如果某种脚本提供了一个非常适合你的测试要求的扩展,不妨首先考虑一下使用这种脚本语言(我就是因为使用Watir才转而使用Ruby脚本的)。相比较而言,Windows上的WSH和Unix上的Shell就较少提供扩展。
脚本语言是否有较多的支持?
Perl作为历史最悠久的脚本语言之一,拥有最大的用户体和最完善和最广泛的支持,Python作为后起之秀在国内也有许多的追随者,相比较而言,Ruby的支持就要逊一些。不过如果和我一样只是为使用Watir而使用Ruby,这个也就不是很大的问题了。
2, 学习脚本语言的方法
脚本语言本质上也是一门语言,学习他们的方法与学习其他的编程语言并没有本质的区别。"多实践"永远是学习它们的不二法门。我的经验是在实际工作中学习--先对其建立基本的概念和认识,然后在实际的工作中去应用,遇到不懂的再去文档补充学习。
脚本语言是否提供了满足你的测试要求的特性?
一般的脚本语言都会提供很多扩展库来扩充自己,例如Perl的CPAN扩展,Ruby的唐骏语录Watir扩展等等。如果某种脚本提供了一个非常适合你的测试要求的扩展,不妨首先考虑一下使用这种脚本语言(我就是因为使用Watir才转而使用Ruby脚本的)。相比较而言,Windows上的WSH和Unix上的Shell就较少提供扩展。
脚本语言是否有较多的支持?
Perl作为历史最悠久的脚本语言之一,拥有最大的用户体和最完善和最广泛的支持,Python作为后起之秀在国内也有许多的追随者,相比较而言,Ruby的支持就要逊一些。不过如果和我一样只是为使用Watir而使用Ruby,这个也就不是很大的问题了。
2, 学习脚本语言的方法
脚本语言本质上也是一门语言,学习他们的方法与学习其他的编程语言并没有本质的区别。"多实践"永远是学习它们的不二法门。我的经验是在实际工作中学习--先对其建立基本的概念和认识,然后在实际的工作中去应用,遇到不懂的再去文档补充学习。
3, 各脚本语言参考
Perl
Perl中国站
www.perl/forum/
Python
Python中文站
python/
啄木鸟Python开发社区
/
Ruby
Ruby主页
/en/
Ruby中文手册
/doc.html
Watir项目
/
脚本语言简介
辜彬 2004-9-9
辜彬 2004-9-9
1.1、测试脚本语言的定义
测试脚本语言(test scripting language)是脚本语言的一种,准确地讲是脚本语言在测试
领域地一个分支,是自动化软件测试设计的基础。要理解测试脚本语言就不能不对脚本语言进行一些了解。
脚本语言(scripting language)就是在执行时以解释(interpreting) 为主的编程语言,比如常见的perl,python,php,tcl,guile,ruby以及UNIX系统的各种shell都是脚本语言,它的执行效率比不上编译后再执行的程序,如以C, C++, Java, Pascal等语言编写的程序。
脚本语言应用到测试领域就可以称之为测试脚本语言,以上提到的脚本语言都可以作为测试脚本语言来使用,特别是tcl语言更是被业界称为事实上的测试脚本语言标准。随着软件测试的发展,各种测试工具也相继推出,为了保护知识产权或者说是保护商业秘密,这些商业化的软件大多使用自己的测试脚本语言,比如MI的TSL语言等。
测试脚本技术大致可以分为以下几类:
● 线性脚本:是录制手工执行的测试实力得到的脚本。这种脚本包括所有的击键、功能键、箭头、控制测试软件的控制键及输入数据的数字键。
● 结构化脚本:类似于结构化程序设计,结构化脚本中含有控制脚本设计的指令。这
些指令或为控制结构或为调用结构。
● 共享脚本:脚本可能被多个测试事例使用。
● 数据驱动脚本技术:将测试输入存储在独立的文件中,而不是存储在脚本中。
● 关键字驱动脚本:较复杂的数据驱动技术的逻辑扩展。
1品牌冰箱.2、脚本语言的发展历史
这里我们以tcl语言的发展来回顾一下脚本语言的发展历史,商业化的测试脚本语言一般就是随着商业测试软件的发展来发展的,在此不作详细介绍。
Tcl/Tk 的发明人 John Ousterhout 教授在八十年代初是伯克利大学的教授。在其教学过程中,他发现在集成电路 CAD 设计中,很多时间是花在编程建立测试环境上。并且,环境一旦发生了变化,就要重新修改代码以适应新环境。这种费力而又低效的方法,迫使 Ousterhout 教授力图寻一种新的编程语言,它即要有好的代码可重用性,又要简单易学,这样就促成了 Tcl (Tool Command Language) 语言的产生。
Tcl 最初的构想是希望把编程按照基于组件的方法 (component approach)怎么做一套迷你文具,即与其为单个的应用程序编写成百上千行的程序代码,不如寻一种方法将程序分割成一个个小的, 具备一定“完整”功能的,可重复使用的组件。这些小的组件小到可以基本满足一些独立的应用程序的需求,其它部分可在这些小的组件功能基础上生成。不同的组件有不同的功能,用于不同的目的,并可为其它的应用程序所利用。当然, 这种语言还要有良好的扩展性, 以便用户为其增添新的功能模块。最后,需要用一种强的,灵活的“胶水”把这些组件“粘”合在一起, 使各个组件之间可互相“通信”,协同工作。程序设计有如拼图游戏一样,这种设计思想与后来的 Java 不谋而合。终于在 1988 年的春天, 这种强大灵活的胶水2021年11月黄道吉日一览表 - Tcl 语言被发明出来了。
到了80年代图形用户界面逐渐流行的时候,Ousterhout 教授要想使基于组件的设计能够实现,需要有一个强大的有弹性的控件整合工具。这些想法在一开始考虑做Tcl的时候就产生了,Ousterhout 教授觉得像Tcl这样的嵌入式命令语言作为脚本语言对整合部件会很有用。Ousterhout 教授决定创建一些作为Tcl扩展的GUI部件并且使用Tcl来把这些部件整合到图形用户界面中,借此实践一下这个理论。这个扩展就成为了Tk。
Tcl在创始初期都是以开放源码的方式发布的,到了90年代初,Tcl语言得到了广泛的发展,并得到了大型厂商的支持,如SUN公司,并逐步形成了tcl社区,这样就逐渐有了商业赢利产品的开发,同时Tcl将会继续开发开放源代码的产品,至此TCL语言进入了两种不同的发展轨道,同时也促进了tcl语言的发展和应用。
1.3、脚本语言的特点
脚本语言的特点,通过下面tcl/tk与C++和java的比较就可见一斑。
C++所得税汇算清缴分录,Tcl/Tk 和 Java 的性能比较表
C++ | Tcl/Tk | Java | |
运行程序速度 | 快 | 与 C++ 可比 | 慢 |
调试难易程度 | 复杂 每次修改完代码需重新编译 | 简单 修改完代码可直接运行 | 比较简单 修改完代码需重新编译成 ByteCode, 而且编译速度很慢 |
程序代码复杂程度 | 复杂 | 简明 | 比较简单 |
系统资源占用情况 | 200MB HD 32MB Memory | 3MB HD 4MB Memory | 20MB HD 4MB Memory |
代码可维护性 | 好 | 一般 | 较好 |
可移植性 | 较好 | 非常好 | 好 |
学习难度 | 复杂,难掌握 | 简单易学 | 有一定难度,需要有面向对象程序设计的概念 |
1.4、商业测试脚本语言简介
王者情侣名字 商业测试软件
1.5、脚本语言的基本工作原理
脚本语言的基本工作原理可以用下面的图示来说明
脚本解释器是脚本语言工作的核心,所有具体指令或是函数的执行都由它来完成,扩展项实现了与其它语言的接口,使脚本语言运行C/C++,java等函数成为可能;同时在用户具体应用中可以定义命令和函数,应用更加灵活;作为解释器它也提供了基本的内建指令或是函数,不同厂商、版本的解释器提供的内建命令(函数)可能不同。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论