对比介绍自动化测试语言Tcl和Python_第1页
对比介绍自动化测试语言Tcl和Python_第2页
对比介绍自动化测试语言Tcl和Python_第3页
对比介绍自动化测试语言Tcl和Python_第4页
对比介绍自动化测试语言Tcl和Python_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2013.2目录1.语言特点语言特点2.版本介绍版本介绍3.注释注释4.数据类型数据类型5.变量定义和赋值变量定义和赋值6.输出输出7.数学计算数学计算8.转义字符转义字符9.函数函数10.局部和全局变量局部和全局变量11.控制流控制流12.字符串操作字符串操作13.列表列表14.字典字典15.元组元组(Python)16.数组数组(Tcl)17.文件操作文件操作18.名字空间名字空间(Tcl)19.模块化模块化20.面向对象编程面向对象编程21.多线程编程多线程编程22.Python中嵌入中嵌入Tcl23.扩展包应用扩展包应用ftp和和smtp/mime24.扩展包应用扩展包应用expect

2、语言特点C语言具有高效和贴近机器的特点,但是在内存管理方面存在严重的缺陷;C+把效率与泛型和面向对象特性结合起来,但过于华丽复杂。使用C或者C+,对于整个自动化测试框架的执行效率而言会有所提高。但是由于常见的测试流程对设计到对大量字符串的处理能力,C或者C+在这些方面的支持并不完备,会导致整个开发流程的延长。更重要的是,使用C或者C+,不能够实现跨平台。Java采用了自动内存管理,取消了容易出错的指针。Java的自动化测试框架主要还是面向对使用Java开发的产品的测试,并且主要使用在单元测试阶段。对于用其他语言开发并编译的软件产品,在测试方面提供的支持力度一般。如果是对于嵌入式系统的测试就更欠

3、缺,处理文本也非常繁琐。在Web界面的测试方面,Java提供一定的支持。语言特点Perl原本是专门设计处理文本的,这方面能力最强,但是不适合编写大程序,语法晦涩难懂。Perl在网络管理员的圈子里应用的很广,被称作是the duct tape of the Internet,但在自动化测试领域应用的范围不是很广泛。Ruby是日本人发明的完全面向对象的脚本语言,在自动化测试领域得到了越来越广泛的应用。Ruby的正则表达式比Python方便,比Python有更完整的面向对象的语法,Ruby的主要功能都是用类的方法调用来实现的,不是函数;另一方面由于Ruby的强大,语言相对Python复杂,Ruby没

4、有内省性,缺乏国际化支持和类似Jython的东西。语言特点Tcl:解释执行的脚本语言,不需要编译,面向过程,iTcl(incr Tcl)扩展包及8.6版本提供面向对象支持,thread扩展包支持多线程。Tcl是老牌的自动化测试语言,最初就是基于整合测试系统而开发出来的,80年代开始就在摩托罗拉使用,后来被思科采纳,并在自动化测试领域得到了广泛的应用。Python:解释性的脚本语言,具有编译过程(脚本编译成字节码),面向过程且面向对象,支持多线程。 Python语言非常干净,设计优雅,具有出色的模块化特性,可以与C和Java紧密整合。Python的支持库的代码水平也比较高,对于软件开发的各个方面

5、的第三方库(如图像处理,网络通信,Web技术等)都有非常好的支持。版本介绍ActiveTcl是ActiveState公司提供的免费Tcl开发集成支持包,ActiveTcl目前有8.4,8.5和8.6Beta三个版本。这里介绍的是8.4和8.5版本,IDE使用Eclipse+dltk8.4版本包含完整的扩展包,例如Expect8.5是内核改进版本,运行速度比8.4快10%。8.5不包含绝大部分的扩展包,用户需要通过内置的teacup在线升级安装各种需要的扩展包。如果无法在线升级,可先安装8.4版本共用8.4的扩展包8.6目前还是beta版本,支持面向对象,暂不考虑 Python的版本很多,而20

6、08年底推出Python3.0不向下兼容2.x版本。这里介绍的是2.x版本,使用的也是ActiveState公司提供的免费Python开发集成支持包ActivePython,IDE使用Eclipse+Pydev注释Tcl:#注释注释1set a 1 ;#注释注释2(注意与命令同一行时注意与命令同一行时#前要加;前要加;) Python:#注释注释1a=1 #注释注释2注释注释3数据类型 Tcl:只有字符串一种类型,不需要声明类型Python:有数字(整型、长整型、浮点数、复数),字符串和布尔值(True,False)这几种类型,也不需要声明类型变量定义和赋值Tcl:set a 1 set b

7、hello worldset c Hello 或或 set c Hello Python:a = 1 b = hello worldc = Hello 或或 c=Hello 或或 c=Helloa = True #布尔值布尔值print int(a)输出Tcl:puts hello $b world puts hello $b world set b computerputs $b#双引号里字符串会做置换处理,花括号里的置换则有可能会被阻止双引号里字符串会做置换处理,花括号里的置换则有可能会被阻止 Python: print hello world # 或或 print “hello worl

8、d” 或或 print hello worldb=computerprint b数学运算Tcl:set a 1set b 2set c expr $a+$bputs $c#通过命令通过命令expr可以实现对数学表达式的分析和计算可以实现对数学表达式的分析和计算 Python: a = 1b = 2c = a + bprint c转义字符”Tcl:puts The book I borrowed is 1984.#实际输出为:实际输出为:The book I borrowed is 1984.Python: print Janes dog is missing#实际输出为:实际输出为:Janes

9、 dog is missing函数(过程)Tcl:proc MyPet pet number 1 ; # number缺省值为缺省值为1 puts I have $number $petsreturn MyPet dogMyPet cat 5MyPet mouse 3函数(过程)Python:def MyPet(pet, number=1): print the number of my pets print I have %d %ss % (number,pet)return print MyPet._doc_MyPet(dog)MyPet(cat, 5)MyPet(number=3, pe

10、t=mouse)局部和全局变量Tcl:proc func global xputs x is $xset x 2puts Changed local x to $x set x 50 funcputs Value of x is $x“#全局变量在过程内部不会自动可见,需要通过全局变量在过程内部不会自动可见,需要通过global 命令命令来事先声明,也可在变量前加来事先声明,也可在变量前加:表示全局变量表示全局变量局部和全局变量Python:def func(): global x print x is, x x = 2 print Changed local x to, x x = 50 f

11、unc()print Value of x is, x控制流ifTcl:set love Falseif $love=True puts I love you elseif $love=False puts I dont love you else puts I dont know youPython:love = Falseif love=True: print I love youelif love=False: print I dont love youelse:print I dont know you控制流whileTcl:set number 23set guess 0set ru

12、nning True while $running = True if $guess = $number puts Congratulations, you guessed it. break if $guess $number puts Sorry, number is too small. incr guess continue puts Sorry, number is too big. incr guess -1 Python:number = 23guess = 0running = True while running: if guess = number: print Congratulations, you guessed it. break if guess number: print Sorry, nu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论