自动化测试中的延时等待
http://blog.sina.com.cn/s/blog_406a3c480100g2fa.html在API的测试中,通常不存在这个问题。因为上一个语句返回之后,下一个语句才能开始执行。除非是多线程测试,或者有异步方法调用。API测试的问题以后再讲。
这里讲GUI测试中的延时等待。
在GUI测试中,被测应用程序和测试脚本是在两个进程中运行的,测试脚本操作被测应用程序,并检查被测应用程序的运行结果。测试脚本对被测应用程序的操作可以分为两种,一种是执行时间很短,我们可以把它忽略的;第二种是执行时间较长,并且执行时间随机器性能,网络状况等因素会变化的。
对第二种操作,我们需要在它和下一个操作之间加入延时等待。否则,下一个操作就可能发生错误。
最简单的等待方法是用sleep语句。这种方法只适合于需要等待的时间比较稳定的情况。否则,一旦环境发生变化,或者产品的性能有变化,就会造成要么浪费时间,要么脚本失败两种结果。
我用过比较好的方法有两种。
1. 通过不断检测进度条,事件消息等方法,直到操作完成后继续,或者超时后抛一个异常。
2. 编写能够不断重试操作的方法,直到操作成功或者超时。
这两个方法比较:第一个效率更高,因为我们只在需要等待的地方等待,但测试脚本代码稍繁冗。第二个方法脚本代码更简洁,但写工具方法更复杂,而且执行测试的效率会低一些。因为遇到错误的时候,总会重试。而实际上,有的地方是不需要重试,可以直接报错的。 QTP:
1)最简单的办法就是wait,调用系统内置的wait 方法,单位是秒,简单,易理解;
2)早期的QTP版本不行,9.2就可以了,可以调整默认的两个时间之间的执行时间;
3)同步点,在限定时间内直到某一控件的某一属性发生改变才进行下一步操作;
4)exist 方法
TestComplete:
1) 与QTP wait类似,Delay 方法,单位是毫秒;
2) 在设置里面调整两个事件之间执行的时间;
3) WaitProperty 方法,和QTP同步点类似; WaitProperty 这个吧,或者写个for也可以,每次都是exist(1)
哈哈
页:
[1]