51Testing软件测试论坛

标题: QTP如何做关联? [打印本页]

作者: cuijianwww    时间: 2012-8-9 10:02
标题: QTP如何做关联?
QTP11,系统win2003,需要添加一条数据然后选择这条数据,删除。在loadrunner中,这种情况可以做关联,在QTP中 怎么办呢?由于录制时候与运行脚本时候添加数据的ID是不一样的,运行脚本时候 找不到录制时的ID,新手求教。。。
作者: cuijianwww    时间: 2012-8-9 10:30
有人么?QTP的这种关联是怎么做的?
作者: cuijianwww    时间: 2012-8-9 10:30
新手求助!!
作者: 黑羽祭    时间: 2012-8-9 11:12
回复 3# cuijianwww


    不是很明白,不过QTP是可以在运行时,获取这个控件在运行时的值进行操作
    可以使用描述性编程解决
作者: cuijianwww    时间: 2012-8-9 12:36
回复 4# 黑羽祭


    就是我录制脚本时候,添加了一条数据,系统给的ID是1,删除时候选中ID为1的数据,点击删除。但是我在运行脚本时候,添加了一条数据,系统肯定两次给的是不一样的ID,比如ID是2,删除时候,脚本里写的ID还是1,那么ID为1的数据就找不到了,就会报错。怎样解决?
作者: cuijianwww    时间: 2012-8-9 12:37
这种情况在loadrunner中做个关联就可以了,但是QTP中不知道是怎么处理的。新手求教。。。
作者: 云层    时间: 2012-8-9 12:37
用childobject+getroproperty实现的
作者: joykao    时间: 2012-8-9 12:41
getRoproperty 拿对象属性啊。。。QTP 里没有关联这一说。。。。。
你说的关联应该是指TO 和RO  的关系
作者: 云层    时间: 2012-8-9 12:45
那是楼上你不懂而已。
作者: cuijianwww    时间: 2012-8-9 12:48
回复 7# 云层


    呃。。。云层老师能说的具体点么?刚接触QTP。。。
作者: 黑羽祭    时间: 2012-8-9 13:36
回复 10# cuijianwww


这个在平时的使用中经常遇到,我都是使用getRoproperty + 描述性编程来完成。

1.用getRoproperty 获取当前页面上的id值2至一个变量MyID,然后根据属性表述  如 XXXXXX(“name:=MyID”).Click     (例子随便写的)  进行操作
2.如果是表格里的点选点击删除,还是先getRoproperty 获取当然的ID,然后把WebTable保存成对象otable,用otable.GetCellData(i,j)得到指定表格内容,然后和当前ID比对,一样的则勾选,点击删除按钮

想看看 云层 的比较正式的答案是什么。
作者: 云层    时间: 2012-8-11 08:57
简单写一下,其实到处都有类似的写法

set ob=descrption.create()
ob("html tag").value="A"

set x=browser(":=").page(":=").childobjects(ob)
for i=0 to x.count-1
print x.item(i).getroproperty("innerttext")
next
这样就可以获得当前页面上所有超链接对应问文字了。。。
作者: hsjzfling    时间: 2012-8-13 10:06
概念上来看,也就是一个参数化的问题。只需要将所有ID=1这个常量替换成ID=intID或者DataTable("ID",dtLocalSheet)等变量即可,包括对象库中与该ID相关的对象属性的值也需做参数化。
ID的值可以用GetROProperty,Output Value等方式去获取系统给的ID。然后,一切就都搞定咯。
作者: 黑羽祭    时间: 2012-8-13 10:52
呵呵~继续关注~~~~~
作者: CathyDeng5219    时间: 2012-8-15 17:49

作者: moshuang    时间: 2012-8-15 17:52
回复 1# cuijianwww


    你的问题我遇到过,可是QTP并没有关联,你只能获取孩子节点。不过具体方法希望你能找到。
作者: lintongyan    时间: 2012-8-16 18:34





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