QTP自动化测试权威指南(4)

发表于:2015-02-28来源:uml.org.cn作者:不详点击数: 标签:自动化测
图3-11 用户自定义对象识别为Checkbox 对象库的不足 作者认为QTP 8.x的对象库有一些不足: 1)对象库管理器不允许批量更新对象属性到脚本。 2) 其他对象下面

  图3-11 用户自定义对象识别为Checkbox

  对象库的不足

  作者认为QTP 8.x的对象库有一些不足:

  1)对象库管理器不允许批量更新对象属性到脚本。

  2) 其他对象下面的对象不能被删除或复制。

  3)当一个框体(frame)被加入到了被测的应用程序中时,那么整个测试脚本都要重新录制。

  4)当重新录制一个页面或者窗体时,完全一样的对象经常会重复添加,因此,会创建很多相同的页面或窗体:Page_1, Page_2诸如此类。有时候这个问题可以通过更改Web设置来解决,

  打开Tools->Options…Web(Tab)->Page/Frame Options…然后更改设置如图3-12所示

  图3-12页面和框体选项

  小提示:以上所述的大多数的不足在 QTP9.x中已经得到解决

  第九章库函数文件

  库函数文件是包含VBScript脚本的纯文本格式文件,用来声明方法,变量,类等。库函数文件可以用任意后缀名,最常用的是VBS或者TXT。库函数文件可以用来组织存放不同功能的代码。它提供了在不同的QTP脚本中分享代码的方法。下面两节介绍加载库函数文件的两种方法。

  关联一个全局库函数文件

  通过这种方式库函数文件的同一实例可以被当前测试的所有Action共享和访问。如图9-1,打开 Test->Settings… ->Resources (标签页),添加库函数文件。

  图9-1 Test Resource配置

  小提示1:多个库函数文件加载顺序是从下到上。如果有两个库函数文件包含相同函数,那么会使用更靠近顶部的。

  小提示2:如果库函数文件B依赖库函数文件A中的内容,库函数文件A应在列表中更靠近底部。

  小提示3:QTP使用全路径名存放库函数文件。作为推荐选项,我们可以使用文件相对路径,如"..\test.vbs"

  运行时动态加载本地库函数文件

  QTP提供ExecuteFile方法可以在运行时动态加载库函数文件。使用这种方法时库函数文件及其内容只能在ExecuteFile执行的那个Action中可见。下面是一些例子:

'通过绝对路径加载库函数文件
ExecuteFile "C:\Test.vbs"

'通过相对路径加载库函数文件
currentTestDir = Environment("TestDir")
vbsFilePath = currentTestDir& "\..\..\CommonLibs\Test.vbs"
ExecuteFilevbsFilePath

'从Quality Center加载库
ExecuteFile "[QC-ATTACH];;Subject\CommonLibs;;\Test.vbs"

  小提示:如果ActionA和ActionB都通过ExecuteFile加载了test.vbs,同时ActionA调用ActionB,要注意他们对于所有test.vbs的变量和方法都只使用自己的副本和单独实例。

  运行时动态加载全局库函数文件

  如之前描述,在一个Action中直接使用 ExectueFile方法只能使库函数文件在当前Action可见。但是每个QTP测试脚本可能需要一组全局库,使得对其中所有的Action都可用。取代直接在Action中使用ExecuteFile来加载库的方法,我们在某个全局库中加载库函数文件,那么它将对所有Action可用。

'C: \LibLoader.vbs
Public Function ExecuteFileGlobal (ByValfileName)
ExecuteFilefileName
End Function

  我们可以将以上代码保存在一个VBS文件中并跟测试关联,使得在任意Action中都能通过调用ExecuteFileGlobal方法来加载文件。这样加载的文件在所有Action中都可以使用。

'在全局区域加载文件
ExecuteFileGlobal "C:\Test.vbs"

  但是当多个Action反复调用ExecuteFileGlobal会使某个库函数文件加载多次,这样每次都会破坏当前库函数文件中的全局变量的状态。

原文转自:http://www.uml.org.cn/Test/201307084.asp