QTP 同步点设置

在运行测试脚本时,QuickTest通过识别对象来判断脚本回放是否成功。当对象在默认的时间内未出现时,脚本回放就会报错。如果需要指定QuickTest暂停运行一个测试或组件,直到特定的对象属性存在后才开始运行下一步,那么可以插入同步点来实现。

  • 同步点原理
  • 同步点方法

---------------------------------------------------------------------------

同步点原理

同步点是指在一个测试过程中,指示QuickTest等待应用程序中某个特定过程运行完成以后再运行下一步操作。
Waits until the specified object property achieves the specified value or exceeds the specified timeout before continuing to the next step.

一般,在下列情况下使用同步点:

  • 判断进度条是否已经100%完成。
  • 判断某一状态消息的出现。
  • 等待某按钮状态变为可用。
  • 一个操作后,弹出一个消息对话框。
  • 等待窗口打开并提交数据。

    默认同步时间

    QTP默认的同步时间为20s。(File>>>Settings>>>Run>>>Object synchronization timeout:)
    可以手工更改对象识别的同步时间。
    Web插件对于Web浏览器对象的默认同步时间为60s。(File>>>Settings>>>Web>>>Browser navigation timeout:)
    同样,可以手工更改对象识别的同步时间。

    插入同步点

    语法:object.WaitProperty(PropertyName,PropertyValue,[TimeOut])
    Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").WaitProperty "name","wd",5000

    QTP默认同步时间为全局时间,手工设置的时间为同步点超时时间,总超时时间=全局时间+同步点超时时间。时间单位ms。

同步点方法

  • 对象的默认等待时间
  • Sync方法
  • WaitProperty方法
  • Exist方法
  • Wait方法

    对象的默认等待时间

    QTP识别对象时,会有一个默认的等待时间,可以在File>>>Settings>>>Run>>>Object synchronization中设置,默认时间是20秒,也就是说当执行到第2步时,网页还没有完全打开,这样的话QTP找不到第2步中需要的对象,那么它会在20秒内不断的尝试查找对象,如果百度这个网页在20秒之内完全打开,那么这个方法就可行(网页全部打开的话,第2步所需的对象就会被找到),如果超过20秒还不行的话,请参考下面几种方式

    Sync方法

    Sync方法等待浏览器或页面加载完成后才进行下一步操作。常用对象中,只有Browser(浏览器对象)和Page(页面对象)具有Sync方法。
    Browser.Sync:表示等待IE状态显示为完成后,再进行下一步操作。
    Page.Sync:表示等待页面信息加载完成后,再进行下一步操作。

    SystemUtil.Run "iexplore.exe","http://www.google.com"
    Browser("Google").Page("Google").Sync

    注意:虽然Sync方法会使QTP等待到页面加载完成后,才进行下一步操作,但是它无法判断页面是否加载成功,如果需要判断页面加载是否成功,可以通过判断页面中对象visible的属性值。
    If Browser("Google").Page("Google").WebEdit("q").GetROProperty("visible")=true then
        msgbox "加载成功"
    else
        msgbox "加载不成功"
    end if

    Sync方法只能在Web中使用,如果其他类型的对象需要等待时间怎么办?可以使用QTP自带的同步点功能。

    WaitProperty方法

   WaitProperty方法是指当指定的属性出现后或是指定时间后指定的属性还未出现,再进行下一步操作。

   注意:该方法适用于除WinMenu对象(菜单对象)以外的所有标准Windows对象。

   常用的比较方式有一下6种:

  1. micGreaterThan(大于)
  2. micLessThan(小于)
  3. micGreaterThanOrEqual(大于或等于)
  4. micLessThanOrEqual(小于或等于)
  5. micNotEqual(不等于)
  6. micRegExpMatch(正则表达式匹配)

   Exist方法 

   Exist方法用于判断对象是否存在   语法:object.Exist([TimeOut])   当设置超时时间时,如object.Exist 10,那么QTP会一直查找该对象,如果在指定的时间内未找到该对象,则提示无法找到该对象。时间单位ms。
   如果设置超时时间为0,如object.Exist 0,那么QTP不会等待,而是直接返回查找的结果(True或False)。
   如果未设置超时时间,如object.Exist,那么超时时间为QTP默认的同步时间。
   Do until Browser("百度一下,你就知道").Page("百度一下,你就道").WebEdit("wd").Exist(5)
       Wait(1)
   Loop

   判断WebEdite这个对象是否出现,如果没有出现,执行Wait(1),如果出现,跳出循环。

   Wait方法

   Wait方法又称为为死等大法。Wait方法使QTP暂停运行一定的时间。
   与其他的方法不同的是,Wait方法强制QTP暂停运行一定的时间,并不会判断指定的对象是否出现。不管对象是否出现,当等待的时间结束后,QTP都将进行下一步操作。

   当脚本走到Wait函数时,就开始执行这个函数,如:Wait(10),就等待10秒,然后再继续执行下面的语句。Wait函数的这个等待的时间,是比较固定的,Wait(10),就一定要等待10秒后在执行。时间单位s。
   同步点的等待时间就比较灵活,它的等待时间是不固定的。设置同步点后,当脚本执行到这句话后,脚本就开始执行等待,脚本会在规定时间内不断的去检查,所同步的对象有没有出现,一但出现,脚本就继续往下执行,不需要等完所规定的时间。如果在固定的时间内,所要同步对象还没有出现,那就提示超时的错误信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QTP入门-检查输出值参数化 录像 检查 输出值 参数化 同步 1.检查 目的: 检查比较指定属性的当前值与期望值,以判断当前的程序(或站)功能是否正常。 在密码正确的情况下预期结果是进入主界面,检查项只有enabled 方法: 在Active Screen显示的 Flight Reservation窗体右键,insert standard checkpoint , 设置checkpoint properties 勾选enabled OK 2.输出值 目的: 输出值就是通过检查把特定值输出到特定环境 可以把值输出到data table,也可以输出到环境变量、当有输出变量时,还可以输出到Test/action parameter。 由于order no是随机产生的,要把在insert order击后产生的order number 用于open order 输入order no的步骤 方法: insert order 窗体中 order no 右键 insert output value -OK Output value properties 中选择text 因为是在insert order之后产生order number 所以要选择 after current step -- OK configure value显示输出值将输出到data table 中的Order_No_text_out列 在open order 中 击edit set 12后的 value configuration options 中不使用常量12,而是使用参数为Data Table 中的Order_No_text_out 3.参数化 目的: 用于改变某参数而将用例重复执行 例如我们想执行4次,每次的买的票数不同。 方法: tickets 1 后的 value configuration options 中不使用常量12,而是使用参数为Data Table 中的tickets列 在tickets列加入每次要买的张数 注意: 1.只有当控件内容发生改变时它才能被QTP自动识别。 2.有些地方需要延迟才能进行 比如insert order需要等待才能产生ordernumber 结束后需要等待才能进入下次执行 可以在脚本中加入 wait 时间 除了wait以外,还可以通过设置同步来解决上述问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值