51Testing独家连载:(五十七)精通QTP——自动化测试技术领航

发表于:2012-3-05 10:24

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

 作者:余杰 赵旭斌    来源:51Testing软件测试网

分享:

  下面讲另一个重要的函数,用过QTP的应该知道,当QTP在运行时,测试对象一旦发生变化,如与对象库中的对象无法匹配时,QTP就会停止运行直到超时,然后弹出错误框。在QC里执行也是一样,只是没有出现错误框,这样的情况会导致在自动化测试中浪费很多时间。因此,在GUI层中的Init函数的最后加入了IsContextLoaded函数,此函数的作用就是,检查GUI层中所有对象是否已经存在,并且把结果进行返回,实现程序如下:

Public Function IsContextLoaded(ByRef htContext)

Dim allExist, ix, aItems, aKeys, strDetails, strAdditionalRemarks

allExist = True

aItems = htContext.Items

aKeys = htContext.Keys

For ix = 0 To htContext.Count-1

IsContextLoaded = aItems(ix).Exist(0)

strDetails = strDetails & vbNewLine & _

"Object #" & ix+1 & ": '" & akeys(ix) & "' was"

If IsContextLoaded Then

          strDetails = strDetails & ""

          strAdditionalRemarks = ""

Else

          strDetails = strDetails & " not"

          strAdditionalRemarks = " Please check the object properties"

          allExist = False

End If

IsContextLoaded = IsContextLoaded And allExist

Select Case IsContextLoaded

          Case True intStatus = micPass

          Case False intStatus = micWarning

End Select

strDetails = strDetails & " found." & strAdditionalRemarks

Next

Reporter.ReportEvent intStatus, "IsContextLoaded", strDetails

End Function

  由于QTP不提供从外部文件中读取类的方法,因此,在这里添加一个创建类的函数,接着就是把外部文件封装好,直接保存为*.vbs后就可以为QTP运行服务了:

Public Function CreateLogin()

  Dim objLogin

  Set objLogin = New BaiduSearch

  Set CreateLogin = objLogin

End Function

5.2.3  调用业务行为

  在QTP中加载之前保存的VBS cript文件后,在专家视图中输入图5-2所示的脚本,就可以完成业务行为的调用。

图5-2

  当脚本执行完毕后,会在结果报告中显示对象是否存在,如果在运行时出现某个对象不能识别,或者说出现属性不匹配的情况,QTP就会立刻退出,并在结果报告中显示不匹配的那个对象来方便我们进行定位,其实这也是本设计模式的一个比较明显的优势。

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号