u03024218 发表于 2011-5-17 22:56:03

【求助】描述性编程和自动化框架-FrameworkManage

现在想学习一下这个框架,也是从论坛上找到的
http://bbs.51testing.com/viewthread.php?tid=187112&highlight=%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:20

null

oroot是一个类,getleaf方法本身是一个树形结构字典对象,作用主要是复刻excel中的所有树形对象结构,并获取到对应的测试对象。好久很多没用了fm了。

u03024218 发表于 2011-5-18 09:22:12

恩,以上在debug的时候发现了。现在就是想知道她实现描述性编程的原理。

昨天晚上我又看了下FrameworkManager.chm,看见这么一段If InStr(Me.Properties("DPID"), "%") > 0 Then
            'Get the reference from a custom function
            On Error Resume Next
                sIDString = Replace(Me.Properties("DPID"), "%", "")
                Execute "Set oRef = " & sIDString & "(" & Chr(34) & FullName & Chr(34) & ")"
                If Err.Number <> 0 Then
                  Set oRef = Nothing
                End If
            On Error Goto 0
            
            Set LoadQTPObject = oRef
            Exit Function
      End If



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


希望有了解的能给予指导。
同时谢谢楼上的解释~
页: [1]
查看完整版本: 【求助】描述性编程和自动化框架-FrameworkManage