希望能为大家建立一个学习测试的实验室
QTP的数据驱动方式初级探讨之二——利用参数化
上一篇 /
下一篇 2007-11-20 20:27:42
/ 个人分类:测试工具文档
首先理解初级前提:每一个测试Test可能由很多操作Actions组成
利用参数化
QTP有2种参数,按照参数的位置分,有一个是Action(可以理解为“本地”含义,在操作属性里面设计)参数,另一个就是Test (可以理解为“全局”含义)参数;按参数的类型分,有一个是Input(输入)参数,另一个是Output(输出)参数。
QTP的参数值传递关系图如下:
注意:图中的Action(i)是表示第i个操作(Action)
MQC表示Mercury Quality Center(即QC中测试实验室里面测试集中某个测试的配置参数选项)
新建TEST(测试),那么QTP默认给这个Test一个Action1的操作名称,同时Test与Action1的输入和输出参数列表也被初始化,你可以进入Action1的ExpertView(专家视图)页面键入下面的脚本代码:
Dim aParam
aParam=Parameter(“ActionInputParam1”)
// 使用参数化值,ActionInputParam1为参数
变量此时的值不等于参数ActionInputParam1的值,因为还没有设置参数化值
打开对应Action1的Keyword View(关键字视图),右键——>Action Properties(操作属性),将会打开Action Properties的对话框,进入“Parameters”(参数)Tab标签下,在InputParameter Table中,输入参数Name(名称)=ActionInputParam1,参数Type(类型)=String,DefaultValue(默认值)=“ThisIsAString”。
OK,变量aParam=“ThisIsAString”
现在你可以在脚本中键入:Print aParam或者Msgbox aParam查看变量的值,看是否输出“ThisIsAString”
OK,咱们目前完成了操作Action1的参数的值的设置,那么在本Action1中的任何地方都可以使用该变量。
下面咱们来看看Test参数,也就是全局参数(我不知道这个名称是否正确,只是按照我的理解来说的,大家不同意的话自己也可以取名称)
首先,在QTP的菜单File(文件)——>Settings(设置)的TestParameters的Parameters Tab标签对话框中,在InputParameters列表中添加参数GlobalInputParam1,类型String,值“ThisIsAString”,接着,鼠标还是选中Keyword View(关键字视图)中的Action1,点右键,选择“Action Call Properties”,在Parameter Values里进行参数化传递设置,将参数ActionInputParam1的参数指向(调用)Test参数列表中的GlobalInputParam1,这样就完成了本地参数调用全局参数的设置,每次运行脚本时,aParam的值就等于GlobalInputParam1的值了。
可能有人会想,本地参数ActionInputParam1已经设置为“ThisIsAString”了,在这应该就不用了吧!的确是这样。但是如果你设置调用以后,本地的参数ActionInputParam1的值是否已经赋值都无所谓,因为脚本运行时,变量的值只等于Test参数列表中GlobalInputParam1参数的值。不知道这样说明是否混淆,反正好好理解下吧。
有人可能也想,参数调用是方便了许多,但是如果脚本所需的数据改变了,那么每次更改数据的值时,还需要打开脚本修改Test参数的值,这样做的话有点浪费时间,这些担心是应该的,但是Mercury公司解决了以上的矛盾,所有测试的全局参数都可以在MQC的测试集中测试参数配置中设置参数值。
如果有兴趣的话,可以到MQC里面去试一试。看看测试的全局参数列表是否在那里出现,并赋值为“ThisIsAString”,但是测试中的全局参数里面不能设置值,否则难以判定到底是输出的那个值。
收藏
举报
TAG:
测试工具文档