《自动化测试讲稿Step俞戴龙.pptx》由会员分享,可在线阅读,更多相关《自动化测试讲稿Step俞戴龙.pptx(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、什么是VBScript VBScript的全称是:Microsoft Visual Basic Script Editon.(微软公司可视化BASIC脚本版).正如其字面所透露的信息,VBS(VBScript的进一步简写)是基于Visual Basic的脚本语言.我进一步解释一下,Microsoft Visual Basic是微软公司出品的一套可视化编程工具,语法基于Basic.脚本语言,就是不编译成二进制文件,直接由宿主(host)解释源代码并执行,简单点说就是你写的程序不需要编译成.exe,而是直接给用户发送.vbs的源程序,用户就能执行了.第1页/共30页用什么工具来开发VBS程序答案是
2、:记事本(Notepad).我不是开玩笑,其实任何一种文本编辑器都可以用来开发VBS开发,只不过记事本是由系统自带的,比较好找而已.尽管如此,我还是建议你去下载一个专业的文本编辑器,因为这些工具可以提供 语法高亮等功能,更加方便开发,用哪一个随你喜好,我比较喜欢vbsedt33第2页/共30页写一个VBScript程序热热身 Rem 输入并回显你的名字 使用InputBox和Msgbox函数 Dim name,msg msg=请输入你的名字:name=Inputbox(msg,名称)MsgBox 大家好,我叫&name第3页/共30页要点:1)注释(以REM或开头)行在程序中不起作用,但能让别
3、人更容易读懂你的程序.2)变量好像一个盒子,或一个代号,可以代表你想代表的东西.变量赋值使用=3)以包裹起来的字符称之为字符串 4)函数像一个黑箱,有参数和返回值,用=左边的变量可以接住返回值 5)Inputbox函数弹出一个输入对话框,Msgbox则用于输出 第4页/共30页再来一个例子a=InputBox(请设定一个时间&chr(13)&系统将在这个时间后自动关机。&chr(13)&Chr(13)&单位:秒,设定关机等待时间)temp=shutdown-s-t&CStr(a)Call RUN()Call QTP_Msgbox(设定成功,1,提示)Dim WshShellset WshShe
4、ll=CreateObject(Wscript.Shell)WshShell.SendKeys tempWshShell.SendKeys ENTERSet WshShell=Nothing启动运行Sub Run()Dim WshShellset WshShell=CreateObject(Wscript.Shell)WshShell.SendKeys ESCR Set WshShell=nothingEnd Sub定时停留弹出框函数Sub QTP_Msgbox(Value,waitTime,Title)Dim WshShell Set WshShell=CreateObject(WScrip
5、t.Shell)WshShell.Popup Value,waitTime,Title Set WshShell=nothingEnd SubCall RunCall QTP_Msgbox(取消关机成功,3,恭喜)Dim WshShellset WshShell=CreateObject(Wscript.Shell)WshShell.SendKeys shutdown-aWshShell.SendKeys ENTERSet WshShell=Nothing启动运行Sub Run()Dim WshShellset WshShell=CreateObject(Wscript.Shell)WshSh
6、ell.SendKeys ESCR Set WshShell=nothingEnd Sub定时停留弹出框函数Sub QTP_Msgbox(Value,waitTime,Title)Dim WshShell Set WshShell=CreateObject(WScript.Shell)WshShell.Popup Value,waitTime,Title Set WshShell=nothingEnd Sub自动关机代码自动关机代码取消自动关机代码取消自动关机代码第5页/共30页顺序结构命令序列2命令序列1命令序列STARTEND顺序结构的特点:每一条语句按顺序执行;每一条语句只执行一遍,不重
7、复执行;也没有语句不执行。第6页/共30页变量 解释变量最好的办法我觉得是“盒子”,一个变量好像一个盒子,里面只能装一个东西,当你要装进去别的东西的时候必须把原有的东西拿出来.这个“盒子”是有名称的,当你在程序中使用变量的时候,系统会打开盒子取出里面的东西,让这些东西参与处理,而不是盒子.有些语言是很依赖“盒子”里面装些什么东西,这样才能找到合适的“盒子”(比如C语言),但VBS给我们提供的是能够自动伸缩的魔术盒,我们不用关心装进去的是什么东西 第7页/共30页VBS会自动调整盒子的大小.如:Dim a1,a2,a3 a1=14 a2=12.23 a3=Hello 而不用像C语言那样麻烦:或者
8、是VB的正规声明(VB可以声明也可以不用)那样:int a1;Dim a1 as integer float a2;Dim a2 as Double char*a3;Dim a3 as strnig a1=14;a1=14 a2=12.23;a2=12.23 a3=Hello;a3=Hello 第8页/共30页变量有什么用 用处可大了.最简单,你并不能确定程序运行时变量的值,比如我们编的输入姓名的程序,你不能确定InputBox返回的是什么(还记得Inputbox的返回值吗?就是你输入的内容),所以你就没有办法应对各种情况,但我们用name这个盒子把用户的名字装起来,到用的时候我们只要知道na
9、me这个盒子的名字就行了,系统会自己打开他并把里面的内容拿出来用 第9页/共30页数学计算vbs中的数学计算和真正的算术没有什么不同,+,-,*,/,(),都是一样的用法,比如:dim ans ans=12+32/4+(23-10)*2 msgbox(ans)四则运算的法则在编程中同样生效,你可以在编程中重新获得小学时候的乐趣第10页/共30页取余运算符 和 乘幂 在编程中有一个有趣的运算符是mod,这个运算符叫做取余运算符,就是取得一次除法的余数,例如 dim a a=16 mod 5 还有一个运算符是(就是键盘6上面的小箭头),他表示乘幂(或者是方)比如:dim a,b,c a=2 b=a
10、2 c=a3 msgbox(a)msgbox(c)第11页/共30页条件命令序列2If语句后面的下一条语句命令序列1YN分支结构的特点:每一条执行了的语句都只执行一遍。不重复执行;但有语句不执行。选择结构第12页/共30页选择结构if 判断式 if语句判断这个表达式的返回值是真还是假,如果是真(true)则执行then后面的语句,如果是假,则不执行 dim a,b a=12 b=13 if ab then msgbox(A小于B)msgbox(B大于A)end if 第13页/共30页if结构 If.Then.Else 语句根据表达式的值有条件地执行一组语句。If condition Then
11、 statements Else elsestatements 或者,使用块形式的语法:If condition Then statements ElseIf condition-n Then elseifstatements.Else elsestatements End If 参数condition 一个或多个下面两种类型的表达式:数值或字符串表达式,其运算结果是 True 或 False。如果 condition 是 Null,则 condition 被视为 False。形如 TypeOf objectname Is objecttype 的表达式。objectname 是任何对象的引用
12、,而 objecttype 则是任何有效的对象类型。如果 objectname 是 objecttype 所指定的一种对象类型,则表达式为 True;否则为 False。Statements 如果 condition 为 True 时,执行的一条或多条(以冒号分开)语句。condition-n 同 condition。elseifstatements 如果相关的 condition-n 为 True时,执行的一条或多条语句。elsestatements 如果前面没有 condition 或 condition-n 表达式为 True 时,执行的一条或多条语句。第14页/共30页IF的例子闰年判
13、断a=InputBox(请输入年,闰年判断)If(a Mod 4=0 And a Mod 100 0)Or(a Mod 400=0)Then MsgBox 是闰年Else MsgBox 不是闰年End If第15页/共30页循环结构条件命令序列命令序列break命令序列循环后面下一条语句NY在循环条件的范围内反复执行相同的循环体,称循环程序设计称循环程序设计。循环结构的特点:循环体中的语句,在条件满足的情况下,可反复执行第16页/共30页循环结构Do.Loop语句 do.loop的结构看上去非常简单,就是:do.loop,仅此而已,这个结构不断执行do和loop之间的语句(学名叫:循环体),在
14、do.loop结构中还有一个语句:exit do,这个语句将终止循环,跳到loop后面的语句继续执行举个例子:dim a pass=123456 do a=inputbox(请输入密码)if a=pass then msgbox(密码校验成功)exit do end if loop 第17页/共30页增强的例子dim a,ctrctr=0 设置计数器 pass=pas123_ 上面的那个是弱密码,这次改的强一点 do if ctr=3 then msgbox(已经达到认证上限,认证程序关闭)exit do else a=inputbox(请输入密码)if a=pass then msgbox(
15、认证成功)exit do else ctr=ctr+1 如果密码出错就增加一次错误认证计数 msgbox(认证出错,请检查密码)end if end if loop 第18页/共30页循环结构for.next 这种循环结构是基于计数的,也是在编程中最常见到的循环结构.dim i for i=0 to 5 msgbox(i)next 看到了吗?每次输出的i都是递增的,但我们没有明确指出i要递增,当i达到5的时候,循环就结束了,因为由0开始,所以 循环体执行了6次,这一点很重要,大部分东西都是从0开始而不是1.这个程序也可以写成 do的形式:dim i i=0 do while i5 msgbox
16、(i)i=i+1 因为do不能自动计数,必须手动加 loop 第19页/共30页例子Dim Start,EndValue,SumSum=0EndValue=100For Start=1 To EndValueSum=Start+SumNextMsgBox Sum第20页/共30页自定义函数和过程 函数是一个模块,只有你调用的时候才会运行,也就说,当你编写了一个函数,然后在程序中并不调用它,那么这个函数永远不会运行.一般来说,我们编写程序是按照:主程序.函数1.函数2.定义规则:Sub 函数名(参数1,参数2.参数n)列表可以是空的,但括号不能省略,参数之间用,分割.exit funciton
17、结束函数,不是必需的.end Subfunciton 函数名(参数1,参数2.参数n)列表可以是空的,但括号不能省略,参数之间用,分割.exit funciton 结束函数,不是必需的.end function 第21页/共30页Sub例子Call CalcSum(1,100010000)Sub CalcSum(x,y)Dim Start,SumSum=0EndValue=100For Start=x To ySum=Start+SumNextMsgBox SumEnd Sub 第22页/共30页Function例子MsgBox CalcSum(1,100000)Function CalcSu
18、m(x,y)Dim Start,SumSum=0EndValue=100For Start=x To ySum=Start+SumNextCalcSum=Sum MsgBox SumEnd Function第23页/共30页区别子程序或称之为过程与函数的差别 就在于:1)没有返回值,2)使用sub关键字定义,3)通过Call调用.具个例子第24页/共30页综合实例Option ExplicitCall QTP_WriteFile(c:NineNine.txt,NineNine)生成九九乘法表Function NineNineDim op1,op2,resultFor op1=1 To 9For
19、 op2=1 To 9 result=result&op1&*&op2&=&(op1*op2)result=result&Nextresult=result&vbCrLfNextNineNine=resultEnd Function写文件函数(追加)输入值:写入内容Public Function QTP_WriteFile(pathway,words)Dim fileSystemObj,fileSpec,logFile,way Set fileSystemObj=CreateObject(Scripting.FileSystemObject)fileSpec=pathway Set logFi
20、le=fileSystemObj.OpenTextFile(fileSpec,8,true)logFile.WriteLine(CStr(words)logFile.Close Set logFile=NothingEnd Function第25页/共30页此次教程未牵涉的内容数据类型常量数组传址调用 编程规范第26页/共30页作业编写一个阶乘函数或过程Function Factorial(num)编写一个是否质数判断函数Function IsPrimeNumber(num)改写26页代码,使得显示工整第27页/共30页VBS帮助第28页/共30页谢谢各位下一篇QuickTestProfessional的使用第29页/共30页感谢您的观看!第30页/共30页