2013-03-04 75 views
2

在QTP,有一个对象仓库,其存储对象。这些对象可以重用。重用意味着什么?该对象是否保存在内存中?....对象存储库只是一个xml文件,用于存储对象的属性,对吗?对象库如何工作以及它如何更快?

回答

2

对象仓库可以被认为是对象描述的储存库,而不是对象本身的储存库。 QTP根据您指定的特征使用对象库来标识运行时对象。当您首次录制某些动作时,只会存储默认的识别特征。您可以根据需要修改它们,例如,如果在运行时无法正确识别对象。 你是在指出该库实际上是正确的(“幕后”)只是一个XML结构,这使得它可以看它在编辑器中。 的“再利用”是指手段,从不同的测试,你可以参考同一个对象存储库,你会不会去通过识别和将对象添加到您的测试库的工作。一个例子可能是两个在W​​eb应用程序中使用数据表的测试。您可以创建一个共享存储库并使用其中包含的数据表描述来驱动与此表的两个测试交互,而不是创建两个特定于测试的存储库。 有它,你可以在运行时用来识别物体第二种方法:正则表达式。由于可维护性确实成为问题,因此在设计大型测试或测试集时,这些可能不太灵活;但是 - 他们往往是,恕我直言,比使用对象存储库快一点。 一个代码示例:

If Browser(“hwnd:=“ & browserTitle).Page(“url:=“ & pageUrl).Exist(0) then 
    'Do something... 
End If 

也可以添加浏览器对象存储库,或者只是使用上面的代码识别它。描述性编程是一种替代方案,但应该谨慎使用,而且主要围绕检查点。实际上,您可以在存储库中的对象标识属性中使用正则表达式,但这是一个不同的故事。让我知道你是否需要更多的信息。

希望这有助于给你一个概述。

1

对象可以被重复使用意味着可以使用存储在对象仓库在一个或多个测试和一次或多次在相同的测试中的对象。假设您有一个登录页面,该页面由2个应用程序共享(并且您正在为这两个应用程序维护2个不同的测试脚本)。 此页面包含用户名,密码和应用程​​序名称字段。

所以(Login_Page(父对象)和用户名,密码和APPLICATION_NAME(子对象))在对象库中的对象可以通过脚本的2个不同的应用程序共享。

对象存储作为试验的一部分(在.mtr格式 - 只提供给所述含脚本)和共享对象仓库(.tsr格式 - 可用于将其与相关联的任何脚本)。所以实际上它存储在本地系统或Quality Center或共享网络路径中。

的对象储存库被存储在专有格式(.mtr或.tsr),并且可以输出到XML格式。

相反的是,许多网站提到,对象访问窗体对象库与其他方法(如使用设置方法,描述编程等)相当类似的速度。访问对象所用的时间取决于存储库中对象的“深度”。

假设层次结构是Browser> Page> Frame> Field1,Field2 ...。

不管有多少浏览器对象如何在那里,采取接入* N *个浏览器对象的时间几乎保持平坦(这是“0级深”,页是“1级深”)。同样适用于其子对象。

我发现使用描述性编程和对象存储库设置一个值(比如说一个WebEdit框)的时间差在100次迭代中约为2秒(描述性编制速度更快)。

此外,QTP的官方文档都没有提到脚本执行脚本随着存储库大小的增长而受到影响。 (我已经测试了这个库,大小为194KB和38.5MB)。

0

使用术语regular expressions是错误的,他的意思是descriptive programming,在这个选项中,您正在交换异常更快的测试执行,以进行相当慢和更难的维护。

相关问题