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、脚本语言的基本工作原理
脚本语言的基本工作原理可以用下面的图示来说明

 

1.jpg


脚本解释器是脚本语言工作的核心,所有具体指令或是函数的执行都由它来完成,扩展项实现了与其它语言的接口,使脚本语言运行 C/C++,java等函数成为可能;同时在用户具体应用中可以定义命令和函数,应用更加灵活;作为解释器它也提供了基本的内建指令或是函数,不同厂商、版本的解释器提供的内建命令(函数)可能不同。
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值