51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3548|回复: 2
打印 上一主题 下一主题

[原创] 自动化测试中的延时等待

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-11-27 16:12:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
http://blog.sina.com.cn/s/blog_406a3c480100g2fa.html

在API的测试中,通常不存在这个问题。因为上一个语句返回之后,下一个语句才能开始执行。除非是多线程测试,或者有异步方法调用。API测试的问题以后再讲。

这里讲GUI测试中的延时等待。

在GUI测试中,被测应用程序和测试脚本是在两个进程中运行的,测试脚本操作被测应用程序,并检查被测应用程序的运行结果。测试脚本对被测应用程序的操作可以分为两种,一种是执行时间很短,我们可以把它忽略的;第二种是执行时间较长,并且执行时间随机器性能,网络状况等因素会变化的。

对第二种操作,我们需要在它和下一个操作之间加入延时等待。否则,下一个操作就可能发生错误。

最简单的等待方法是用sleep语句。这种方法只适合于需要等待的时间比较稳定的情况。否则,一旦环境发生变化,或者产品的性能有变化,就会造成要么浪费时间,要么脚本失败两种结果。

我用过比较好的方法有两种。
1. 通过不断检测进度条,事件消息等方法,直到操作完成后继续,或者超时后抛一个异常。
2. 编写能够不断重试操作的方法,直到操作成功或者超时。

这两个方法比较:第一个效率更高,因为我们只在需要等待的地方等待,但测试脚本代码稍繁冗。第二个方法脚本代码更简洁,但写工具方法更复杂,而且执行测试的效率会低一些。因为遇到错误的时候,总会重试。而实际上,有的地方是不需要重试,可以直接报错的。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-11-27 17:34:06 | 只看该作者
QTP:
1)最简单的办法就是wait,调用系统内置的wait 方法,单位是秒,简单,易理解;
2)早期的QTP版本不行,9.2就可以了,可以调整默认的两个时间之间的执行时间;
3)同步点,在限定时间内直到某一控件的某一属性发生改变才进行下一步操作;
4)exist 方法
TestComplete:

1) 与QTP wait类似,Delay 方法,单位是毫秒;
2) 在设置里面调整两个事件之间执行的时间;
3) WaitProperty 方法,和QTP同步点类似;
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-12-5 17:50:50 | 只看该作者
WaitProperty 这个吧,或者写个for也可以,每次都是exist(1)
哈哈
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-10 06:48 , Processed in 0.067378 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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