如果你有坚定的信念你就不会迷茫。

QTP 参数化

上一篇 / 下一篇  2010-10-12 10:38:34 / 个人分类:QTP

QTP参数化,有以下几种方式:

1、Datatable

2、Test Parameter & Action Parameter

3、Enviornment 变量

首先,Datatable.这个是通过在QTP Datatable 中设定一组值然后通过代码读取

1、在Datatable 新增一列参数,如“DTParam1”

2、给DTParam1填入不同的值,如“Value1”, "Value2"

3、在专家试图通过 DataTable("DTParam1", "Global") '其中第一个参数是Datatable中参数列名,第二个参数是Datatable中Sheet名称。

如我们用 MsgBox DataTable("DTParam1", "Global") 就会弹出两次messagebox分别显示Value1, Value2.也就是说Datatable中有多少列我们就会把这个Action执行多少遍. 那么有可能存在以下几种情况:

1、一个Datatable中各个参数列中参数数量不一致时。--- 此时以Datatable中数量最多的参数列为准,其他列默认为空

2、在Action中用到了Global的Datatable,也用到了Action的 Datatable那么我们以Global中的数量为准,如果其他Action Datatable中行数比Gobal Datatable中的多那么多余的部分被忽略。如果Action Datatable中行数多的话我们默认是将最后一个值反复的执行。那如果Gobal中没有设定Datatable参数,则该Action只会被执行一 次。

注意:sheet参数最好不要直接输入“Global”,要使用dtGlobalSheet,dtLocalSheet。如果直接使用字符串导致该Action如果被其他Action调用的时候会出错的。

其次,Test Parameter & Action Parameter.

  Test Parameter 的设置与使用:

  1. 选择QTP的“Setting”按钮, 进入Parameters Tab中,新增加一个Input Parameter, Name: Param1; Type: String; Default value: DefaultValue.

       2、在专家试图中给读取、修改该Parameter.

Set qtApp1 = CreateObject("QuickTest.Application")
Set pDefColl = qtApp1.Test.ParameterDefinitions
Set rtParams = pDefColl.GetParameters() '获取该Test 中定义的所有Test Parameter
Set rtParam = rtParams.Item("Param1") '获取该Test某个Test Parameter
msgbox rtParam.Value '通过Value属性获取该Test Parameter的值, 这里弹出的Messagebox 文字是“DefaultValue”
rtParam.Value = "New Value"  '重新给该Test Parameter赋值
msgbox rtParam.Value  '这里弹出的Messagebox 文字是“New Value”

  Action input Parameter 的设置与使用:

1、在专家试图中,鼠标右键-〉Action -> Action Properties -> Parameters 选项卡,在这里添加一个input parameter, Name: INParam; Type: String;

2、在Action的代码中使用:Parameter("INParam") 获取该参数的值

3、如果其他Action重要Run 包含Action Parameter的Action 则使用:RunAction "ActionName", oneIteration,"ParamValue"其中第一、三个参数分别是被调用Action的名字,Action的参数。那么如果被调用 Action有多个参数则一直往后面增加,如:RunAction "ActionName", oneIteration,"Param1Value","Param2Value","Param3Value",.....

 

    Action output Parameter 的设置与使用:

1、在专家试图中,鼠标右键-〉Action -> Action Properties -> Parameters 选项卡,在这里添加一个output parameter, Name: OUTParam; Type: String;

       2、在被调用的Action中给该参数赋值,如Parameter("OUTParam")

       3、通过下列两种方式获得output parameter的值,

     第一:RunAction "ActionName", oneIteration,"ParamValue" ,ReturnOutParam, 其中RunAction 之后会把output parameter赋值给ReturnOutParam变量。

     第二:RunAction "ActionName", oneIteration,"ParamValue"

              ReturnOutParam = Parameter("Action2","OUTParam")  RunAction时不获取其Output Parameter,在运行结果后再获取

 

Action Return Value:  在Action结束的时候增加一句ExitAction“Return Value",我们可以通过returnValue = RunAction("ActionName", ....)来获取return value.

顺便解释一个oneIteration(或者0): 每次只读取被调用Action datatable中的一行,如果当前Action的Globaltable中的行数>被调用Action datatable的行数,则剩余几行用被调用Action datatable的最后一行循环。 

allIterations(或者1): 每次读取被调用Action datatable中的所有行,也就是说如果Global datatable中有n行,Action datatable中有m行则会被调用n*m次

http://blog.sina.com.cn/s/blog_505bf9af0100bpko.html?retcode=0

http://blog.csdn.net/xuyubotest/archive/2009/10/19/4699421.aspx (Parameters & Excel)

http://bbs.5etesting.com/viewthread.php?tid=541


TAG: QTP 参数化

 

评分:0

我来说两句

日历

« 2024-04-28  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 20104
  • 日志数: 19
  • 建立时间: 2010-09-08
  • 更新时间: 2011-01-21

RSS订阅

Open Toolbar