2. Built-in Function優先級高于User-Defined Function。因此若存在同名的話,QTP會優先調用內置的Function
3. 通過RegisterUserFunc可以將自定義的函數注冊為特定對象的方法,甚至可以覆蓋原有對象的方法(Method)。通過UnRegisterUserFunc取消注冊
注冊方式:RegisterUserFunc TOClass, MethodName, FunctionName, True
反注冊方式:UnRegisterUserFunc TOClass, MethodName
4. 定義在Action中的Function以及注冊的Method只能在當前Action中使用,若需要供全局使用則定義到Function Library中
5. 如果Method在Action中注冊并且被其他Action調用時,該Method定義也適用于調用Action(Calling Action)。但如果Function定義在被調用Action中(Called Action),則Calling Action會因為找不到Function定義而失敗。這種情況的話,需要將Function 定義在Function Library中
6. QTP在測試執行前會清除所有的Method Register
7. 默認情況下,User-Defined Function的運行結果不會出現在Test Result中,可以自己用Reporter.ReportEvent添加log
8. QTP在打開Test時加載了關聯的Function Library,因此,若其他人或者你用其他編輯器修改了對應的Function Library,只有在QTP重新打開該Test后才生效
9. QTP搜索Function的順序是先Test在Function Library。另外,同名的Function存在于多個Function Library時,后一個被使用
10. 對于同一個Method先后注冊了兩個不同的Function,后面的Method注冊會覆蓋前面的。當用UnRegisterUserFunc反注冊時,會將該Method返回到原始狀態,而不會回到前一個注冊
11. 在某Action中使用ExecuteFile后,該Function只能在當前Action中使用
12. 對于存儲在QC中的外部資源,如Function Library,QTP打開時為其創建了一個本地副本。因此若其他人修改了QC上的外部資源,或你使用其他編輯器進行修改時,該修改只有在QTP重新打開該Test才生效。但對于存儲在本地的外部資源,不存在該問題
13. 在Test Settings中設置了Default Function Library列表后,新建Test時這些Library即被集成到新創建的Test中。以后對Default Function Library列表的修改對已有Test不產生任何影響。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/