51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3129|回复: 8
打印 上一主题 下一主题

[原创] ~~~实现参数共享的五种方法~~~

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-3-25 21:14:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   

          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 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-3-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
可以把参数和相关的对象库关联起来,具体操作参看帮助文件,这种方法个人认为不太方便,每次使用的时候还得关联相应的参数,不太推荐
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-3-25 21:39:43 | 只看该作者
已经有多人小结过了~lz还漏了通过外部文件来传递参数~~
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-3-26 09:40:36 | 只看该作者

还有3个一般用的外部文件,TEXT,EXCEL,XML
但我来说2句。
TEXT,EXCEL好像每次打开,它的可见都是为必须可见才能实现调用。导致了参数有时候调他,就要开关开关,电脑内存先不说,CPU也会很不稳定。
XML我还不会,我不知道效果如何。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-3-26 10:49:40 | 只看该作者
txt,xls以及xml文件都可以在后台打开访问,都不是非要可见的。。。而且如果你用ado来访问xls或者用dom来访问xml,想可见都困难~

用外部文件来做数据驱动是很常用的方式,现在流行的框架大多采用这种方式。至于ls说的开关开关、内存、cpu什么的,不是多虑就是思路有偏差。对于需要多次访问的数据文件,一般都是在第一次读取前打开/创建,在最后一次读取或者是执行中发生某些异常后再关闭/释放。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-3-26 12:41:54 | 只看该作者
方法6:在VBS文件中,使用Public申请变量,然后把这个VBS文件设置为脚本的“源”,就可以实现共享了。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2009-6-6 18:05:07 | 只看该作者

dd

pddddddddddd
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2009-6-7 19:53:18 | 只看该作者
数据量多的时候只有EXCLE才最适合,其他的方法都是传递少量参数的.
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-6-8 11:50:50 | 只看该作者
原帖由 onlonely 于 2009-6-7 19:53 发表
数据量多的时候只有EXCLE才最适合,其他的方法都是传递少量参数的.


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

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-14 18:53 , Processed in 0.080348 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表