原文地址:http://www.51testing.com/?uid-27374-action-viewspace-itemid-847208
在运行测试脚本时,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种:
- micGreaterThan(大于)
- micLessThan(小于)
- micGreaterThanOrEqual(大于或等于)
- micLessThanOrEqual(小于或等于)
- micNotEqual(不等于)
- 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。
同步点的等待时间就比较灵活,它的等待时间是不固定的。设置同步点后,当脚本执行到这句话后,脚本就开始执行等待,脚本会在规定时间内不断的去检查,所同步的对象有没有出现,一但出现,脚本就继续往下执行,不需要等完所规定的时间。如果在固定的时间内,所要同步对象还没有出现,那就提示超时的错误信息。
相关推荐
【QTP同步点详解】 在自动化测试领域,尤其是在使用QuickTest Professional(QTP,现在被称为UFT,Unified Functional Testing)进行功能测试时,"同步点"是一个至关重要的概念。QTP是一款由HP(现为Micro Focus)...
3. **同步点功能**:当需要针对非Web对象进行等待时,可以插入同步点。在录制模式下,选择“插入”菜单的“同步点”,指定需要等待的对象及其属性,如“Enable”或“Visible”。这样,QTP将等待对象的特定属性满足...
此外,同步点还可以通过设置各种属性,如可见性、状态、位置等,来确保对象处于可操作的状态。 总的来说,Wait 函数是基于时间的硬性等待,适用于那些对时间敏感但等待时间相对固定的场景;而同步点则是基于条件的...
以下是几种常见的QTP同步等待方式的详细说明: 1. **QTP 设置中的默认等待时间**:这是全局设置,可以在File > Settings > Run选项中调整。在这里可以设置对象同步超时时间,即QTP在找不到对象时等待的最长时间。...
测试过程包括录制测试步骤、创建检查点来验证预期结果、设置数据驱动测试以进行参数化、使用事务处理和同步点来控制测试流程。QTP还提供了一套丰富的对象库,用于识别和操作各种应用程序的对象。 在“QTP_完全教程....
QTP入门-检查点输出值参数化 录像 检查点 输出值 参数化 同步点 1.检查点 目的: 检查点比较指定属性的当前值与期望值,以判断当前的程序(或站点)功能是否...除了wait以外,还可以通过设置同步点来解决上述问题。
- **脚本编写**: QTP支持多种脚本编写方式,包括但不限于描述性编程、检查点设置等。 - **环境变量与检查点**: QTP支持环境变量设置,用于灵活地控制测试流程。检查点是自动化测试中的关键部分,用于验证测试结果...
4. 同步点:通过定义特定条件作为同步点,例如`Browser("Browser").Page("Page").WebButton("Button").Exist(5)`,会在5秒内等待该按钮出现。 正确使用同步等待策略可以避免因网络延迟或系统响应时间导致的测试失败...
- **检查点**:设置检查点用于验证应用程序的行为是否符合预期,增强测试的完整性。 综上所述,QTP与EMOS的整合为大型企业提供了高效的自动化测试解决方案,使得测试工作更为系统化、规范化,提升了整个测试团队的...
可以设置合适的“同步点”或使用“WaitObject”函数解决。 3. **脚本录制与回放问题**:在录制脚本时,QTP可能捕获到不必要或错误的动作。需要仔细检查并优化脚本,确保其符合预期的行为。同时,回放时可能由于环境...
同步机制则是确保QTP在执行测试步骤时等待特定事件发生,避免因程序加载延迟导致的错误。 八、环境变量与设置 理解并熟练配置QTP的环境变量,如设置运行环境、浏览器版本等,能更好地适应不同测试环境的需求。 九...
下面将详细解释QTP及其汉化工具包的相关知识点。 1. **QTP基础概念**: - QTP全称为QuickTest Professional,现已被更名为UFT(Unified Functional Testing),是一款功能强大的自动化测试工具。 - 它支持多种...
- **增强功能**:介绍一些高级特性,如事务、检查点、同步点等。 通过学习和查阅QTP中文帮助文档,测试工程师可以深入了解QTP的各个方面,提升自动化测试的技能,从而提高测试质量和效率,为项目的成功保驾护航。
8. **对象间关系与同步**:理解对象之间的依赖关系,以及如何处理同步问题,对于编写健壮的测试脚本至关重要。 9. **增强型检查点**:除了基本的检查点外,还有图像、数据库、表等增强型检查点,用于验证应用程序更...
- **同步点**:解决对象间交互的同步问题,确保脚本执行时对象已准备就绪。 4. **QTP与其他工具集成** - **Quality Center**:HP的质量中心可以与QTP配合,进行测试计划、缺陷跟踪和测试结果的管理。 - **ALM...
此外,设置对象同步超时时间,这对于处理与Web对象交互时的等待时间非常重要。 在自动化测试过程中,QTP的这些设置能帮助用户更精确地控制测试流程,确保录制的脚本准确无误地反映实际操作。理解并熟练掌握这些设置...
另外,QTP中Wait与同步点的区别在于,Wait用于等待某个条件成立,而同步点用于在两个操作之间同步,确保操作不会因为速度不一致而出现问题。 在测试报告方面,QTP允许测试人员自定义报告内容,并且可以调用共享文件...
8. **进阶主题**:如事务处理、恢复点、关联、同步点等,提升测试的完整性和准确性。 通过系统学习QTP8.2,不仅可以掌握自动化测试的基本技能,还可以为后续更高版本的学习打下坚实基础。在实际项目中,结合具体...
11. **对象同步**:QTP通过对象同步点确保对象在执行操作前已正确加载,避免因页面加载延迟导致的错误。 12. **Excel操作**:QTP可以读写Excel数据,用于数据驱动测试或报告生成。 13. **XML参数化**:XML文件可以...
- 同步点确保测试脚本在进行下一步操作前等待特定事件发生,防止因为应用程序响应时间不同而引起的错误。 8. **错误处理与调试**: - QTP提供了错误处理机制,如On Error语句,帮助开发者捕获和处理运行时错误。 ...