QTP自动化测试之VBScript基础(下)

转载 2015年11月20日 00:26:09

QTP自动化测试之VBScript基础(下)

要想使用QTP进行自动化测试,必须了解VBScript这门语言,对于使用过ASP或VB开发的人来说,VBScript已经再熟悉不过了,但是没有接触过VBScript的同学也不要灰心,因为这门语言简单易学。

7. 条件语句
8. 循环语句
9. 过程

7. 条件语句

VBScript中可以使用以下条件语句:

  • If…Then…Else语句
  • Select Case语句

7.1. If…Then…Else语句

If…Then…Else语句结构如下:

1
If condition Then statements [Else elsestatements]

或者使用块形式

1
2
3
4
5
6
7
If condition Then
    [statements]
[ElseIf condition-n Then
    [elseifstatements]] . . .
[Else
    [elsestatements]]
End If

主要参数:

  • condition:为一个(多个)数值或字符串表达式,其运算结果为True或False,若condition为Null,则被视为False。
  • statements:为condition等于True时执行的一条或多条(以冒号分开)语句。

对于短小简单的测试,可以使用单行形式(第一种语法),但块形式(第二种语法)提供了比单行形式更强的结构化与适应性,比较容易阅读、维护及调试。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
'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

7.2. Select Case语句

语法结构如下:

1
2
3
4
5
6
Select Case testexpression
    [Case expressionlist-n
        [statements-n]] . . .
    [Case Else expressionlist-n
        [elsestatements-n]]
End Select

主要参数:

  • testexpression:任意数值或字符串表达式。
  • statements:当testexpression与expressionlist-n中的任意部分匹配时,执行的一条或多条语句。

Select Case结构提供了If...Then...ElseIf结构的另一个变通形式,功能与If...Then...ElseIf类似,但可以使代码更加简练易读,它与Case语句关联使用。

1
2
3
4
5
6
7
8
9
Dim value : value = 5   '多条语句在一行,需用冒号分开
Select Case value
    Case 0:
        MsgBox(0)
    Case 1:
        MsgBox(9999)
    Case Else
        MsgBox("输入不合法!")
End Select

8. 循环语句

VBScript中可以使用以下循环语句:

  • Do...Loop语句
  • While...Wend语句
  • For...Next语句
  • For Each...Next语句

8.1. Do…Loop语句

当(或直到)条件为True时循环,语法结构如下:

当条件为True时重复执行某语句块。

1
2
3
4
5
Do [{While | Until} condition]
    [statements]
    [Exit Do]
    [statements]
Loop

当条件变为True之前重复执行某语句块。

1
2
3
4
5
Do
    [statements]
    [Exit Do]
    [statements]
Loop [{While | Until} condition]

主要参数:

  • condition:数值或字符串表达式,其值为True或False。如果condition为Null,则condition被当作False。
  • statements:当condition为True时被重复执行的一条或多条命令。

Exit Do可以退出循环体,循环可以嵌套使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

8.2. While…Wend语句

当条件为True时循环,语法结构如下:

1
2
3
While condition
    [statements]
Wend

主要参数:

  • condition:数值或字符串表达式,其值为True或False。如果condition为Null,则condition被当作False。
  • statements:当condition为True时被重复执行的一条或多条命令。

While…Wend没有Exit语句,从头一直循环到尾,若要在中途退出,则需用Do…Loop语句。

8.3. For…Next语句

指定循环次数,使用计数器重复运行语句,语法结构如下:

1
2
3
4
5
For counter = start To end [Step step]
    [statements]
    [Exit For]
    [statements]
Next

主要参数:

  • counter:用做循环计数器的数值变量。这个变量不能是数组元素或用户自定义类型的元素。
  • start:counter的初值。
  • end:counter的终值。
  • step:counter的步长。如果没有指定,则step的默认值为1。

8.4. For Each…Next语句

对于集合中的每项或数组中的每个元素,重复执行一组语句,语法结构如下:

1
2
3
4
5
For Each element In group
    [statements]
    [Exit For]
    [statements]
Next [element]

主要参数:

  • element:用来枚举集合或数组中所有元素的变量。对于集合,element可能是Variant变量、通用Object变量或任意指定的Automation对象变量。对于数组,element只能是Variant变量。
  • group:对象集合或数组的名称。

9. 过程

在VBScript中,过程被分为两类:Sub过程和Function过程。

9.1 Sub过程

语法结构如下:

1
2
3
4
5
[Public [Default] | Private] Sub name [(arglist)]
    [statements]
    [Exit Sub]
    [statements]
End Sub

主要参数:

  • Public:表示Sub过程可被所有脚本中的所有其他过程访问。
  • Default:只与Class块中的Public关键字连用,用来表示Sub过程是类的默认方法。如果在类中指定了不止一个Default过程,就会出错。
  • Private:表示Sub过程只可被声明该过程的脚本中的其他过程访问。
  • name:Sub的名称,遵循标准变量命名规则。
  • arglist:代表在调用时要传递给Sub过程的参数的变量列表。用逗号隔开多个变量。其语法为:[ByVal | ByRef] varname[()],ByVal表示该参数是按值传递的,ByRef表示该参数按引用传递,varname代表参数的变量名称。

如没有显式地指定使用Public或Private,则Sub过程默认为Public。调用Sub过程时,只需输入过程名及所有参数值,参数值之间使用逗号分隔。不需使用Call语句,但如果使用了此语句,则必须将所有参数包含在括号之中。调用Sub过程的两种方式。一种使用Call语句;另一种则不使用。两种方式效果相同,如:Call MySub(a, b)或MySub a, b。

9.2 Function过程

语法结构如下:

1
2
3
4
5
6
7
[Public [Default]| Private] Function name [(arglist)]
    [statements]
    [name = expression]
    [Exit Function]
    [statements]
    [name = expression]
End Function

主要参数:

  • Public:表示Function过程可被所有脚本中的所有其他过程访问。
  • Default:只与Class块中的Public关键字连用,用来表示Function过程是类的默认方法。如果在类中指定了不止一个Default过程,就会出错。
  • Private:表示Function过程只可被声明该过程的脚本中的其他过程访问。
  • name:Function的名称,遵循标准变量命名规则。
  • arglist:代表在调用时要传递给Function过程的参数的变量列表。用逗号隔开多个变量。其语法为:[ByVal | ByRef] varname[()],ByVal表示该参数是按值传递的,ByRef表示该参数按引用传递,varname代表参数的变量名称。

如没有显式地指定使用Public或Private,则Function过程默认为Public。调用Function过程时,函数名必须用在变量赋值语句的右端或表达式中,如:b = MyFunction(a)。要从函数返回一个值,只需将值赋给函数名。在过程的任意位置都可以出现任意个这样的赋值。

9.3 Sub与Function的区别

  • Sub没有返回值,而Function有返回值。
  • Sub不能放在表达式中,而Function可以。

QTP自动化测试之VBScript基础(下)

要想使用QTP进行自动化测试,必须了解VBScript这门语言,对于使用过ASP或VB开发的人来说,VBScript已经再熟悉不过了,但是没有接触过VBScript的同学也不要灰心,因为这门语言简单易...
  • lykangjia
  • lykangjia
  • 2017年02月10日 09:40
  • 153

QTP自动化测试之VBScript基础

要想使用QTP进行自动化测试,必须了解VBScript这门语言,对于使用过ASP或VB开发的人来说,VBScript已经再熟悉不过了,但是没有接触过VBScript的同学也不要灰心,因为这门语言简单易...
  • cometwo
  • cometwo
  • 2014年08月14日 20:50
  • 1557

QTP自动化测试之VBScript基础(上)

要想使用QTP进行自动化测试,必须了解VBScript这门语言,对于使用过ASP或VB开发的人来说,VBScript已经再熟悉不过了,但是没有接触过VBScript的同学也不要灰心,因为这门语言简单易...
  • lykangjia
  • lykangjia
  • 2017年02月10日 09:35
  • 161

QTP自动化测试之VBScript基础(上)

QTP自动化测试之VBScript基础(上) 要想使用QTP进行自动化测试,必须了解VBScript这门语言,对于使用过ASP或VB开发的人来说,VBScript已经再熟悉不过了,但是没有接触过...
  • splenday
  • splenday
  • 2015年11月20日 00:23
  • 554

自动化测试工具QTP的使用实例

QTP功能与特点QTP是QuickTest Professional的简称,是一种自动化软件测试工具。在软件的测试过程中,QTP主要来用来通过已有的测试脚本执行重复的手动测试,用于功能测试和回归测试。...
  • K346K346
  • K346K346
  • 2015年06月17日 00:23
  • 10755

QTP-C/S客户端功能自动化测试

目的:该CS客户端系统已经比较稳定,后期的维护性测试只是小部分功能的新增或者修改,每次维护性测试如果将所有的功能都过一遍花费时间太多,但是不测试一遍的话,总会有些功能被开发修改后出现明显错误,目的是在...
  • qq_15158911
  • qq_15158911
  • 2016年12月04日 16:13
  • 2541

QTP自动化测试之VBScript对象

QTP自动化测试之VBScript对象 VBScript作为脚本语言不仅能够编写简单的脚本,而且还能够创建及使用对象编写复杂的脚本,如Class对象,数据字典,操作文件夹及文件,错误处理,正则表达式...
  • splenday
  • splenday
  • 2015年11月20日 00:28
  • 403

自动化测试工具QTP的学习

QTP的运行原理: QTP会通过“用户名输入框”这个名字到对象库的对象名中查找,会找到以下这个对象名,然后通过找到的对象名,找到对象名映射的属性包,脚本就是通过控件的对象名找到仓库中的对象名,通过对象...
  • TEST_littlesun
  • TEST_littlesun
  • 2016年03月11日 11:28
  • 412

【自动化测试工具】QTP/UFT入门

准备工作: QTP11.5安装教程:http://www.iquicktest.com/qtp-uft-11-5-download.html 注: QuickTest Pro(QTP)11.5后更...
  • sanlengjingvv
  • sanlengjingvv
  • 2014年01月20日 14:34
  • 32470

QTP/UFT自动化框架分析,QTP缺点与改进。

自动化框架的一些构思 ★通过QTP现有的功能管理脚本,对象和数据的缺点 1.脚本文件过大: 主要是两方面原因导致, 一是对象库的文件,默认生成得每个空的对象库文件为192K,这样一个空的QT...
  • liuxueyi521
  • liuxueyi521
  • 2016年03月26日 22:06
  • 1253
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QTP自动化测试之VBScript基础(下)
举报原因:
原因补充:

(最多只允许输入30个字)