RegisterUserFunc為測試對象添加新方法或重寫已有方法
在實(shí)際的自動化腳本開發(fā)過程中,發(fā)現(xiàn)QTP提供的方法不夠用,但幸好QTP的擴(kuò)展性很強(qiáng),RegisterUserFunc函數(shù);
RegisterUserFunc函數(shù)既可以用戶自定義函數(shù)也可以重寫已有的方法
RegisterUserFunc TOClass, MethodName, FunctionName, SetAsDefault
說明:
TOClass 想要注冊方法的對象
MethodName 想要注冊的方法名稱,不能有空格
FunctionName 函數(shù)中自定義的函數(shù)名稱
SetAsDefault 是否要注冊為對象的默認(rèn)操作,值為:False,或者True
------------------------例子1:為webedit添加新方法----------------
需求:
1.為webedit添加一個方法,方法名為"NewMethod1"
2.該方法實(shí)現(xiàn)獲取webedit的默認(rèn)值,并將該值寫入reporter中
實(shí)現(xiàn)思路:
1.用vbs封裝一個方法實(shí)現(xiàn)獲取webedit的默認(rèn)值,并將該值寫入reporter中
2.利用RegisterUserFunc在qtp運(yùn)行時(shí)環(huán)境中注冊該函數(shù)
實(shí)現(xiàn)步驟:
1.以下代碼是用vbs封裝一個方法實(shí)現(xiàn)獲取webedit的默認(rèn)值,并將該值寫入reporter中。
將以下腳本保存為vbs文件,這里保存為test.vbs,保存于d:\
Sub GetDeafaultValue(objWebEdit)
WebEditDeafaultValue = objWebEdit.GetRoProperty("default value")
Reporter.ReportEvent micDone,"獲取WebEdit的默認(rèn)值","默認(rèn)值為:" & WebEditDeafaultValue
End Sub
2.加載函數(shù)test.vbs到qtp的運(yùn)行時(shí)環(huán)境中
加載有動態(tài)加載和靜態(tài)加載,本例采用動態(tài)加載方式
在qtp專家試圖第一行輸入如下代碼:
executefile "d:\test.vbs"
3.在qtp運(yùn)行時(shí)環(huán)境中注冊函數(shù)
在qtp專家試圖第二行輸入如下代碼:
RegisterUserFunc "WebEdit","NewMethod1","GetDeafaultValue"
4.webedit調(diào)用新注冊的NewMethod1方法
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").NewMethod1
打開百度首頁,按照1-4部操作,運(yùn)行qtp腳本,檢查reporter報(bào)告中已將webedit的默認(rèn)值寫入報(bào)告中.
上例本作者未自己再動手寫相關(guān)的例子,摘自:
http://www.51testing.com/?uid-306685-action-viewspace-itemid-829971