QTP中类的使用

Call Test

Class Tester

        Dim mvarTesterName,mvarAge,mvarGender       
       
        Sub Class_Initialize   '构造函数
               MsgBox  "接下来,大家欢迎新同事的到来!"
        End Sub
       
        Sub Class_Terminate  '析构函数
                If mvarGender Then
                    MsgBox "很遗憾," & mvarTesterName & "先生脱离了测试行业!"
                Else
                    MsgBox "很遗憾," & mvarTesterName & "女士脱离了测试行业!"
                End If
        End Sub

        Sub Test(ByVal ProjectName)
                MsgBox mvarTesterName & "正在加班加点的测试" & ProjectName & "呢!"
        End Sub
       
        Sub Eat(ByVal food)
                MsgBox mvarTesterName & "正在吃" & food & "呢,好爽啊!"
        End Sub
       
        Property Let Gender(ByVal vData)
            mvarGender = vData            
        End Property
       
        Property Get Gender()
            Gender = mvarGender
        End Property
       
        Property Let Age(ByVal vData)
            mvarAge = vData
        End Property
       
        Property Get Age()
            Age = mvarAge
        End Property
       
        Property Let TesterName(ByVal vData)
            mvarTesterName = vData
        End Property
       
        Property Get TesterName()
            TesterName = mvarTesterName
        End Property
   
End Class



Sub Test()
        Set sb = New Tester  '创建一个对象,对象名叫somebody,它是由Tester创建出来的
        sb.TesterName = "songfun"
        sb.Age = 29
        sb.Gender = True
        sb.Eat "HagenDaz"
        sb.Test "手机"
        If sb.Gender Then
                MsgBox sb.TesterName & "先生年方" & sb.Age
   Else
                MsgBox sb.TesterName & "女士芳龄" & sb.Age
        End If
        Set sb = Nothing
End Sub
相信对JAVA有一定了解的朋友一定对类这个名词不陌生,但是大家可能没有想过在VBS中使用Class类吧,其实Class类在自动化测试中是相当常用的,对于代码量增大时,类的结构化就充分体现出了它强大的优势,下面我们就来看一下类的组成部分以及一些用法。

  初始化与终结化的应用

使用Class语句可以创建一个对象,可以为它编写字段、属性及方法,它只有两个对象事件——Initialize与Terminate。首先来看一个简单的Class示例:

 

1
2
3
4
5
6
7
8
9
10
11
Set MyUser = New User
Class User
    'Initialize事件相当于构造函数
    Private Sub Class_Initialize  '当这个类被创建时执行
        MsgBox "类开始"
End Sub
'Terminate事件相当于析构函数
    Private Sub Class_Terminate  '当类被销毁时执行
        MsgBox "类结束"
    End Sub
End Class
 

   Get与Set的应用    

Class里面使用Let语句,设置属性值、Get语句,获取属性值或对象引用。具体示例如下:

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
27
28
29
30
31
32
33
34
35
Set MyUser = New User
MyUser.MyAge = "22" '设置对象的MyAge属性值
MyUser.Myname = "Sirrah" '设置对象的Myname属性值
MyUser.ToString '调用对象的ToString方法 
 
Class User
    Private Str_Name '声明变量Str_Name
    Private Int_Age  '声明变量Int_Age 
 
    'Property Get语句,获取属性值或对象引用,Default只与Public一起使用,表示该属性为类的默认属性
    Public Property Get Myname
        Myname = Str_Name
    End Property  
 
    Public Property Get MyAge
        MyAge = Int_Age
    End Property
 
    'Property Let语句,设置属性值
    Public Property Let Myname(New_Name)
        Str_Name = New_Name
    End Property   
 
    Public Property Let MyAge(New_Age)
        Int_Age = new_age
    End Property  
 
    '类方法
 
    Public Sub ToString()
        MsgBox "姓名:"+Me.Myname+" 年龄:"+Me.MyAge
        'Me相当于Java里面的This
    End Sub
 
End Class
        如何调用对象

用VBScript创建的对象并不是真正的面向对象,它不能继承和实现多态,但是在QTP对象模型Utility中,提供了一个RegisterUserFunc方法可以覆写对象的方法,但这也不是真正意义上的面向对象。Class及其成员如何创建,上面已经简单介绍过,若要对其中的一些语句进一步了解,还需要去仔细阅读一些参考文档。下面我们来看看如何调用对象:

 

1
2
3
4
Dim MyUser      '定义对象变量名,注意变量名不能与类名相同,即使是大小写不同
Set MyUser = New User       '创建对象用New语句
MyUser.UserName = "Sirrah"   '给属性赋值
MyUser.ToString()    '调用方法

 

你可能感兴趣的:(VBScript,VBScript)