请教:QTP的action传递给被调用的action参数为空
本帖最后由 janne09 于 2010-9-28 13:28 编辑通过QTP的action参数传递模拟求和方法,可是传递的参数却为空,请大家帮忙看一下呀
场景:
action1传参数a,b给action2,action1通过调用action2得到两个参数的各
action2接收参数,执行两个参数的求和运算,最后将结果返回给action1
步骤:
1.exls表格(test)中设置参数,如下图
2.编写vbs文件Dim WshShell,path
Set WshShell = CreateObject("WScript.Shell")
Path = WshShell.CurrentDirectory
temp=""""+path+"\test.xls"+""""
DataTable.AddSheet "Action1"
DataTable.ImportSheet temp,1,"Action1"1.创建两个Actions分别为Acton1和Acton2,Acton2嵌套在Acton1下
2.两个Action中添加参数
1).Keyword View视图中选择Action1--右键--Action Properties--Parameter 在其中添加input和output参数,如下图
2).Keyword View视图中选择Action2--右键--Action Properties--Parameter 在其中添加input和output参数,与上图一致
3.在Action1和Action2间建立关联
1).Keyword View视图中选择Action2--右键--Action Call Properties--a的Value
Parameter:选择Test/Action parameter
Parent action parameters的parameter中选择a
2).同理设置b和c的值,如下图
4.action1中代码如下:inta,b
a=DataTable.GetSheet("Action1").GetParameter("value").ValueByRow(1)
b=DataTable.GetSheet("Action1").GetParameter("value").ValueByRow(2)
RunAction "Action2", oneIteration, Parameter("a"), Parameter("b"), Parameter("c")5.action2中代码如下:int a,b
c=a+b
msgbox Parameter("c")6.导入exls表格中参数
QTP--file-settings--resources--加载写好的vbs文件,将exls中参数导入代码中
7.单点调试脚本
结果返回:
a,b中取得值
Parameter("a"), Parameter("b")值为0
c的值为0
脚本运行后结果返回0 选择Action2--右键--Action Properties--Parameter 在其中添加input和output参数
对
然后
action1中代码
inta,b
a=DataTable.GetSheet("Action1").GetParameter("value").ValueByRow(1)
b=DataTable.GetSheet("Action1").GetParameter("value").ValueByRow(2)
RunAction "Action2", oneIteration, a,b,c
msgbox c
action2中代码
Parameter("c") = Parameter("a") + Parameter("b") 回复 2# skyzhu
谢谢!照着你说的办法,参数调用成功了。照你的办法,第3步设置关联是没有必要的了。
可是还是有些不明白,在上面我的第3步建立了关联,也是可以把参数传过去的,可是为什么传递失败呢? 回复 3# janne09
因为你Action2关联的Action1的input Param:a、b,但Action1中并没有给这两个a、b赋值,
所以Action2获取的都是默认值0
你这个语句
a=DataTable.GetSheet("Action1").GetParameter("value").ValueByRow(1)
b=DataTable.GetSheet("Action1").GetParameter("value").ValueByRow(2)
只是你Action1内部的值,并不等同于Action1中的input Parm:a、b 回复 4# kavensyw
哦,明白了,谢谢 Parameter("a")=DataTable.GetSheet("Action1").GetParameter("value").ValueByRow(1)
页:
[1]