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之间传递参数的方法详解_第1张图片

QTP多个Action之间传递参数的方法详解_第2张图片

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张图片

3、运行Action1的结果:

QTP多个Action之间传递参数的方法详解_第4张图片

参数传递成功。strMessA和strMessB是两个传递的变量,在Action1里设置输出参数,在Action2里设置输入参数,并且在Action2里用strMessA = parameter("strMessA")中的parameter方法接参数。

二、假设Action1调用Action2并且Action2传递参数给Action1,也就是说Action1接收Action2返回的参数

1、Action1的代码及设置

'定义三个变量
Dim strMessA:strMessA = "我是"
Dim strMessB:strMessB = "一个传递的参数"
Dim strMessC:strMessC = ""

strMessC = parameter("strMessC")

'调用Action2,并传参
RunAction "Action2", oneIteration, strMessA, strMessB, strMessC

msgbox(strMessC)

QTP多个Action之间传递参数的方法详解_第5张图片

返回的strMessC变成了Action1的输入参数。

2、Action2的代码及设置

Dim strMessA:strMessA = ""
Dim strMessB:strMessB = ""
Dim strMessC:strMessC = "我是一个返回的参数"
Dim strMess:strMess = ""

'接参
strMessA = parameter("strMessA")
strMessB = parameter("strMessB")

'给主调用Action1返回参数
parameter("strMessC") = strMessC

strMess = strMessA&strMessB

msgbox(strMess)

QTP多个Action之间传递参数的方法详解_第6张图片

3、运行Action1的结果

QTP多个Action之间传递参数的方法详解_第7张图片

成功返回了strMessC的变量。

注意:

1、RunAction "Action2", oneIteration, strMessA, strMessB, strMessC,RunAction是调用并运行另外一个Action的意思,strMessA和B是输出的参数,strMessC是返回的参数,都写在一起,返回的参数放在最后,这个过程貌似比较奇怪,呵呵。oneIteration是运行一次的意思。如下图:

QTP多个Action之间传递参数的方法详解_第8张图片

2、这里演示的两个Action是在同一个Test里面,不同Test里的Action也可以按如上方法调用,是一样的,被调用的Action需要设置为“可重用操作”。

你可能感兴趣的:(QTP多个Action之间传递参数的方法详解)