~~~实现参数共享的五种方法~~~

上一篇 / 下一篇  2008-03-25 21:21:56 / 个人分类:QTP

查看( 1806 ) / 评论( 8 )

   

实现参数共享的五种方法.doc
(2008-03-25 21:14:00, Size: 27 kB, Downloads: 0)


          QTP中对象的共享是通过对象库共享的,有时候我们需要把一些参数提供给其他脚本使用,那么就需要对参数进行共享,参数的共享方式有很多,以下test文件均包含action1action2action3,其中action2action3设置为reuseable action
No1使用环境变量实现的test
(当然也可以在setting中手工或者导入xml的方式批量设置环境变量)
action1
environment.Value("aaa")=10
environment.Value("bbb")=20
RunAction "Action2", oneIteration
RunAction "Action3", oneIteration
-------------------------------------
action2
a=environment.Value("aaa")
b=environment.Value("bbb")
msgbox a
msgbox b
-------------------------------------
output 10,20
-------------------------------------
action3
msgbox a
msgbox b
-------------------------------------
output nothing

-------------------------------------
No2使用全局变量实现的test
(缺点是虽然在action1中已经声明定义了abaction2中还得声明和定义否则象action3不能输出)
action1
Public a
a="c"
Public b
b="d"
RunAction "Action2", oneIteration
RunAction "Action3", oneIteration
-------------------------------------
action2
Public a
a="a"
Public b
b="b"
msgbox a
msgbox b
-------------------------------------
output a b
-------------------------------------
action3
msgbox a
msgbox b
output nothing
-------------------------------------
No3使用globalsheet实现的test
(当使用的变量比较多的时候,这种方式一目了然)
action1
RunAction "Action2", oneIteration
RunAction "Action3", oneIteration
-------------------------------------
action2
datatable.SetCurrentRow(2)
a=datatable.Value("A","Global")
b=datatable.Value("B","Global")
msgbox a
msgbox b
-------------------------------------
output 1020
-------------------------------------
action3
msgbox a
msgbox b
output nothing
-------------------------------------

No4input parameteroutput parameter实现参数间的传递

例如actionAcationB的传递参数,可以用通过设置action propertyinput parameteroutput parameter实现,具体参看相关文档,这种比较适合某两个action之间的参数传递

No5repository parameters实现

qtp9x中,resources->object repositoy Manager->tools->manage repository parameters
可以把参数和相关的对象库关联起来,具体操作参看帮助文件,这种方法个人认为不太方便,每次使用的时候还得关联相应的参数,不太推荐



[本帖最后由 flyfly310 于 2008-3-25 21:18 编辑]


TAG: QTP

flyfly310的个人空间 flyfly310 发布于2008-03-25 21:14:42
No4 input parameteroutput parameter实现参数间的传递
例如actionA cationB 的传递参数,可以用通过设置action propertyinput parameteroutput parameter实现,具体参看相关文档,这种比较适合某两个action之间的参数传递
No5repository parameters实现
qtp9x中,resources->object repositoy Manager->tools->manage repository parameters
可以把参数和相关的对象库关联起来,具体操作参看帮助文件,这种方法个人认为不太方便,每次使用的时候还得关联相应的参数,不太推荐
Kevin藏宝库 hsjzfling 发布于2008-03-25 21:39:43
已经有多人小结过了~lz还漏了通过外部文件来传递参数~~
假装不在 假装不在 发布于2008-03-26 09:40:36

还有3个一般用的外部文件,TEXT,EXCEL,XML
但我来说2句。
TEXT,EXCEL好像每次打开,它的可见都是为必须可见才能实现调用。导致了参数有时候调他,就要开关开关,电脑内存先不说,CPU也会很不稳定。
XML我还不会,我不知道效果如何。
Kevin藏宝库 hsjzfling 发布于2008-03-26 10:49:40
txt,xls以及xml文件都可以在后台打开访问,都不是非要可见的。。。而且如果你用ado来访问xls或者用dom来访问xml,想可见都困难~

用外部文件来做数据驱动是很常用的方式,现在流行的框架大多采用这种方式。至于ls说的开关开关、内存、cpu什么的,不是多虑就是思路有偏差。对于需要多次访问的数据文件,一般都是在第一次读取前打开/创建,在最后一次读取或者是执行中发生某些异常后再关闭/释放。
loho1968的个人空间 loho1968 发布于2008-03-26 12:41:54
方法6:在VBS文件中,使用Public申请变量,然后把这个VBS文件设置为脚本的“源”,就可以实现共享了。
zz2008zz发布于2009-06-06 18:05:07
dd
pddddddddddd
萧萧枫林的个人空间 onlonely 发布于2009-06-07 19:53:18
数据量多的时候只有EXCLE才最适合,其他的方法都是传递少量参数的.
heqingbluesky发布于2009-06-08 11:50:50

QUOTE:

原帖由 onlonely 于 2009-6-7 19:53 发表
数据量多的时候只有EXCLE才最适合,其他的方法都是传递少量参数的.
不一定,我看到有些公司就是用XML进行保存和传递大数据量的,Excel有时候会出一些莫名其妙的问题。
我来说两句

(可选)

Open Toolbar