脚本编程技术是软件测试工程师的基本功之一,不同的操作系统平台都提供了脚本语言。Unix下的脚本语言非常丰富,系统管理员利用脚本可以轻松地完成许多工作,也因为此,脚本在很长的时间里都是Unix比Windows强大的有力证据。但其实Windows从Windows98版本开始,就提供了对脚本的支持。Windows98脚本能完成的工作很少,所以少有人使用。但从Windows2000开始,脚本已经是Windows的一个强有力的工具了,利用脚本可以完成许多日常的维护工作,脚本可以执行所有的Windows应用程序,可以读写注册表,甚至可以调用COM组件提供的接口。在我们调试和测试Windows上的组件时,脚本确实能给我们带来大的便利。以下从我使用脚本的经验,为大家简单介绍Window下的脚本。Windows下的脚本文件后缀是vbs和js。看名字就知道,分别对应vbscript语言和javascript语言,在Windows下,直接双击脚本文件就可以执行了(注意,有些国产的软件会很恶心地将vbs文件重新注册为自己的文件类型,例如超级解霸之流,此时,就需要用wscript.exe文件来执行脚本了)。下文只打算从最实用的角度来描述如何应用脚本测试我们自己的COM组件。
一、脚本基础脚本文件是一个标准的文本文件,用Notepad或者UltraEdit之类的软件就可以编辑脚本文件。下面是一个最简单的脚本文件:文件名:test1.vbs文件内容:MsgBox "Hello, world"保存该文件并双击运行,系统应该弹出一个“Hello World”对话框。
二、用脚本访问COM组件脚本访问COM组件的示例如下:文件名:test2.vbs文件内容:
set myobj = CreateObject("ToolsObject.TelnetTool")
myobj.OpenTelnet "192.168.1.202",0,"login:"
myobj.ExecCmdExt "daladmin","assword:"
strresult = myobj.ExecCmdExt("daladmin",">")
MsgBox strresult上面的代码是访问我们的ToolsObject组件并实用TelnetTool接口进行Telnet操作。语法和VB的一致,不用多说了。
三、用脚本进行文件访问文件名:test3.vbs文件内容:
set fs = CreateObject("Scripting.FileSystemObject")
set drivec = fs.GetDrive("C:/")
MsgBox TypeName(drivec)
emptyspace = drivec.AvailableSpace
MsgBox "Avaialable on C:/: " & _
FormatNumber(emptyspace/1024^2,1) & " MB"
这段代码通过FileSystemObject对象执行文件访问。
首先选择Tcl,因为它和我的测试工作关系密切,并且已经成为自动测试中事实上的标准。Tcl在通讯领域的自动测试中应用的比较多,因为在这些测试中,往往需要做很多设置操作。有一个网站—— http://www.tclchina.com/, sunny_ring建立的。上面有一些Tcl语言的资源,可以到这里查找一些资料。
其次就是Python,这个语言我非常的喜欢。我看过一些Python的代码,也写过一些简单的小工具,感觉Python非常的清晰、简洁,象读文字一样畅快。如果以后需要为工作或其它的事情写一些程序,我打算就用Python。
China Linux 的Python论坛:
http://www.linuxforum.net/forum/postlist.php?Cat=&Board=python&page=0&view=collapsed&sb=5&o=
Swaroop的Python语言简明教程:
http://www.byteofpython.info/language/chinese/index.html
Python中文站:
http://www.mypython.net/
啄木鸟:
http://www.woodpecker.org.cn/
另外,Perl也需要了解一些,因为它太普遍了,类C的,学习起来也会比较容易(不过就Perl语言本身来说,我真是不太喜欢)。IBM的developerworks上有很多关于Perl的资料。
Unix Shell当然要掌握,这个不必抽出太多单门时间来学习,因为要在Linux/UNIX上工作。IBM的developerworks上同样也有很多shell编程的资料。
附录是辜彬写的一篇文章,简单介绍了一下脚本语言,主要是Tcl。
附录:
脚本语言简介
辜彬 2004-9-9
|
C++
|
Tcl/Tk
|
Java
|
运行程序速度
|
快
|
与
C++ 可比
|
慢
|
调试难易程度
|
复杂
每次修改完代码需重新编译 |
简单
修改完代码可直接运行 |
比较简单
修改完代码需重新编译成 ByteCode, 而且编译速度很慢 |
程序代码复杂程度
|
复杂
|
简明
|
比较简单
|
系统资源占用情况
|
200MB HD
32MB Memory |
3MB HD
4MB Memory |
20MB HD
4MB Memory |
代码可维护性
|
好
|
一般
|
较好
|
可移植性
|
较好
|
非常好
|
好
|
学习难度
|
复杂,难掌握
|
简单易学
|
有一定难度,需要有面向对象程序设计的概念
|