风雪夜归人 发表于 2010-3-26 15:13:41

QTP10 执行脚本龟速

刚刚遇到一超级郁闷的问题,一个点击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分钟,其他的操作都很快,我想取出这个图片的位置,然后点那个位置,结果取图片位置的操作也是非常非常慢,对了,这图片是打印,谁有好的办法,让时间降下来啊?或者谁遇到过,麻烦给支个招嘛,谢谢咯.

shotstar 发表于 2010-3-26 15:20:04

1、检查一下那个Image对象的识别属性,是否有变化的属性导致识别的时候时间过长。
2、可以考虑注释掉onmouseover这行,如必须保留请忽视本条。

风雪夜归人 发表于 2010-3-26 15:41:08

原帖由 shotstar 于 2010-3-26 15:20 发表 http://bbs.51testing.com/images/common/back.gif
1、检查一下那个Image对象的识别属性,是否有变化的属性导致识别的时候时间过长。
2、可以考虑注释掉onmouseover这行,如必须保留请忽视本条。
谢谢你了,如果真的这么简单,我也不会发帖问了,识别一点问题都没有,我打开对象库,highlight马上就可以识别到,onmouseover可要可不要,不过我一般喜欢加上FireEvent,就是点击非常之慢,就像死机一样,单是cpu和内存都用的不高.

shotstar 发表于 2010-3-26 15:45:21

我还是建议你先试试看去掉FireEvent那行,因为FireEvent在某些对象上应用的不是太好,所以我建议先去掉看看。
另外可以试着将那个Image对象的智能识别改成false。

风雪夜归人 发表于 2010-3-26 15:48:50

脚本原来是没有FireEvent的,执行一样非常慢,我就想试试加个FireEvent会不会快点,结果不快~~Image的智能识别我也早就去掉了,就是不行

风雪夜归人 发表于 2010-3-26 15:57:39

我拿它当灵异事件了,单是我很好奇,4#,你的头像是男还是女?:lol

shotstar 发表于 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    '鼠标抬起

如果这个办法也解决不了,俺也束手无策了。呵呵。

shotstar 发表于 2010-3-26 16:01:10

回复 6# 的帖子

当然是男的了,叫裴勇俊。

风雪夜归人 发表于 2010-3-26 16:22:06

我也尝试过7#的方法,可是,获取abs_x和abs_y的时候,也是龟速,所以...灵异事件

风雪夜归人 发表于 2010-3-26 16:22:59

回复 8# 的帖子

难道是韩国人?

wugecat 发表于 2010-3-26 16:35:13

你识别图片的属性用的是那个啊??

shotstar 发表于 2010-3-26 16:41:37

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

PS:头像那个人是韩国的。

风雪夜归人 发表于 2010-3-26 17:02:42

都试过,唉....我被杯具撞了一下腰~~

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

wugecat 发表于 2010-3-26 17:40:44

这些属性都不要用..只用file name属性识别一定可以,用描述性编程

shotstar 发表于 2010-3-26 22:53:37

顶楼上。LZ用的属性貌似太多了。。。我也是常用file name来识别。

白发三千 发表于 2010-4-1 12:12:37

楼主可以试试Link对象,点击image实际上是点击链接
页: [1]
查看完整版本: QTP10 执行脚本龟速