51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2868|回复: 15
打印 上一主题 下一主题

[原创] QTP10 执行脚本龟速

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-3-26 15:13:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚刚遇到一超级郁闷的问题,一个点击10多步的case居然跑了45分钟,我的QTP配置肯定不会错的: 关闭了智能识别,run mode 也设置为fast了,超时时间也是20秒,页面跳转超时60秒.单是就是这么慢.
结果如下:
Test: DSR_60R1_PR372188  
Results name: Res5
Time Zone: Pacific Standard Time
Run started: 3/26/2010 - 6:55:05
Run ended: 3/26/2010 - 7:40:59

出问题的是在这一步:
        Browser("Report Manager").Page("Report Manager_3").Image("ctl160$ctl01$ctl07$ctl00$ctl00").FireEvent "onmouseover"
        Browser("Report Manager").Page("Report Manager_3").Image("ctl160$ctl01$ctl07$ctl00$ctl00").Click
这个图片可以找到,就是点击的时候慢的要死,单是一步点击就花掉了将近20分钟,其他的操作都很快,我想取出这个图片的位置,然后点那个位置,结果取图片位置的操作也是非常非常慢,对了,这图片是打印,谁有好的办法,让时间降下来啊?或者谁遇到过,麻烦给支个招嘛,谢谢咯.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-3-26 15:20:04 | 只看该作者
1、检查一下那个Image对象的识别属性,是否有变化的属性导致识别的时候时间过长。
2、可以考虑注释掉onmouseover这行,如必须保留请忽视本条。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-3-26 15:41:08 | 只看该作者
原帖由 shotstar 于 2010-3-26 15:20 发表
1、检查一下那个Image对象的识别属性,是否有变化的属性导致识别的时候时间过长。
2、可以考虑注释掉onmouseover这行,如必须保留请忽视本条。

谢谢你了,如果真的这么简单,我也不会发帖问了,识别一点问题都没有,我打开对象库,highlight马上就可以识别到,onmouseover可要可不要,不过我一般喜欢加上FireEvent,就是点击非常之慢,就像死机一样,单是cpu和内存都用的不高.
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-3-26 15:45:21 | 只看该作者
我还是建议你先试试看去掉FireEvent那行,因为FireEvent在某些对象上应用的不是太好,所以我建议先去掉看看。
另外可以试着将那个Image对象的智能识别改成false。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2010-3-26 15:48:50 | 只看该作者
脚本原来是没有FireEvent的,执行一样非常慢,我就想试试加个FireEvent会不会快点,结果不快~~Image的智能识别我也早就去掉了,就是不行
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2010-3-26 15:57:39 | 只看该作者
我拿它当灵异事件了,单是我很好奇,4#,你的头像是男还是女?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-3-26 15:58:43 | 只看该作者
看来我也没有太好的办法了。
我一般解决这种问题的思路就是先看有没有warning的,尽量的消除warning。然后找到问题语句后,从顶层Browser一直确认到最底层的对象,挨个寻找问题原因。
也许问题就在这个Image的Click方法上。额,有一个比较麻烦的办法,你可以尝试一下,就是这里的点击不用Image().Click,用我给你的方法试试看。如果你能获取Image的绝对坐标(当然要能在屏幕上看到),然后用下面的语句,X要用对象的abs_x,可以适当把x和y都加一点,以便鼠标点击到图片中间而不是顶点。

Extern.Declare micLong, "SetCursorPos", "user32.dll", "SetCursorPos", micLong, micLong
Extern.SetCursorPos X,Y   '鼠标移动到坐标(X,Y)

Extern.Declare micVoid, "mouse_event", "user32.dll", "mouse_event", micLong, micLong, micLong, micLong, micLong
Extern.mouse_event 2,X,Y,0,0    '鼠标按下
Extern.mouse_event 4,X,Y,0,0    '鼠标抬起

如果这个办法也解决不了,俺也束手无策了。呵呵。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-3-26 16:01:10 | 只看该作者

回复 6# 的帖子

当然是男的了,叫裴勇俊。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2010-3-26 16:22:06 | 只看该作者
我也尝试过7#的方法,可是,获取abs_x和abs_y的时候,也是龟速,所以...灵异事件
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2010-3-26 16:22:59 | 只看该作者

回复 8# 的帖子

难道是韩国人?
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2010-3-26 16:35:13 | 只看该作者
你识别图片的属性用的是那个啊??
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2010-3-26 16:41:37 | 只看该作者
那看来还是在Image的识别上存在问题,确实有那种在对象库里highlight可以识别到对象,但是执行起来就要很久才找到的情况。
那个页面的图片很多么?要么考虑用Description对象加childobjects的方法获取page下的Image,然后再click试试。也可以直接加上你这个Image的属性直接用描述性编程试试。

PS:头像那个人是韩国的。
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2010-3-26 17:02:42 | 只看该作者
都试过,唉....我被杯具撞了一下腰~~

图片的识别用了 "image type", "html tag", "alt" 和 "index", 这个是我第一次遇到.别的图片click都很正常..我已经要放弃了~
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2010-3-26 17:40:44 | 只看该作者
这些属性都不要用..只用file name属性识别一定可以,用描述性编程
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2010-3-26 22:53:37 | 只看该作者
顶楼上。LZ用的属性貌似太多了。。。我也是常用file name来识别。
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2010-4-1 12:12:37 | 只看该作者
楼主可以试试Link对象,点击image实际上是点击链接
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-15 18:36 , Processed in 0.080616 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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