51Testing软件测试论坛

标题: 自动化测试中的延时等待 [打印本页]

作者: lvkai    时间: 2009-11-27 16:12
标题: 自动化测试中的延时等待
http://blog.sina.com.cn/s/blog_406a3c480100g2fa.html

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

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

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

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

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

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

这两个方法比较:第一个效率更高,因为我们只在需要等待的地方等待,但测试脚本代码稍繁冗。第二个方法脚本代码更简洁,但写工具方法更复杂,而且执行测试的效率会低一些。因为遇到错误的时候,总会重试。而实际上,有的地方是不需要重试,可以直接报错的。
作者: mote    时间: 2009-11-27 17:34
QTP:
1)最简单的办法就是wait,调用系统内置的wait 方法,单位是秒,简单,易理解;
2)早期的QTP版本不行,9.2就可以了,可以调整默认的两个时间之间的执行时间;
3)同步点,在限定时间内直到某一控件的某一属性发生改变才进行下一步操作;
4)exist 方法
TestComplete:

1) 与QTP wait类似,Delay 方法,单位是毫秒;
2) 在设置里面调整两个事件之间执行的时间;
3) WaitProperty 方法,和QTP同步点类似;
作者: 素还真    时间: 2009-12-5 17:50
WaitProperty 这个吧,或者写个for也可以,每次都是exist(1)
哈哈




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2