QTP提供三种参数传递方式:
- Parameter
- Environment
- DataTable
Parameter 函数传递参数
如:分别创建两个同级别 Action
OutPutAct:将参数传递出来
InPutAct :获取 OuputAct 传递出来的参数
在两个 Action 中设置输出与输入参数。
在关键字试图中,选择鼠标右键,[操作属性] 如下图:
在 OutPutAct 的 Action 中设置输出参数,设置参数名为 str
在 InPutAct 的 Action 中设置输入参数,设置参数名为 str
在 OutPutAct 的 Action 中需要对参数赋值:
- Parameter("str")="tester"
在 InPutAct 的 Action 中获取参数的值:
- temp=Parameter("str")
- msgBoxtemp
参数中转
虽然在 OutPutAct 与 InPutAct 中设置了输出与输入参数的过程,但运行起来仍然无法进行参数传递,需要一个中间过程进行保存参数。创建一个变量进行参数传递, 在QTP中创建一个新的 Action ,然后调度进行参数传递, RunAction 用途是执行一个 Action
- Dimvars
- '运行OutPutActAction,然后把参数输出的值保存到vars变量中
- RunAction"Action1",oneIteration,vars
- '运行InPutActAction,然后将vars中的值传递给InPutAct
- RunAction"Action2",vars
注意:在测试该小段脚本时,将测试流程中原先创建的OutPutAct 和InPutAct 删掉,要不会等于执行每个Action执行2次,其中一次是获取不到值的。
Environment 函数传递参数
采取 Environment 进行 Action 的参数传递更加简洁
在 OutPutAct 的 Action 中进行参数赋值
- Environment("str")="tester"
这语句完成两个过程
在环境变量中创建一个新的变量,名字叫 str
对这个新的变量进行赋值操作
在 InPutAct 的Action 中获取环境变量
- temp=Environment("str")
- MsgBoxtemp
DataTable 传递参数在
DataTable 中的 Global sheet 中创建一个新的字段,命名为 str
在涉及到不同的 Action 的参数传递,最好将参数设置到 Global Sheet 中。
设置与获取参数
在 OutPutAct 中进行参数的赋值操作
- DataTable("str",dtGlobalSheet).value="tester"
在 InPutAct 中进行取值操作
- temp=DataTable("str",dtGlobalSheet).value
- msgBoxtemp
总结
三种模式进行参数传递的相同点:
-
都提供了一个参数保存的策略。
-
都提供了相对应的公共接口来进行参数传递的过程。
三种模式进行参数传递的差异:
参数有效性范围
Parameter:只能适用与参数定义的 Aciton 使用,不能在其他的 Action 中进行调用,参数命名也只要在本 Action 中不重复即可。
Environment:定义的变量适用于整个脚本,即任何一个 Action 都可以调用,所以在脚本内变量不能够重复。
DataTable:适用于整个脚本,而且通过 Sheet 的类型(Global、Local)作为一个变量的逻辑范围约定,在同一个Sheet中参数命名不能够重复。
参数的类型
Parameter 和 Environment :无法进行数组参数的传递。
DataTable:可通过多行数据的模式来替代数据的模式进行参数传递。
参数来源
Parameter 和 DataTable:参数来源仅只能在脚本中通过程序或者手工设置。
原文链接:https://www.f2er.com/vb/260004.html