要想使用QTP进行自动化测试,必须了解VBScript这门语言,对于使用过ASP或VB开发的人来说,VBScript已经再熟悉不过了,但是没有接触过VBScript的同学也不要灰心,因为这门语言简单易学。
7. 条件语句
8. 循环语句
9. 过程
VBScript中可以使用以下条件语句:
If…Then…Else语句结构如下:
If condition Then statements [Else elsestatements]
或者使用块形式
If condition Then [statements] [ElseIf condition-n Then [elseifstatements]] . . . [Else [elsestatements]] End If
主要参数:
对于短小简单的测试,可以使用单行形式(第一种语法),但块形式(第二种语法)提供了比单行形式更强的结构化与适应性,比较容易阅读、维护及调试。
'1. 条件为True时 '单行形式 Dim myDate myDate = #2011-9-8# '日期时间字符串需用#括起来 If myDate < Now Then myDate = Now '块形式 If i = 100 Then c = True i = 0 End If '2. 条件为True和False时 If user.UserName = "admin" Then showAdminPage = True Else showAdminPage = False End If '3. 对多个条件判断 If value = 0 Then MsgBox(0) ElseIf value = 1 Then MsgBox(9999) Else MsgBox("输入不合法!") End If
语法结构如下:
Select Case testexpression [Case expressionlist-n [statements-n]] . . . [Case Else expressionlist-n [elsestatements-n]] End Select
主要参数:
Select Case结构提供了If...Then...ElseIf结构的另一个变通形式,功能与If...Then...ElseIf类似,但可以使代码更加简练易读,它与Case语句关联使用。
Dim value : value = 5 '多条语句在一行,需用冒号分开 Select Case value Case 0: MsgBox(0) Case 1: MsgBox(9999) Case Else MsgBox("输入不合法!") End Select
VBScript中可以使用以下循环语句:
当(或直到)条件为True时循环,语法结构如下:
当条件为True时重复执行某语句块。
Do [{While | Until} condition] [statements] [Exit Do] [statements] Loop
当条件变为True之前重复执行某语句块。
Do [statements] [Exit Do] [statements] Loop [{While | Until} condition]
主要参数:
Exit Do可以退出循环体,循环可以嵌套使用。
Do Until response = vbNo myNum = Int(6 * Rnd + 1) '产生1到6之间的随机数 response = MsgBox(myNum & "想要另一个数吗?", vbYesNo) Loop Dim check, counter check = True : counter = 0 Do Do While count < 20 counter = counter + 1 '增加计数器 If counter = 10 Then check = false Exit Do '终止内循环 End If Loop Loop Until Not check
当条件为True时循环,语法结构如下:
While condition [statements] Wend
主要参数:
While…Wend没有Exit语句,从头一直循环到尾,若要在中途退出,则需用Do…Loop语句。
指定循环次数,使用计数器重复运行语句,语法结构如下:
For counter = start To end [Step step] [statements] [Exit For] [statements] Next
主要参数:
对于集合中的每项或数组中的每个元素,重复执行一组语句,语法结构如下:
For Each element In group [statements] [Exit For] [statements] Next [element]
主要参数:
在VBScript中,过程被分为两类:Sub过程和Function过程。
语法结构如下:
[Public [Default] | Private] Sub name [(arglist)] [statements] [Exit Sub] [statements] End Sub
主要参数:
如没有显式地指定使用Public或Private,则Sub过程默认为Public。调用Sub过程时,只需输入过程名及所有参数值,参数值之间使用逗号分隔。不需使用Call语句,但如果使用了此语句,则必须将所有参数包含在括号之中。调用Sub过程的两种方式。一种使用Call语句;另一种则不使用。两种方式效果相同,如:Call MySub(a, b)或MySub a, b。
语法结构如下:
[Public [Default]| Private] Function name [(arglist)] [statements] [name = expression] [Exit Function] [statements] [name = expression] End Function
主要参数:
如没有显式地指定使用Public或Private,则Function过程默认为Public。调用Function过程时,函数名必须用在变量赋值语句的右端或表达式中,如:b = MyFunction(a)。要从函数返回一个值,只需将值赋给函数名。在过程的任意位置都可以出现任意个这样的赋值。