QTP自动化测试之VBScript基础.docx

上传人:b****5 文档编号:6658380 上传时间:2023-01-08 格式:DOCX 页数:14 大小:21.72KB
下载 相关 举报
QTP自动化测试之VBScript基础.docx_第1页
第1页 / 共14页
QTP自动化测试之VBScript基础.docx_第2页
第2页 / 共14页
QTP自动化测试之VBScript基础.docx_第3页
第3页 / 共14页
QTP自动化测试之VBScript基础.docx_第4页
第4页 / 共14页
QTP自动化测试之VBScript基础.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

QTP自动化测试之VBScript基础.docx

《QTP自动化测试之VBScript基础.docx》由会员分享,可在线阅读,更多相关《QTP自动化测试之VBScript基础.docx(14页珍藏版)》请在冰豆网上搜索。

QTP自动化测试之VBScript基础.docx

QTP自动化测试之VBScript基础

QTP自动化测试之VBScript基础

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

1.VBScript利器 

2.HelloWorld 

3.数据类型 

4.变量 

5.常数 

6.运算符

1.VBScript利器

子曰:

工欲善其事,必先利其器。

学习一门语言自然是离不开工具及文档,有好的工具及文档在手,学习起来也会得心应手。

在此,我推荐大家一个很不错的编辑工具——VbsEdit,该工具既能编辑代码,又可调试代码,有不错的智能提示,还有很多示例代码。

可惜不是免费使用,不过网上已经有绿色版,您可以搜索下载。

若你已经安装了QTP,那么使用QTP工具也是一个不错的选择。

参考文档可以使用在线版《MicrosoftWindows脚本技术》,也可以从网上搜索下载CHM文件。

2.HelloWorld

每种语言的入门都是一样,从简单的HelloWorld开始,我们也不例外。

如何使用VBScript来弹出一个对话框显示HelloWorld问候语呢?

很简单,代码如下:

1

2

3

4

MsgBox("Helloworld!

")

MsgBox"Helloworld!

"

result=MsgBox("HelloWorld!

",vbOKOnly,"Greeting")

MsgBox"HelloWorld!

",vbOKOnly,"Greeting"

既然在此出现的第一个函数是MsgBox,那么就简单介绍一下该函数,其签名如下:

1

MsgBox(prompt[,buttons][,title][,helpfile,context])

主要参数:

∙prompt:

为要显示的消息,其他带[]参数为可选参数;

∙buttons:

为显示对话框按钮及类型,默认值为0,即只显示“确定”按钮;

∙title:

为对话框标题栏文字。

MsgBox函数也有返回值,当你点击确定或取消按钮时,其返回的值是不一样的。

其他详细内容,大家可以去查阅参考文档,这里就不逐一说明。

3.数据类型

VBScript只有一种数据类型——Variant,它是根据上下文来判断是数字还是字符串。

因为Variant是VBScript中唯一的数据类型,所以它也是VBScript中所有函数的返回值的数据类型。

为了进一步区分数据类型,它包含如下数据子类型:

子类型

描述

Empty

未初始化的Variant。

对于数值变量,值为0;对于字符串变量,值为零长度字符串("")。

Null

不包含任何有效数据的Variant。

Boolean

包含True或False。

Byte

包含0到255之间的整数。

Integer

包含-32,768到32,767之间的整数。

Currency

-922,337,203,685,477.5808到922,337,203,685,477.5807。

Long

包含-2,147,483,648到2,147,483,647之间的整数。

Single

包含单精度浮点数,负数范围从-3.402823E38到-1.401298E-45,正数范围从1.401298E-45到3.402823E38。

Double

包含双精度浮点数,负数范围从-1.79769313486232E308到-4.94065645841247E-324,正数范围从4.94065645841247E-324到1.79769313486232E308。

Date(Time)

包含表示日期的数字,日期范围从公元100年1月1日到公元9999年12月31日。

String

包含变长字符串,最大长度可为20亿个字符。

Object

包含对象。

Error

包含错误号。

您可以使用转换函数(CInt,CStr等等)来转换数据的子类型。

另外,可使用VarType函数返回数据的Variant子类型。

4.变量

4.1.变量声明

变量声明有两种方式——显式与隐式,显式使用Dim、Public、Private语句进行声明,隐式直接使用变量名。

使用隐式声明方式的习惯不好,因为这样有时会由于变量名拼错而导致程序运行出现意外,因此,最好在每个脚本开始第一行使用OptionExplicit语句强制显式声明所有变量。

声明示例如下:

1

2

3

4

Option Explicit

Dim i,conn  '声明多个变量时用逗号隔开

Public UserName,Password

Private m_id

注意:

在VBScript中,变量名是不区分大小写,即userName与UserName是指同一个变量。

4.2.命名规则

VBScript中变量命名是有其规则标准的,变量命名必须遵循:

∙第一个字符必须是字母。

∙不能包含嵌入的句点。

∙长度不能超过255个字符。

∙在被声明的作用域内必须唯一。

4.3.作用域与存活期

变量的作用域由声明它的位置所决定。

如果在过程中声明的,则只有该过程可以使用,即过程级变量;如果在过程之外声明的,则该变量可以被脚本中所有过程所使用,即Script级变量。

变量所存在的时间为存活期。

Script级变量的存活期为从被声明开始,直到脚本运行结束为止;过程级变量的存活期仅是过程被调用执行开始到结束的时间。

不同的过程可以使用相同的变量名,因为局部变量只有声明它的过程才能识别。

4.4.变量赋值

给变量赋值很简单,使用等号进行赋值,等号左边为变量名,右边为变量值。

若该变量是对象引用级别的,则需使用Set语句。

示例代码如下:

1

2

3

4

Dim i,conn,ui

i=0

Set conn=CreateObject("ADODB.Connection")

Set ui=New UserInfo

4.5.标量与数组

只包含一个值的变量成为标量变量;有时候为了方便将一组相关值赋给一个变量,则成为数组变量。

区别标量与数组的唯一方式是声明时数组变量名后面带有括号()。

变量声明就不说了,前面已经提到,这里我们看看怎样声明一维数组及多维数组(最大60维——:

)只要您能够理解)。

1

2

3

4

5

6

7

8

9

Dim a(9),table(2,3)

a(0)=1

...

a(9)=11

MsgBox(a

(1))  '输出数组变量值

 

table(0,0)=1

...

table(2,3)=10

我们也可以声明动态数组(在运行脚本时大小发生变化的数组),使用Dim或ReDim语句,但括号中不包含任何数字。

要使用动态数组,必须随后使用ReDim确定维数和每一维的大小。

若同时使用Preserve关键字,则在重新调整大小时保留数组的内容。

1

2

3

4

Dim count,a()

count=9

ReDim a(count)

ReDim Preserve a(10)

5.常数

常数在VBScript中是表示不变的值,用于代替数字或字符串。

其内部定义了许多常数,都是以vb开头,例如在HelloWorld程序中涉及到的MsgBox常数“vbOKOnly”。

除了MsgBox常数外,还有颜色常数、比较常数、日期和时间常数等等,详见参考文档。

内部自带常数,我们可以直接使用。

当自带常数不能满足我们的需求时,我们也可以自定义常数,在VBScript中是使用Const语句来定义常数,该语句的签名如下:

1

[Public |Private]Const constname=expression

主要参数:

∙constname:

为常数名称,为了区分常数与变量,最好有一套自己的命名规则,这里推荐字母全大写,单词间用下划线分割;

∙expression:

文字或其他常数,或包括除 Is 外的所有算术运算符和逻辑运算符的任意组合。

常数默认是Public级别,您也可以指定为Private级别,在同一行中声明多个常数需要用逗号分割,常数声明中不能使用变量、自定义函数及内部函数。

下面是常数的一些示例代码:

1

2

3

Const PI=3.14  '常数默认为公有。

Private Const STEP_APPLY="Apply"   '定义私有常数。

Const STEP_APPLY="Apply",PI =3.14  '在一行上定义多个常数。

6.运算符

VBScript有一套完整的运算符,包括算术运算符、比较运算符、连接运算符和逻辑运算符。

当表达式中含有多个运算符时,它们的运算优先级是:

算术运算符>比较运算符>逻辑运算符。

所有比较运算符的优先级相同,算术运算符和逻辑运算符的优先级如下所示:

6.1.算术运算符

描述

符号

求幂

^

负号

-

*

/

整除

\

求余

Mod

+

-

字符串连接

&

字符串连接(&)运算符不是算术运算符,但是在优先级顺序中,它排在所有算术运算符之后和所有比较运算符之前。

6.2.逻辑运算符

描述

符号

逻辑非

Not

逻辑与

And

逻辑或

Or

逻辑异或

Xor

逻辑等价

Eqv

逻辑隐含

Imp

6.3.比较运算符

描述

符号

等于

=

不等于

<>

小于

<

大于

>

小于等于

<=

大于等于

>=

对象引用比较

Is

Is运算符是对象引用比较运算符。

它并不比较对象或对象的值,而只是进行检查,判断两个对象引用是否引用同一个对象。

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

7.条件语句

8.循环语句

9.过程

7.条件语句

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

∙If…Then…Else语句

∙SelectCase语句

7.1.If…Then…Else语句

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

1

If conditionThen statements[Else elsestatements]

或者使用块形式

1

2

3

4

5

6

7

If conditionThen

    [statements]

[ElseIf condition-nThen

    [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

'块形式

If i=100Then

    c=True

    i=0

End If

 

'2.条件为True和False时

If user.UserName="admin" Then

    showAdminPage=True

Else

    showAdminPage=False

End If

 

'3.对多个条件判断

If value=0Then

    MsgBox(0)

ElseIf value=1Then

    MsgBox(9999)

Else

    MsgBox("输入不合法!

")

End If

7.2.SelectCase语句

语法结构如下:

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中的任意部分匹配时,执行的一条或多条语句。

SelectCase结构提供了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语句

∙ForEach...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时被重复执行的一条或多条命令。

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

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=10Then

            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=startTo end[Step step]

    [statements]

    [Exit For]

    [statements]

Next

主要参数:

∙counter:

用做循环计数器的数值变量。

这个变量不能是数组元素或用户自定义类型的元素。

∙start:

counter的初值。

∙end:

counter的终值。

∙step:

counter的步长。

如果没有指定,则step的默认值为1。

8.4.ForEach…Next语句

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

1

2

3

4

5

For Each elementIn group

    [statements]

    [Exit For]

    [statements]

Next [element]

主要参数:

∙element:

用来枚举集合或数组中所有元素的变量。

对于集合,element可能是Variant变量、通用Object变量或任意指定的Automation对象变量。

对于数组,element只能是Variant变量。

∙group:

对象集合或数组的名称。

9.过程

在VBScript中,过程被分为两类:

Sub过程和Function过程。

9.1Sub过程

语法结构如下:

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语句;另一种则不使用。

两种方式效果相同,如:

CallMySub(a,b)或MySuba,b。

9.2Function过程

语法结构如下:

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.3Sub与Function的区别

∙Sub没有返回值,而Function有返回值。

∙Sub不能放在表达式中,而Function可以。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1