一、什么是同步点

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

测试过程中,如果需要指定QuickTest暂停运行一个测试或组件,直到特定的对象属性存在后才开始运行下一步,那么可以插入同步点来实现。例如以下几种情况:

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

二、同步点方法

  1. 默认等待时间
  2. Sync方法;
  3. Wait方法;
  4. WaitProperty方法;
  5. Exist方法;

  2.1 默认等待时间    

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

  2.2 Sync 

   Syntax

    object.Sync

  Example

    Browser("Mercury Tours").Sync '等待IE加载完成

    Browser("Mercury Tours").Page("Mercury Tours").Sync '等待页面加载完成

  Description

     Sync方法等待浏览器或页面加载完成后才进行下一步操作,Sync方法只能在WEB中使用,操作对象只有Browser(浏览器对象)和Page(页面对象)。

    注意:虽然Sync方法会使QTP等待到页面加载完成后,但无法判断页面是否加载成功,如果需要判断页面加载是否成功,可以通过判断页面中对象visible的属性值。

      Browser("Google").Page("Google").WebEdit("q").GetROProperty("visible")=true

  2.3 Wait方法

   Syntax

    object.WaitProperty (PropertyName, PropertyValue, [TimeOut])

  Example

    Wait 10 或Wait(10)

  Description

    wait方法可设定指定的等待时间,时间单位为秒,但这个时间只能是固定的,即必须等到这个时间才能继续执行。

    注意:死等待有时候会浪费时间,有时候会因设定时间过短导致找不到对象。

  2.4 WaitProperty   

  Syntax

    object.WaitProperty (PropertyName, PropertyValue, [TimeOut])

  Example

    windows("XXX").dialog("XXXXXXXX").waitProperty "visible",true,50000

  Description

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

方法中的visible是属性,true是属性的值,50000为最长等待时间,单位为毫秒。即在最长等待时间内任意时刻visible的值为true了,脚本继续向下执行,否则直到等到最大等待时间,然后给出waring。

    注意:

    1)如果超出最大等待时间,QTP报告中的结果是warning,而不是fail。

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

  2.5 Exist 

  Syntax   

    object.Exist([TimeOut])

  Example  

    windows("XXX").dialog("XXXXXXXX").Exist(10)

  Description

方法中的10的时间单位为秒。该方法与waitproperty方法类似,当程序执行到该语句时会去检查对象是否存在,若存在返回true,进入下一步;若10s内检查对象一直不存在返回flase,一般用于if语言中比较多。

如果设置超时时间为0,如object.Exist 0,那么QTP不会等待,而是直接返回查找的结果(True或False)。
如果未设置超时时间,如object.Exist,那么超时时间为QTP默认的同步时间

学习心得:学习中遇到问题,不要急着四处询问,尝试使用自带的操作手册,往往有意外的收获,看看下面

【QTP专题】02_时间同步点问题的更多相关文章

  1. 【QTP专题】05_参数化之Excel

    QTP使用外部Excel实现参数化主要有以下两种方式 导入到DataTable中 Syntax:DataTable.ImportSheet(FileName, SheetSource, SheetDe ...

  2. 【QTP专题-优化】VBS脚本启动QTP并运行测试

    使用vbs脚本启动QTP并运行测试,startQTP.vbs '******************************************************************** ...

  3. 【QTP专题】04_对象及操作方法

    本节介绍知识点包括 1.QTP自动化的原理 2.两类对象:TO(测试对象).RO(运行对象) 3.操作方法:SetTOProperty,GetROProperty,GetTOProperty 1.QT ...

  4. 【QTP专题】03_Add-in Manager插件

    1.什么是Add-in Manager Add-in Manager,故名思议这是一个QTP插件管理器,每次启动前需要选择对应的插件才能进行测试. 打开QTP之后,我们可以看到有如下的一个Add-in ...

  5. 【QTP专题】01_安装时报DLL无法注册(转载)

    安装QTP过程中报很多DLL注册失败,全部忽略后安装完成,结果打开QTP录制的脚本无法保存,(点击保存按钮没反应) 1.问题分析: 问题a 使用精减版的操作系统 问题b  需要IE 6.0 及以上版本 ...

  6. 【QTP专题】连接数据库

    获取数据库连接串 在本地新建一个.txt文件,修改扩展名名*.udl:双击*.udl文件,打开数据库链接属性,定位到"提供程序"选显卡,选中如sqlserver的连接  Micro ...

  7. 谢欣伦 - OpenDev原创例程 - 时间同步Time Sync

    很久以前就发现系统自带的时间同步功能很弱,更新时间总是不成功.索性编写一个小软件来更新系统时间,正好用上了我之前写的代码,相关代码可参见文章<化繁为简系列原创教程 - 通信专题 - 无连接套接字 ...

  8. 设置WindowServer2012 时间同步NTP

    在powershell中以管理员身份运行以下命令即可 w32tm /config /manualpeerlist:pool.ntp.org /syncfromflags:MANUAL Stop-Ser ...

  9. 2016年中国微信小程序专题研究报告

    2016年12月29日,全球领先的移动互联网第三方数据挖掘和分析机构iiMedia Research(艾媒咨询)权威首发<2016年中国微信小程序专题研究报告>. 报告显示,82.6%手机 ...

随机推荐

  1. Innobackupex MySQL 全备、增备及恢复

    简介: 在这之前都是通过 mysqldump 来备份数据库的,由于是逻辑备份,所以采用这种备份方式数据是很安全的,跨平台.版本都很容易. 凡事有利必有弊,逻辑备份在你数据库比较大时,备份.恢复数据所耗 ...

  2. Unity内存优化

    [Unity内存优化] 1.在Update方法或循环中,少用string类,因为string类的每次操作都会调用new生成新字符串对象.用StringBuilder代替string,StringBui ...

  3. nginx 多域名配置,采用多配置文件的方式

    nginx 中多域名配置,目前采用多配置文件的方式. 配置过程比较简单. 首先在 nginx 目录下创建子目录 vhosts . 在 vhosts 目录中创建对应域名的配置文件.如有域名 898hi. ...

  4. Zedboard学习(二):zedboard的Linux下交叉编译环境搭建 标签: 交叉编译linuxzedboard 2017-07-04 23:49 19人阅读

    环境准备 首先肯定是要下载xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin文件,这是官方提供的linux下交叉编译链安装文件,下载地址为:https://p ...

  5. [C++] static member variable and static const member variable

    static member variable[可读可写] 可以通过指针间接修改变量的值 static const member variable[只读] 压根就不可以修改变量的值,会报错

  6. List 组件简单示例及其onItemsDisclosure点击事件

    来自<sencha touch权威指南>第9章,276页开始 ------------------------------------------------- app.js代码如下: E ...

  7. python 多继承详解-乾颐堂

    1 2 3 4 5 6 7 8 9 10 class A(object):    # A must be new-style class    def __init__(self):     prin ...

  8. MySQL 存储过程和存储函数学习

    #一.存储过程和存储函数的创建案例 CREATE PROCEDURE myprocedure(in a int,in b int ,OUT c INT) BEGIN set c=a+b; end; c ...

  9. .NET开源MSSQL、Redis监控产品Opserver之MSSQL配置

    MSSQL的配置比较简单,主要包括三部分: 默认配置(defaultConnectionString).集群配置(clusters).单实例配置(instances) defaultConnectio ...

  10. C# Winform 跨线程更新UI控件常用方法总结(转)

    出处:http://www.tuicool.com/articles/FNzURb 概述 C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件 ...