51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 8684|回复: 43
打印 上一主题 下一主题

[原创] 跪谢大家的帮忙!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-9-2 13:45:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,首先感谢论坛给我的帮助,现在本人遇到一个很难解决的问题,严重的阻碍了测试工作的进度,万分焦急,万般无奈下想到了论坛里的兄弟姐妹,希望大家能帮忙解决,小弟跪谢……

背景:
小弟目前正着手于测试一款用VC实现GUI的图形处理软件,其中多数控件都是公司通过继承一些windows的类自己封装的对象,其中下边这个难以搞定的东西就是这个贴子的“主角”



上图的粉红色方框框住的是用QTP在录制时,QTP识别到的对象,但实际本人点击的是椭圆对话框中的Free wall按钮,就是说QTP无法识别到Free wall只能识别到粉红色的框代表的对象,我点击Create room和My floorplans在Expert View生成的描述性代码都是一样的只是点击的坐标点不同,如下:
Window("应用软件名").WinObject("MacromediaFlashPlayerActiveX").Click 156,58    '点击Free wall生成代码
Window("应用软件名").WinObject("MacromediaFlashPlayerActiveX").Click 132,95    '点击Create room生成代码
Window("应用软件名").WinObject("MacromediaFlashPlayerActiveX").Click 141,124   '点击My floorplans生成代码

回放录制的代码过程中QTP在做点击椭圆框住的按钮时提示,因为无法识别对象,后边的操作都是基于前边的操作才能进行的,于是测试就提前搁浅,本人已经实在没有办法处理了,试了用模拟录制和低级录制都没有效果,研究了两天,没有丝毫进展,希望在这里能得到达人的指点,本人感激不尽,先谢过!

对象库中截图:


[ 本帖最后由 zzs4026 于 2008-9-2 15:19 编辑 ]

本帖子中包含更多资源

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

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

使用道具 举报

该用户从未签到

2#
发表于 2008-9-2 13:53:25 | 只看该作者
VC弄的GUI貌似QTP识别不了的。。。即使花很大代价弄好了也不值得,建议考虑换工具吧~~
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-9-2 13:57:12 | 只看该作者
winrunner试一下
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-9-2 13:58:48 | 只看该作者
难道说大家用QTP都是在做Web测试的吗?!
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2008-9-2 14:00:45 | 只看该作者
谢谢大家的建议!
只是QTP不是就是在WinRunner基础上做好的吗?QTP不行,WinRunner难道还可以?!
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2008-9-2 14:39:18 | 只看该作者
等待达人点拔,顶起来
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-9-2 14:56:56 | 只看该作者
哥们 虚拟对象使用没有?
把你的那个东西识别成一个虚拟botton 然后执行click 看看 可能解决,不能也反馈下信息再想办法
(恩,我刚找了个例子实验了下,是可以的.希望对你有帮助!  哇嘎嘎~~~~~`)

[ 本帖最后由 lingxin5013 于 2008-9-2 15:05 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-9-2 15:05:40 | 只看该作者
麻烦把WinObject("MacromediaFlashPlayerActiveX")这个对象在对象库中的属性截图出来给大家看。
看样子QTP只识别到了紫色框的这个对象,对象里面的东西都识别不到。
如果识别到,或者应该是有再多一个自对象_1,_2,_3的。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2008-9-2 15:20:39 | 只看该作者
对啊,我就是和“假装不在”想的一样啊,不知道有没有什么办法解决,谢过了!



[ 本帖最后由 zzs4026 于 2008-9-2 15:23 编辑 ]

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2008-9-2 15:22:26 | 只看该作者
原帖由 lingxin5013 于 2008-9-2 14:56 发表
哥们 虚拟对象使用没有?
把你的那个东西识别成一个虚拟botton 然后执行click 看看 可能解决,不能也反馈下信息再想办法
(恩,我刚找了个例子实验了下,是可以的.希望对你有帮助!  哇嘎嘎~~~~~`)



这个还没有用过,我会试试,找找相应的虚拟对象操作方法,如果哥们你有,发个网址或消息给我,帮我缩短探索时间,谢谢了!
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-9-2 15:26:06 | 只看该作者
看过了 你的对象仓库中的2个对象都是一样的而且window id是变动的所以正常渠道是没有用的 说了使用虚拟对象,我刚刚实验过了 是可以的.我来告诉你操作方法
选择tools->virtual objects->new virtual objects 把对象映射成一个button 然后重新录制一遍就可以了

[ 本帖最后由 lingxin5013 于 2008-9-2 15:29 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2008-9-2 15:28:11 | 只看该作者
问你个问题,你的那些控件能接受焦点不?
如果能接受焦点,你可以通过让它们得到焦点的方法去搞
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2008-9-2 15:39:43 | 只看该作者
原帖由 lingxin5013 于 2008-9-2 15:26 发表
看过了 你的对象仓库中的2个对象都是一样的而且window id是变动的所以正常渠道是没有用的 说了使用虚拟对象,我刚刚实验过了 是可以的.我来告诉你操作方法
选择tools->virtual objects->new virtual objects 把对象映 ...


好的,谢谢您了,热心肠的大好人啊!
不过,刚才我的截图有点问题,以下是我重新试的,被画了黑线的描述语句是点击Free wall产生的代码
另外两个按顺序分别是Create room和My floorplans产生的代码,可以看到这时的对象库只有一个对象,没有两个,之前可能是我做错了

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2008-9-2 15:44:23 | 只看该作者
原帖由 假装不在 于 2008-9-2 15:28 发表
问你个问题,你的那些控件能接受焦点不?
如果能接受焦点,你可以通过让它们得到焦点的方法去搞



这个软件比较恶心,如果你点击了刚才说的MacromediaFlashPlayerActiveX(就是那个2D layout)之后,它才能通过Tab键选择
Free wall
Create room
My floorplans
这三个按钮,如果开始没有点击MacromediaFlashPlayerActiveX,单靠Tab是无法定位到这三个键的
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2008-9-2 15:50:39 | 只看该作者
那这样就简单点。
你就
Window("应用软件名").WinObject("MacromediaFlashPlayerActiveX").Click
Window("应用软件名").WinObject("MacromediaFlashPlayerActiveX").type micTab
'这里只说了个思路
.....
.....
不管黑猫白猫,抓到老鼠就是好猫。如果控件识别不到,就先这样凑活
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2008-9-2 15:52:27 | 只看该作者
你没有搞错  你的3个控键都是一样的 就算你通过坐标跑起来了 也没有用 大家共用一个对象 用坐标区分,等你下次重新启动后仍然会错,为什么?坐标改变了啊?
哎~ 
  虚拟对象 虚拟对象 虚拟对象    虚拟对象!!!!
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2008-9-2 15:55:19 | 只看该作者
你只要把那3个东西分别映射成标准按钮,然后在录制状态下重新选择这个按钮你的click就不是坐标了! 
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2008-9-2 15:56:18 | 只看该作者
原帖由 lingxin5013 于 2008-9-2 15:52 发表
你没有搞错  你的3个控键都是一样的 就算你通过坐标跑起来了 也没有用 大家共用一个对象 用坐标区分,等你下次重新启动后仍然会错,为什么?坐标改变了啊?
哎~ 
  虚拟对象 虚拟对象 虚拟对象    ...


楼上同学你没看仔细,扣分了...
那三个控件是根本识别不到的。
里面能识别到的是外面紫色框的那个控件,类似一个inclube.
里面三个VC控件识别不到,所以QTP识别起来就是你点击控件。
不是同个对象不同坐标。
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2008-9-2 15:59:28 | 只看该作者
LS我知道 使用object spy看的话 是一个整体的框架因此不能够选中里面的控键盘
但是使用虚拟控键的话,在虚拟botton下是可以画你的botton区域的,只要画下然后在录制状态下重新点击下是可以的,我原来遇到过LZ这样的问题通过这个方法解决的,你也可以实验下.
回复 支持 反对

使用道具 举报

该用户从未签到

20#
 楼主| 发表于 2008-9-2 16:01:00 | 只看该作者
原帖由 lingxin5013 于 2008-9-2 15:26 发表
看过了 你的对象仓库中的2个对象都是一样的而且window id是变动的所以正常渠道是没有用的 说了使用虚拟对象,我刚刚实验过了 是可以的.我来告诉你操作方法
选择tools->virtual objects->new virtual objects 把对象映 ...



老大,我这边按你说的新建了两个虚拟对象,虚拟成Button,一个取名为Free wall另一个取名为Create room,并且与截图中的按钮对应,但在关键字视图中我找不到它们(Free wall和Create room)啊,并且在对象库里也看不到有他们?请问产生了虚拟对象后我还要不要做别的操作,才能导入到库中?

另外,如果虚拟出对象是不是我在标记(Mark)时的几个按钮不能同样大小,要不同样大小程序也识别不出来?我看它对他们的区别都只是靠长宽(x,y)来区分的,不知道认识的对不对,另外虚拟对象是弹出的对话框提示
Identify object using
1.Entire parent hierarchy  2.Parent only
1和2有什么区别,请指教,谢谢你了!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-23 17:18 , Processed in 0.088867 second(s), 33 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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