QTP中的时间同步点问题解决

一、什么是同步点

  同步点是指在一个测试过程中,指示QuickTest等待应用程序中某个特定过程运行完成以后再运行下一步操作。

  Waits until the specified object property achieves the specified value or exceeds the specified timeout before continuing to the next step.

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

  判断进度条是否已经100%完成。

  判断某一状态消息的出现。

  等待某按钮状态变为可用。

  一个操作后,弹出一个消息对话框。

  等待窗口打开并提交数据。

  二、同步点方法

  默认等待时间

  Sync方法;

  Wait方法;

  WaitProperty方法;

  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默认的同步时间

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

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-07-28 14:25:57

QTP中的时间同步点问题解决的相关文章

qtp自动化测试实践:【软件测试自动化-QTP系列讲座 46】== JScript在QTP中的终极探究

上一次讲座我们简单介绍了下QTP中如何执行javascript,其实说穿了也就是借助QTP的封装方法来进行执行javascript,主要还是想照顾下新手所以简单介绍一下这块内容,可能对一些测试高手们来说不值一提,但是今天这次讲座相信一定会让你眼前一亮,应该可以说本次课程是领先技术讲座的高潮.擦亮你的眼睛,来看如何真正意义上在QTP编辑器中直接执行JAVASCRIPT,并把try catch应用到实际应用中.从此摆脱vbs那种渣一样的错误捕获. 在这之前请允许我来介绍一个组件,它就是MSHTML组

jsp 中 ActionForm中文乱码问题解决方法

  jsp教程 中 actionform中文乱码问题解决方法 先我们来了解一下actionform actionform概念 actionform用于封装用户的请求参数,而请求参数是通过jsp页面的表单域传递过来的.因此应 保证actionform的参数,与表单域的名字相同. 编辑本段actionform配置 所有的actionform都被配置在struts-config.xm l文件中,该文件包括了一个form-beans的元素, 该元素内定义了所有actionform,每个actionfor

ios开发中两个常见问题解决方法

  ios开发中两个常见问题解决方法来啦!大家知道苹果手机使用的是ios系统,而且用户量很庞大,所以ios开发也成了很热门的行业.下文小乐哥给大家带来ios开发中两个常见问题解决方法,希望给技术员在ios开发中起到帮助作用! ios开发中两个常见问题解决方法 一."Unknown class XXViewController in Interface Builder file."问题处理 最近在静态库中写了一个XXViewController类,然后在主工程的xib中,将xib的类指定

跨浏览器PHP下载文件名中的中文乱码问题解决方法

 这篇文章主要介绍了跨浏览器PHP下载文件名中的中文乱码问题解决方法,涉及php针对中文编码的转码技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了跨浏览器PHP下载文件名中的中文乱码问题解决方法.分享给大家供大家参考.具体如下:   代码如下: <?php $ua = $_SERVER["HTTP_USER_AGENT"]; $filename = "中文 文件名.txt"; $encoded_filename = urlencode(

跨浏览器PHP下载文件名中的中文乱码问题解决方法_php技巧

本文实例讲述了跨浏览器PHP下载文件名中的中文乱码问题解决方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: <?php $ua = $_SERVER["HTTP_USER_AGENT"]; $filename = "中文 文件名.txt"; $encoded_filename = urlencode($filename); $encoded_filename = str_replace("+", "%20",

脚本-QTP中的apply&amp;amp;quot;with&amp;amp;quot; to script的快捷键没有用了,怎么办呀?

问题描述 QTP中的apply"with" to script的快捷键没有用了,怎么办呀? 在用QTP进行录制后,为了让脚本简化,一般都是用With End With来进行优化,可是今天不知道为什么,我一直按Ctrl+W始终不会自动增加With End With,我之前都是用的好好的,怎么现在没有用了,是不是我按错了哪里啊?这个问题应该怎么解决啊,求帮忙啊!!! 解决方案 http://blog.csdn.net/xifeijian/article/details/8567523 解决

QTP中使用自定义vbs类

发现直接在resource中加载含有calss的vbs文件,QTP无法识别类,导致脚本中无法new类对象. 解决办法有四种: 1.直接在action脚本中定义类,然后action中任何地方都可以实例化类 2.用executefile引入类定义文件,然后action中任何地方都可以实例化类 3.在function lib中定义类,并实例化类,然后再action中直接使用类实例 4.在function lib中定义类,并定义一个实例化类的函数,然后再action中调用该函数对类进行实例化 补充:第四

QTP中DataTable用法整理

DataTable的操作包括: DataTable.GetSheet(dtSheet) DataTable.GetSheetCount DataTable.[GetSheet.]GetRowCount DataTable.[GetSheet.]GetParameterCount DataTable.GetSheet(sSheetName).GetParameter("ColumName").ValueByName(iRowNumber) DataTable.[GetSheet.]Get

QTP中关于对webelement的处理

相信大家对于qtp中的控件的识别都绞尽脑汁了吧.有时间没有必要对所有类型的控件都纠结的.比如一定情况下的webelement控件. 由于开发的框架千差万别,就拿我们公司的框架来说,webelement的操作没有必要去考虑,因为只是由于架构中布局的考虑才有的. 甚至有些webtable类型的控件也是如此. 如下图的 正常用户操作要单击左侧menu中的企业业务才能看到外发加工的业务,进而找到外发加工业务双击才能进入外发加工业务的操作界面,而我们可以根据 控件识别的原理不需要对webelement进行