veryseven 发表于 2008-7-24 16:34:36

QTP录制JavaScript写的对话框时,回放速度非常慢

我用QTP9.2录制了一段脚本后回放,回放的速度非常的慢,比如我点击“添加”后弹出一个对话框,然后输入“test”,再点击“确定”,就这个过程回放大概需要2分钟,实际操作的时候很快可以完成。不知道各位高手能否解决一下速度的问题,我将录制对象、脚本、控件属性都放上来了


Browser("Browser").Page("Page").Frame("frame_main").WebButton("添加").Click
Browser("Browser").Page("Page").Frame("window_1216887225828_content").WebEdit("txt_name").Set "test"
Browser("Browser").Page("Page").Frame("window_1216887225828_content").WebButton("确认").Click



而且有时候回放的时候需要加wait()才能完成,不然就提示找不到对象,似乎QTP对这种对话框Load的速度非常慢,开发人员说这种对话框是用Java Script写的

[ 本帖最后由 veryseven 于 2008-7-24 17:01 编辑 ]

peterz 发表于 2008-7-24 16:52:38

看不到图,你是不是增加了页面检查点,那样会很慢的

veryseven 发表于 2008-7-24 17:03:02

回复 2# 的帖子

什么都没有做,这是我临时录的一段代码,回放也是很慢

veryseven 发表于 2008-7-24 17:04:04

而且这个对象的名字window_1216887225828_content每次都是会变的

假装不在 发表于 2008-7-24 17:14:09

1,你是否开了虚拟对象识别
2,缩短对象识别时间,修改20秒为1秒
3,看看是不是QTP识别对象时间用得比较长。

wtucel 发表于 2008-7-24 17:20:46

Browser("Browser").Page("Page").Frame("window_1216887225828_content").WebEdit("txt_name").Set "test"
Browser("Browser").Page("Page").Frame("window_1216887225828_content").WebButton("确认").Click

你的对象名称每次都在变化吧,所以QTP每次都找不到名为window_1216887225828_content的对象,然后会根据其他属性来识别,匹配了所有属性后才发现新的对象只有name属性变了,所以QTP自动识别

你用描述性编程试试

veryseven 发表于 2008-7-24 17:35:42

原帖由 假装不在 于 2008-7-24 17:14 发表 http://bbs.51testing.com/images/common/back.gif
1,你是否开了虚拟对象识别
2,缩短对象识别时间,修改20秒为1秒
3,看看是不是QTP识别对象时间用得比较长。
没有开启虚拟对象识别,在同一段脚本里也录制的其它操作就很快,只有对这种弹出的对话框的操作反应很慢,我觉得关键可能在这个对话框上,但是我不知道原因是什么,不知道还有没有别的方法

veryseven 发表于 2008-7-24 17:38:46

原帖由 wtucel 于 2008-7-24 17:20 发表 http://bbs.51testing.com/images/common/back.gif
Browser("Browser").Page("Page").Frame("window_1216887225828_content").WebEdit("txt_name").Set "test"
Browser("Browser").Page("Page").Frame("window_1216887225828_content").WebButton("确认").Click

你 ...
我觉得你说得有道理,如果真的没有别的方法只好用描述性编程试试,目前我还没用过,要去学习啦

lilith 发表于 2008-7-24 17:45:53

用object Spy去抓取你要识别的对象吧 把所有的对象放在自定义的对象库里面,这样每次识别的就是你抓取得对象。名字和属性都可以自己更改,但是最好不要多增加属性,不然可能会出现识别错误。描述性性编程也是一种办法。要看项目需求了。

假装不在 发表于 2008-7-24 19:31:39

这个主要还是对象的识别问题。

zte_boy 发表于 2008-7-24 23:31:43

智能识别惹得祸

小孩 发表于 2008-7-24 23:59:22

:lol 不推荐使用智能识别

假装不在 发表于 2008-7-25 09:44:39

回复 12# 的帖子

有时候也不得不用...:hug:

zte_boy 发表于 2008-7-25 10:19:18

我觉得智能识别是为了懒人用的,呵呵
其实无论什么对象总有办法确定其唯一性的

shifengboluo 发表于 2009-4-17 16:34:56

你的问题解决了吗?

我也遇到了类似的问题,也是用javascript编写的frame且()中的属性每次都是变化的,就4句脚本一个click操作回放特别慢,我用描述性编程尝试过了,但是速度没有什么提高,不知你的问题解决了吗?

[ 本帖最后由 shifengboluo 于 2009-4-17 16:40 编辑 ]

virgolong 发表于 2009-4-17 22:01:34

我现在用的也是BS的程序,除了dialog和windows两种控件运行时较慢,其他都还好
最开始也是录制的脚板,结果发现程序一升级有些属性变了就不能运行了,后来改为描述性编程

shifengboluo 发表于 2009-4-20 16:49:50

这个问题再顶一下

希望有高手帮忙解决下,现在回放个脚本慢死了~

kasimxiao 发表于 2009-4-21 16:55:30

你会发现每次很慢的运行完后测试报告该对象都有一个“!”在前面
方法1:
用描述性变成
会变的对象名用正则
方法2:
在对象库中将该对象会改变的内容用正则代替

个人觉得方法2比较简单

[ 本帖最后由 kasimxiao 于 2009-4-21 16:56 编辑 ]
页: [1]
查看完整版本: QTP录制JavaScript写的对话框时,回放速度非常慢