QTP面向对象的框架

发表于:2009-12-21 13:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈能技(CSDNBlog)    来源:51Testing软件测试网采编

分享:

  在业务层的类中封装业务操作流程的代码,例如下面的登录流程:

' 登录业务类,封装了登录过程的业务操作流程
Class do_login
   Public Default Function Run()
        Dim intStatus
 
         Set objLogin = CreateLogin()      ' 调用GUI层的Login类
        If objLogin.Init() Then   ' 如果所需的界面对象都存在,则执行业务操作流程
            objLogin.SetUsername()
            objLogin.SetPassword()
            objLogin.Submit()          
            intStatus = micPass            'If login succeeds
        Else
            intStatus = micFail
        End If
 
        Run = intStatus
    End Function
End Class
 
Public Function Create_do_login()
    Dim bzLogin
    Set bzLogin = New do_login
    Set Create_do_login = bzLogin
End Function

  这种写法的好处,除了可以细粒度地抽象、分解业务的测试代码,提高可重用性外,还可以在业务层的代码执行前,先让界面层检查验证所需的测试对象是否都存在( 例如上面代码中的objLogin.Init() ),避免了QTP在运行过程中碰到对象不存在的时候卡住的现象。

  在界面层的Init方法中,通过描述性编程把测试对象都存入Dictionary中,然后用IsContextLoaded方法遍历对象,检查是否在运行时都存在:

' 检查界面层对象是否存在并写入测试报告
Public Function IsContextLoaded(ByRef htContext)
    Dim ix, items, keys, strDetails, strAdditionalRemarks
       IsContextLoaded=true
    items = htContext.Items
    keys = htContext.Keys
  
    For ix = 0 To htContext.Count-1
        IsContextLoaded = IsContextLoaded And items(ix).Exist(0)
        strDetails = strDetails & vbNewLine & "Object #" & ix+1 & ": '" & keys(ix) & "' was"
        If IsContextLoaded Then   
            intStatus = micPass
            strDetails = strDetails & ""
            strAdditionalRemarks = ""
        Else
            intStatus = micWarning
            strDetails = strDetails & " not"
            strAdditionalRemarks = " Please check the object properties."
        End If
        strDetails = strDetails & " found." & strAdditionalRemarks
    Next
 
    Reporter.ReportEvent intStatus, "IsContextLoaded", strDetails
End Function

推荐阅读:

QTP:GUI层——面向对象的扩展设计

22/2<12
100家互联网大公司java笔试题汇总,填问卷领取~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号