51Testing软件测试论坛

标题: QTP 的速度问题 [打印本页]

作者: vaguely    时间: 2007-9-11 12:31
标题: QTP 的速度问题
请教大家是如何处理速度问题的。
我现在常常遇到的问题是:
qtp脚本的执行速度远远大于被测应用系统的回放速度。
很多是由由于页面还没有出现,脚本已经开始执行这个页面的操作了。
请问大家除了加入wait() 以外,还有别的好方法么?谢谢
作者: vaguely    时间: 2007-9-11 12:44
我记得有人说过用debug,但是我不知道怎么可以用它来调整脚本的运行速度。
请高手们回答一下好么? 多谢
作者: 木卫十二    时间: 2007-9-11 12:51
将每步执行速度调得慢些,比如设成两秒或更多。sdlkfj5

有些重要步骤可先判断某些对象是否以出现再做其他的操作。

这是我的办法。呵呵sdlkfj6
作者: vaguely    时间: 2007-9-11 12:56
我觉得这样真得很麻烦。没有什么设置可以让每一步qtp的语句“执行完后”
在执行下一句么?
作者: yuxiaoyuan    时间: 2007-9-11 12:57
碰到同样的问题,关注。。。
作者: vaguely    时间: 2007-9-11 13:11
没人响应亚sdlkfj1
作者: 木卫十二    时间: 2007-9-11 13:12
原帖由 vaguely 于 2007-9-11 12:56 发表
我觉得这样真得很麻烦。没有什么设置可以让每一步qtp的语句“执行完后”
在执行下一句么?

我觉得这是一个平衡问题,是环境的错误导致这一步语句没有执行完,还是由于速度慢导致语句没有执行完,时间设置上应该使这两个平衡。要保证每一步环境速度赶上QTP运行速度,又要对环境错误能够做出判断。

另外,如果环境太慢无法用QTP跑的话我觉得这时不适合用自动化。自动化应该是在环境较稳定的时候应用的吧。sdlkfj5
作者: vaguely    时间: 2007-9-11 14:41
我的运行环境没有问题呀。所以qtp跑的非常快。
但是打开一个网页,常常需要一点时间。sdlkfj7
作者: sterson    时间: 2007-9-11 16:33
原帖由 木卫十二 于 2007-9-11 12:51 发表
将每步执行速度调得慢些,比如设成两秒或更多。sdlkfj5

有些重要步骤可先判断某些对象是否以出现再做其他的操作。

这是我的办法。呵呵sdlkfj6



可以试一下这种方法....有些重要步骤可先判断某些对象是否以出现再做其他的操作,这个是必须的.
作者: volvoo    时间: 2007-9-11 16:48
标题: 很简单
每次切换网页等大的动作,都加上同步机制,也就是根据界面判断目前网页的状态
wait 有问题,不灵活,而且经常失效
应该这样替代WAIT
DO 
判断同步语句
WHILE 
作者: C060706    时间: 2007-9-11 17:50
可以这样来。。。
可以控制运行持续时间10秒钟
temp = Timer+10
Do
        If  Timer >= temp then
        MsgBox("hello"&"Honey")
                Exit Do
        Else
        End if
Loop
想时间更长,就可以temp = Timer+(10*6),依此类推。。。
作者: C060706    时间: 2007-9-11 17:59
用编程的方法很多很多,就看你的想象力了!
作者: vaguely    时间: 2007-9-11 18:00
谢谢楼上各位的发言。

请问Volvoo

同步语句是指Browser(***).Page(***).Object(****).sync么?

谢谢
作者: limengyun326    时间: 2007-9-11 18:20
原帖由 vaguely 于 2007-9-11 18:00 发表
谢谢楼上各位的发言。

请问Volvoo

同步语句是指Browser(***).Page(***).Object(****).sync么?

谢谢


Browser(***).Page(***).Object(****).sync 是把当前页载完后再执行下面的操作,可以理解为同步
作者: vaguely    时间: 2007-9-11 18:30
谢谢回答
那么判断同步的语句可以这样写么

While NOT Browser(***).Page(***).Object(****).sync
Wend

谢谢
作者: hsjzfling    时间: 2007-9-11 19:17
直接写Browser().Page().Sync即可
若是应用程序就写.Activate
作者: xiaoyaoke    时间: 2007-9-11 19:24
加判断语句
作者: walker1020    时间: 2007-9-11 22:15
这个问题已经讨论过了,请大家去参考 http://bbs.51testing.com/viewthread.php?tid=86976
作者: yuandjing    时间: 2007-9-13 13:20
原帖由 C060706 于 2007-9-11 17:50 发表
可以这样来。。。
可以控制运行持续时间10秒钟
temp = Timer+10
Do
        If  Timer >= temp then
        MsgBox("hello"&"Honey")
                Exit Do
        Else
        End if
Loop
想时间更长,就可 ...

哈哈,自己的代码被转贴了
作者: marygao929    时间: 2007-9-16 20:24
机子内存对速度影响大吗?
作者: DeViLIvy    时间: 2007-9-16 21:16
nCount=0
Do Until Window("XX").Exist(0)
        Wait(1)
        nCount=nCount+1
        If nCount>15 Then'15秒后没打开则认为打不开
                Mgxbox "窗口没有打开"
                Exit Do
        End If
Loop




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