51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 5395|回复: 11
打印 上一主题 下一主题

[原创] QTP中Wait与同步点的区别

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-9-4 14:49:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看了论坛上关于这方面的讨论后还是一头雾水,因此特发这个帖子,想再次了解一下。
      同步点的概念中提到当遇到同步点,会暂停脚本的执行直到对象属性获取了预先设定的值,想问这个暂停脚本的执行是什么意思?
      那么在遇到Wait的时候脚本也在等待时间,这个时候可以理解暂停脚本的运行吗?
      就在这个地方我搞不懂Wait与同步点的区别。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    难过
    2015-4-23 14:35
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    2#
    发表于 2006-9-4 15:15:10 | 只看该作者
    同步点是根据系统实际上的运行来进行等待,例如保存后需要N秒后页面才会出现(这个N秒不是固定的),进行下步的操作,那么同步点的作用就是等保存后的页面出现后才进行下步操作;
    而wait (M) 中的这个M是固定的M秒时间,当等待了这个M秒时间之后,进行下一步操作
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2006-9-4 15:38:40 | 只看该作者
    似乎好象这两个的概念在以前的帖子讲到过.那就再讲一遍吧,其实不难理解.
    先说wait函数,当脚本走到wait函数时,就开始执行这个函数.如:wait(10),就等待10秒种后再继续执行下面的语句.wait函数的这个等待的时间,那相对来说是比较固定的.如上例子,一定要等待完10秒后再执行.所以写脚本的时候要自己估算一下时间.不然可能造成时间的浪费,或者等待时间的不足.

    那同步点呢.等待时间就比较灵活了,它的等待时间是不固定的.设置同步点后,当脚本执行到这句话后,脚本就开始执行等待.脚本会在规定时间内不断的去检查,所同步的对象有没有出现,一但出现,脚本就继续往下执行.不需要等完所有规定时间.如果在规定的时间内,所要同步对象还没有出现,那就提示超时的错误信息.
    如:以你们上课的例子为例,我想你们肯定设过这样一个同步点.
    Window("Flight Reservation").ActiveX("Threed Panel Control").WaitProperty "text", "Insert Done...", 10000
    当脚本执行到这句话时,就开始执行同步等待时间.这里设置超时时间为10000.在这个时间内,脚本会不断去查看该对象的text属性的属性值Insert Done...,有没有出现.一但同步到这个属性值,就开始执行下面的脚本了.而不用再继续等待,直到1000秒结束为止.那这样的话,这个等待时间不用自己去控制,设置好后由程序自己去判断,就比较灵活,也不会出现浪费时间的情况.

    [ 本帖最后由 xiaonan 于 2006-9-4 15:43 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2006-9-4 19:19:50 | 只看该作者
    原帖由 xiaonan 于 2006-9-4 15:38 发表
    似乎好象这两个的概念在以前的帖子讲到过.那就再讲一遍吧,其实不难理解.
    先说wait函数,当脚本走到wait函数时,就开始执行这个函数.如:wait(10),就等待10秒种后再继续执行下面的语句.wait函数的这个等待的时间,那相 ...


    谢谢xiaonan对Wait与同步点的讲解。这下俺对Wait与同步点比以前清楚多了。 不过,我在测试中遇到一个问题,我用 同步点时,QTP 运行到此同步点的下一行代码 时报错: 找不到某某对象;我改为 Wait(5) 后,就没有报错。后来 我干脆就用 Wait 语句了,尽管它可能会浪费一些时间。不过我一直纳闷:这是为什么呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2006-9-4 22:41:34 | 只看该作者
    搭车问个问题啊

    我在录制脚本的时候,在某些步骤前面加入了wait (10),但是我发现脚本并没有真的在每个wait (10)的语句都暂停10秒等待,QTP好像可以“智能”识别下一步的对象是否加载完了似的。

    我想问,QTP有这种“智能”么?
    还有,QTP里面的wait (),有可能在规定的时间之类停止暂停么?例如wait (10),是不是有可能不到10秒这个暂停就结束了啊?

    谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2015-4-23 14:35
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    6#
    发表于 2006-9-4 23:26:12 | 只看该作者
    楼上说的情况应该不会出现吧,
    设置了 wait (10),脚本运行到这里时会等待10秒后才去运行下一步的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2006-9-5 09:03:12 | 只看该作者
    4楼,设置的同步点对象报错呢,还是下面脚本中的对象报错.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    8#
    发表于 2006-9-5 09:26:14 | 只看该作者
    原帖由 xiaonan 于 2006-9-5 09:03 发表
    4楼,设置的同步点对象报错呢,还是下面脚本中的对象报错.


    是同步点下面脚本中的对象报错,报告:某某对象没有找到。 这个对象是同步点下面的一行代码中的对象。是根据我的经验来判断,肯定是等待的时间不够。后来我用 Wait(5) 就没事了。我感到有点奇怪。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2006-9-5 09:35:21 | 只看该作者
    我猜想,可能你的同步信息设置的不合适.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2007-4-3 11:41:12 | 只看该作者
    你把同步点代码放在报错那行的下面。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2011-11-1 10:36:49 | 只看该作者
    是同步点下面脚本中的对象报错,报告:某某对象没有找到。 这个对象是同步点下面的一行代码中的对象。是 ...
    walker1020 发表于 2006-9-5 09:26



      请问版主现在waitproperty现在还有这个问题吗?如果解决了,是如何解决的呢?
    我现在也是用waitproperty经常也会有这个问题,所以也是干脆用的wait
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2011-11-1 10:37:26 | 只看该作者
    回复 8# walker1020

    请问版主现在waitproperty现在还有这个问题吗?如果解决了,是如何解决的呢?
    我现在也是用waitproperty经常也会有这个问题,所以也是干脆用的wait
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-5-13 05:05 , Processed in 0.068461 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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