天天看點

QTP多個Action之間傳遞參數的方法詳解

腳本的朋友們都會碰到多個Action之間傳遞參數的問題,想當年我也是研究了好久才成功的,網上雖然有很多文章都在講這個問題,但是大多都是雷同的抄來抄去不能解決實際問題,也有可能是我太笨了吧。下面我們來詳細講一下QTP多個Action之間傳遞參數的方法。

一、假設Action1調用Action2并且Action1傳遞參數給Action2

1、Action1的代碼及設定

'定義兩個變量

Dim strMessA:strMessA = "我是"

Dim strMessB:strMessB = "一個傳遞的參數"

'調用Action2,并傳參

RunAction "Action2", oneIteration, strMessA, strMessB

在資源管理中的Action1上點右鍵-操作屬性-參數頁籤,設定輸出參數。

QTP多個Action之間傳遞參數的方法詳解
QTP多個Action之間傳遞參數的方法詳解

2、Action2中的代碼及設定

Dim strMessA:strMessA = ""

Dim strMessB:strMessB = ""

Dim strMess:strMess = ""

'接參

strMessA = parameter("strMessA")

strMessB = parameter("strMessB")

strMess = strMessA&strMessB

msgbox(strMess)

同樣設定參數頁籤,這裡設定的是 輸入參數。

QTP多個Action之間傳遞參數的方法詳解

3、運作Action1的結果:

QTP多個Action之間傳遞參數的方法詳解

參數傳遞成功。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)

QTP多個Action之間傳遞參數的方法詳解

傳回的strMessC變成了Action1的輸入參數。

2、Action2的代碼及設定

Dim strMessC:strMessC = "我是一個傳回的參數"

'給主調用Action1傳回參數

parameter("strMessC") = strMessC

QTP多個Action之間傳遞參數的方法詳解

3、運作Action1的結果

QTP多個Action之間傳遞參數的方法詳解

成功傳回了strMessC的變量。

注意:

1、RunAction "Action2", oneIteration, strMessA, strMessB, strMessC,RunAction是調用并運作另外一個Action的意思,strMessA和B是輸出的參數,strMessC是傳回的參數,都寫在一起,傳回的參數放在最後,這個過程貌似比較奇怪,呵呵。oneIteration是運作一次的意思。如下圖:

QTP多個Action之間傳遞參數的方法詳解

2、這裡示範的兩個Action是在同一個Test裡面,不同Test裡的Action也可以按如上方法調用,是一樣的,被調用的Action需要設定為“可重用操作”。