51Testing软件测试论坛

标题: ~~~实现参数共享的五种方法~~~ [打印本页]

作者: flyfly310    时间: 2008-3-25 21:14
标题: ~~~实现参数共享的五种方法~~~
   [attach]40369[/attach]

          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
-------------------------------------

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

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

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


不一定,我看到有些公司就是用XML进行保存和传递大数据量的,Excel有时候会出一些莫名其妙的问题。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2