我一直在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