51Testing软件测试论坛

标题: 【求助】描述性编程和自动化框架-FrameworkManage [打印本页]

作者: u03024218    时间: 2011-5-17 22:56
标题: 【求助】描述性编程和自动化框架-FrameworkManage
现在想学习一下这个框架,也是从论坛上找到的
http://bbs.51testing.com/viewthr ... hlight=%BF%F2%BC%DC

觉得这个框架很有意思。了解后,看了下librarys中的4个vbs脚本,也从网上找了一些资料。现在有一点疑问。

1.这个框架以excel作为存放对象库的属性值,但是他在qtp上的写法和描述性编程的写法有很大的不同
fm的写法:Call oRoot.GetLeaf("VB Demo_Example 1_Field 1").Input("Random")
描述性编程写法:Window("Text:=HyperSna").WinButton("Caption:= 日期 ").Click

我也没找到相关的解释,我想了解一下fm是如何能让qtp识别他这种写法的?谢谢
作者: iQuickTest    时间: 2011-5-18 07:41
标题: null
oroot是一个类,getleaf方法本身是一个树形结构字典对象,作用主要是复刻excel中的所有树形对象结构,并获取到对应的测试对象。好久很多没用了fm了。
作者: u03024218    时间: 2011-5-18 09:22
恩,以上在debug的时候发现了。现在就是想知道她实现描述性编程的原理。

昨天晚上我又看了下FrameworkManager.chm,看见这么一段
  1. If InStr(Me.Properties("DPID"), "%") > 0 Then
  2.             'Get the reference from a custom function
  3.             On Error Resume Next
  4.                 sIDString = Replace(Me.Properties("DPID"), "%", "")
  5.                 Execute "Set oRef = " & sIDString & "(" & Chr(34) & FullName & Chr(34) & ")"
  6.                 If Err.Number <> 0 Then
  7.                     Set oRef = Nothing
  8.                 End If
  9.             On Error Goto 0
  10.             
  11.             Set LoadQTPObject = oRef
  12.             Exit Function
  13.         End If
复制代码



这段代码是在 Private Function LoadQTPObject 中的,其中 Execute "Set oRef = " & sIDString & "(" & Chr(34) & FullName & Chr(34) & ")"
应该就是描述性编程中的 Set XXX= Window("Text:="HyperSna"")   这个格式
然后递归往上加节点(猜测....还没具体看)。


希望有了解的能给予指导。
同时谢谢楼上的解释~




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2