量角器e2e控制流量和超时

时间:2016-05-05 19:06:53

标签: javascript angularjs selenium-webdriver protractor e2e-testing

我使用量角器来测试角应用程序,我有一个奇怪的问题。偶尔或从最近以来,量角器一直在停滞/减速。

我缩小了这个问题的范围,可以看到一个简单的someElement.getText().then(...)需要很长时间才能解决;所以.then(...)部分永远不会执行;然而,让allScriptTimeOut: 500 000等待,直到承诺最终解决,大约需要6分钟才能解决(非常不方便!)。

再次,等待allScriptTimeOut: 500 000最终会有效,但需要的时间太长。

这种极端减速的另一个解决方案是告诉量角器嘿Protractor,不要等待Angular完成所有承诺和异步后台任务,然后继续,不要等待角度,这将适用于{{1 }}

然而,将此布尔值设置为true是有问题的,因为它基本上将您的整个角度应用程序视为非角度应用程序,并且永远不会等待角度因此导致与量角器的所有类型的问题。另一个复杂因素是我们的应用程序不是完全有角度的,有些页面是非角度的;无论如何;这是我的问题:

有没有办法挂钩到控制流队列,并且基本上轮询或查询队列是通过询问hey控制流队列告诉我任何入队的行动花费的时间超过11秒?如果是,请设置browser.ignoreSynchronization = true;;像sudo一样的代码看起来像这样:

browser.ignoreSynchronization = true

这可能在语法上没有意义,但我对这个概念比对正确编写的javascript更感兴趣;

再次感谢,希望能够清楚地了解我的问题

更新:

我再次检查,基本上,Protractor能够点击大多数按钮,但它会到达屏幕底部的另一个按钮,但我先滚动按钮进入视图,然后尝试点击它它只需要6分钟,然后它最终点击该按钮。

为什么在最终成功点击该按钮之前需要很长时间?

1 个答案:

答案 0 :(得分:0)

关于你在测试中更改ignoreSynchronization的问题,目前这是不可能的(通过量角器3.3.0),因为内置的waitForAngular函数没有实现该变量控制流的上下文(browser.ts:399必须包含在控制流中,以便它能够识别变量何时被更改)。希望这种改变可以修补到未来版本中,但它会引入现有行为的突破性变化。