qtp 属性2

上一篇 / 下一篇  2011-07-12 16:21:30

action-properties-parameter

action参数:

参数是action内部和外部进行传值得桥梁。

如下图的地方对action进行参数的设置

 

可以设置输入和输出两种参数,输入和输出参数的作用,基本与function中是一样的

Action可以和action之间传值。另一个action的参数,也在其对应的属性中parameter中设置。

有两种传值情况

首次,分别给action1action2设置参数

鼠标选中Keyword View中的Action1,点右键——Action Property,在ParametersTab标签下,分别加入:输入参数InAction1,类型String;输出参数OutAction1,类型Boolean.如下图

鼠标选中Keyword View中的Action2,点右键——Action Property,在ParametersTab标签下,分别加入:输入参数InAction2,类型String;输出参数OutAction2,类型Boolean.如下图

Action call Properties

1:并列,由上到下执行

output参数传给input参数

鼠标选中Keyword View中的Action2,点右键——Action call Properties,在Parameters valuesTab标签下,设置如下图:

2:内嵌

input参数传给input参数,output传给output

鼠标选中Keyword View中的Action2,点右键——Action call Properties,在Parameters valuesTab标签下,设置如下图:

 

代码可以用

RunAction "内嵌action3", oneIteration, Parameter("inaction1"), Parameter("outaction1")调用

当然,action不仅可以在action之间传值,还可以跟test传值。其设置在file-setting-test setting中,这个参数的值,是有外部的对象传给她,它然后再内部可以调用(这个外部对象可以是Quality Center,也可以是vbs这样的驱动程序)注:根据Songfun描述,此文档是他编写的,在此注明!不错的文档,感谢Songfun.

首先,在QTP里录制一段脚本,代码如下:

CODE:

SystemUtil.Run "C:\Program Files\Mercury\QuickTest Professional\samples\flight\app\flight4a.exe","","C:\Program Files\Mercury\QuickTest Professional\samples\flight\app\","open"
Dialog("Login").WinEdit("Agent Name:").Set Parameter("InAction1")
wait 5
Dialog("Login").WinEdit("Agent Name:").Type micTab
Dialog("Login").WinEdit("Password:").SetSecure "4649c633ffc8803c10097292953c6334fde3e923"
Dialog("Login").WinEdit("Password:").Type micReturn
Window("Flight Reservation").Close
Parameter("OutAction1") = True

然后,鼠标选中Keyword View中的Action1,点右键——Action Property,在ParametersTab标签下,分别加入:输入参数InAction1,类型String;输出参数OutAction1,类型Boolean.如下图。

再然后,在QTP的菜单File——>>SettingsParametersTab标签下,分别加入:输入参数InParam1,类型String;输出参数OutParam1,类型Boolean.如下图

接着,鼠标还是选中Keyword View中的Action1,点右键,这次点“Action Call Properties”,在Parameter Values里进行参数化传递设置,把InParam1的值传递给InAction1,把OutAction1的值传递给OutParam1.如下图

  以上设置完毕后,点保存,保存到C\下,存为Test1好了。

   最后,在你的硬盘上新建一个vbs文件,文件内容如下:CODE

Dim qtApp ,pDefColl,pDef ,rtParams,rtParam
Set qtApp = CreateObject("QuickTest.Application")
qtApp.Launch
qtApp.Visible = True
qtApp.Open "C:\Test1"
Set pDefColl = qtApp.Test.ParameterDefinitions
cnt = pDefColl.Count
Indx = 1
While Indx <= cnt
Set pDef = pDefColl.Item(Indx)
Indx = Indx + 1
Wend
Set rtParams = pDefColl.GetParameters()
Set rtParam = rtParams.Item("InParam1")
rtParam.Value = "songfun"
qtApp.Test.Run , True, rtParams
MsgBox rtParams.Item("OutParam1").Value

   做完这步之后,保存这个vbs文件,双击执行这个vbs文件,你会发现它   自动启动了QTP,而且进行了自动测试,最后还取到了运行成功与否的布尔值。

这就是关于TestTop-Level Action参数使用的例子,它的参数的整个传递过程是:外部vbs文件传参数给QuickTestTest的输入参数InParam1,然后InParam1传参数到InAction1去驱动了Action1的测试,然后通过这个Action1得出了OutAction1的值,然后通过OutAction1传给OutParam1,最后再传回到vbs文件中。示例用MsgBox来打出重新传回到vbs文件中的字符串。

TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-05-23  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 13334
  • 日志数: 17
  • 建立时间: 2011-06-30
  • 更新时间: 2011-11-14

RSS订阅

Open Toolbar