我一直在Protractor开发自动化测试很长一段时间,就像很多人一样,我遇到的差距只能与 browser.sleep()
-桥。我不喜欢硬编码这样的东西,但如果这是必要的话我会。
我开发的测试让我达到了每一点 browser.sleep(1000)
对我的运行时有重大影响。这些测试目前正在测试不同帐户的权限(确切地说是128个),这涉及登录和退出,同时检查每个帐户有哪些帐户,哪些帐户没有访问权限。
我正在测试的网站是一个纯粹的AngularJS应用程序,在我看来,它应该是 browser.sleep()
一个弃用的方法,因为有一个 browser.waitForAngular()
与之相比,准确等待页面完全加载的方法 browser.sleep()
等待一段时间,如果你的网站没有在那个时间内加载(它发生),你将有一个不一致的测试(没有人喜欢不一致)。
研究让我相信这一点 browser.waitForAngular()
没有考虑动画和相关的耗时功能,因为它们不是AngularJS相关的,但我们的网站没有实现。也 waitForAngular()
基本上等待 $digest
, $http
,和 $timeout
。
我要问的是,这是一个被认为是可接受的损失的东西,因为量角器总体来说很棒,或者有什么我在这里俯瞰?
TL; DR:
是否有解决方案让我们不满足于此 browser.sleep()
?
资料来源: 量角器超时文档, Timeout-spec.js(量角器文档), Issue909, Issue279, Issue92, StackQuestion1