Windows脚本编程基础

脚本编程技术是软件测试工程师的基本功之一,不同的操作系统平台都提供了脚本语言。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
1.1、测试脚本语言的定义
   测试脚本语言(testscripting language)是脚本语言的一种,准确地讲是脚本语言在测试领域地一个分支,是自动化软件测试设计的基础。要理解测试脚本语言就不能不对脚本语言进行一些了解。
   脚本语言(scripting language)就是在执行时以解释(interpreting) 为主的编程语言,比如常见的perl,python,php,tcl,guile,ruby以及UNIX系统的各种shell都是脚本语言,它的执行效率比不上编译后再执行的程序,如以C, C++, Java, Pascal等语言编写的程序。
   脚本语言应用到测试领域就可以称之为测试脚本语言,以上提到的脚本语言都可以作为测试脚本语言来使用,特别是tcl语言更是被业界称为事实上的测试脚本语言标准。随着软件测试的发展,各种测试工具也相继推出,为了保护知识产权或者说是保护商业秘密,这些商业化的软件大多使用自己的测试脚本语言,比如MI的TSL语言等。
   测试脚本技术大致可以分为以下几类:
l         线性脚本:是录制手工执行的测试实力得到的脚本。这种脚本包括所有的击键、功能键、箭头、控制测试软件的控制键及输入数据的数字键。
l         结构化脚本:类似于结构化程序设计,结构化脚本中含有控制脚本设计的指令。这些指令或为控制结构或为调用结构。
l         共享脚本:脚本可能被多个测试事例使用。
l         数据驱动脚本技术:将测试输入存储在独立的文件中,而不是存储在脚本中。
l         关键字驱动脚本:较复杂的数据驱动技术的逻辑扩展。
1.2、脚本语言的发展历史
 这里我们以tcl语言的发展来回顾一下脚本语言的发展历史,商业化的测试脚本语言一般就是随着商业测试软件的发展来发展的,在此不作详细介绍。
 Tcl/Tk 的发明人 John Ousterhout 教授在八十年代初是伯克利大学的教授。在其教学过程中,他发现在集成电路 CAD 设计中,很多时间是花在编程建立测试环境上。并且,环境一旦发生了变化,就要重新修改代码以适应新环境。这种费力而又低效的方法,迫使 Ousterhout 教授力图寻找一种新的编程语言,它即要有好的代码可重用性,又要简单易学,这样就促成了 Tcl (Tool Command Language) 语言的产生。
 Tcl 最初的构想是希望把编程按照基于组件的方法 (component approach),即与其为单个的应用程序编写成百上千行的程序代码,不如寻找一种方法将程序分割成一个个小的, 具备一定“完整”功能的,可重复使用的组件。这些小的组件小到可以基本满足一些独立的应用程序的需求,其它部分可在这些小的组件功能基础上生成。不同的组件有不同的功能,用于不同的目的,并可为其它的应用程序所利用。当然, 这种语言还要有良好的扩展性, 以便用户为其增添新的功能模块。最后,需要用一种强的,灵活的“胶水”把这些组件“粘”合在一起, 使各个组件之间可互相“通信”,协同工作。程序设计有如拼图游戏一样,这种设计思想与后来的 Java 不谋而合。终于在 1988 年的春天, 这种强大灵活的胶水 - 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等函数成为可能;同时在用户具体应用中可以定义命令和函数,应用更加灵活;作为解释器它也提供了基本的内建指令或是函数,不同厂商、版本的解释器提供的内建命令(函数)可能不同。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/menuconfig/archive/2008/06/05/2514444.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值