在QTP中如何使用Class(类)

上一篇 / 下一篇  2010-01-19 14:55:12 / 个人分类:QTP学习

大家知道VB是面向对象的,其中Class(类)是一个“模板”,对象是由它而创建的。类中的代码描述了从该类创建的对象的特性 (attribute) 和行为。
        虽然Class(类)不是对象,但是它的确有定义其特性 (attribute) 的设计时属性 (property) 和定义其行为的事件。
        类里的数据,是相对于类实例(也就是,由类创建的每一对象)而独立存在的。
        也就是说,它存在于程序的存活期中;而类实例中的数据只存在于对象的存活期,它随对象的创建而创建,随对象的撤消而消失。
        在编程的时候使用Class正是符合了OO(面向对象封装)的编程原则,我们在使用QTP进行自动化测试编程的时候也要时刻牢记这一原则,进行脚本设计。
        然而,如何在QTP中使用Class呢,以下是本人写的一个在QTP中使用Class的例子,大家直接把它粘贴到QTP的Expert View中就能看到效果了:)


'****************************************************************
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

此处对QTP类的使用进行一些总结。

'类名称

Class TestCase

      Private DataFile

      

      ' ----用例预置条件

      Private Function CasePrepare()

             

      End Function

      

      ' ----测试数据输入

      Public Function CaseData(byval RowNum)

             

      End Function

      

      ' ----测试执行

      Public Function CaseRun()

             

      End Function

      

      ' ----测试结果检查

      Public Function CaseCheck()

             

      End Function

      

      '获取测试用例号

      Public Property Get CaseID()

             CaseID = "TestCase_0001"

      End Property

      

      '获取测试用例名称

      Public Property Get CaseName()

             CaseName = "用户登录"

      End Property

      

      '----构造函数----

      Private Sub Class_Initialize() 

             DataFile = "C:\autotest\data.xls"

             

             Call CasePrepare()

   End Sub

      

      '----解构函数----

      Private Sub Class_Terminate()

             

      End Sub

 

End Class

 

其中Class_initialize为构造函数,类初始化时调用,此处预设了数据文件,并在此处调用了用例预置函数。

Class_Terminate为解构函数,一般用于释放类执行过程种占用的内存等

Property Get用于获取类的属性,此处获取该测试用例类的ID,和名称属性

 

模拟测试用例,类中包含了测试用例的几个部分:

CasePrepare测试预置条件,如测试用户登录,此处可以判断登录界面是否已经显示

Casedata:测试数据准备,如测试用户登录,此处可以载入登录用户、登录密码等数据

CaseRun:测试执行,如测试用户登录,此处可以执行输入验证码,点击登录按钮等操作

CaseCheck:执行结果检查,如测试用户登录,此处可以对登录结果进行检查,如页面是否正确跳转,如用户、密码不对,是否正确显示提示信息等。

 

具体在QTP中的使用如下:

Dim CaseLogin

Set CaseLogin = New TestCase

CaseLogin.CaseData 2载入数据文件中的第2行数据作为测试输入

CaseLogin.CaseRun

If CaseLogin.CaseCheck Then

 Case_LogInfo “测试用例”CaseLogin. CaseID & “测试通过!”,MicPass

Else

Case_LogError “测试用例”CaseLogin. CaseID & “测试失败!”,MicFail

End If

 

本文来源于51testing网。。。。


TAG:

 

评分:0

我来说两句

日历

« 2024-05-22  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 17319
  • 日志数: 19
  • 建立时间: 2009-07-31
  • 更新时间: 2010-06-24

RSS订阅

Open Toolbar