无处不在的sleep
自动化测试用例由若干测试步骤组成。测试步骤之间往往需要保持同步关系:前一个步骤执行成功之后,才能执行下一个步骤。
然而,有时候执行某个测试步骤之后我们不能立即取到执行结果。例如,打开网址后,由于网络时延、页面加载等原因,登录按钮不一定能立即出现,也就无法立即进行登录。
这时候,我们唯一能做的就是等待(sleep):等待期望的结果出现时再执行下一个测试步骤。
等待可以通过调用sleep方法实现。各种编程语言,各种自动化测试框架,几乎没有不提供sleep方法的。
在自动化测试用例中,sleep无处不在。然而据观察,很多人写自动化用例习惯于简单调用sleep方法等待一个固定时间。这是一种粗暴sleep。
粗暴sleep的问题
粗暴sleep的主要问题是等待时间很难确定:等待时间太短,用例可能不稳定;等待时间太长,用例执行速度慢。
为此,我们不得不在用例稳定性与用例执行效率之间做取舍。一般情况下,为了优先保障用例的稳定性,我们简单粗暴,会设