腳本的朋友們都會碰到多個Action之間傳遞參數的問題,想當年我也是研究了好久才成功的,網上雖然有很多文章都在講這個問題,但是大多都是雷同的抄來抄去不能解決實際問題,也有可能是我太笨了吧。下面我們來詳細講一下QTP多個Action之間傳遞參數的方法。
一、假設Action1調用Action2并且Action1傳遞參數給Action2
1、Action1的代碼及設定
'定義兩個變量
Dim strMessA:strMessA = "我是"
Dim strMessB:strMessB = "一個傳遞的參數"
'調用Action2,并傳參
RunAction "Action2", oneIteration, strMessA, strMessB
在資源管理中的Action1上點右鍵-操作屬性-參數頁籤,設定輸出參數。
2、Action2中的代碼及設定
Dim strMessA:strMessA = ""
Dim strMessB:strMessB = ""
Dim strMess:strMess = ""
'接參
strMessA = parameter("strMessA")
strMessB = parameter("strMessB")
strMess = strMessA&strMessB
msgbox(strMess)
同樣設定參數頁籤,這裡設定的是 輸入參數。
3、運作Action1的結果:
參數傳遞成功。strMessA和strMessB是兩個傳遞的變量,在Action1裡設定輸出參數,在Action2裡設定輸入參數,并且在Action2裡用strMessA = parameter("strMessA")中的parameter方法接參數。
二、假設Action1調用Action2并且Action2傳遞參數給Action1,也就是說Action1接收Action2傳回的參數
'定義三個變量
Dim strMessC:strMessC = ""
strMessC = parameter("strMessC")
RunAction "Action2", oneIteration, strMessA, strMessB, strMessC
msgbox(strMessC)
傳回的strMessC變成了Action1的輸入參數。
2、Action2的代碼及設定
Dim strMessC:strMessC = "我是一個傳回的參數"
'給主調用Action1傳回參數
parameter("strMessC") = strMessC
3、運作Action1的結果
成功傳回了strMessC的變量。
注意:
1、RunAction "Action2", oneIteration, strMessA, strMessB, strMessC,RunAction是調用并運作另外一個Action的意思,strMessA和B是輸出的參數,strMessC是傳回的參數,都寫在一起,傳回的參數放在最後,這個過程貌似比較奇怪,呵呵。oneIteration是運作一次的意思。如下圖:
2、這裡示範的兩個Action是在同一個Test裡面,不同Test裡的Action也可以按如上方法調用,是一樣的,被調用的Action需要設定為“可重用操作”。