首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何有量角器可靠的结果?

如何有量角器可靠的结果?
EN

Stack Overflow用户
提问于 2015-03-19 17:46:00
回答 4查看 10.3K关注 0票数 15

我使用Protractor (v1.3.1)为我的角1.2.26应用程序运行E2E测试。

但有时,测试是可以的,有时不行。似乎有时检查是在更新显示(或类似于“同步”问题)之前完成的。我尝试了许多选择:

  • 添加browser.driver.sleep指令,
  • 使用browser.executeScript('$.fx.off = true')禁用效果
  • 添加browser.waitForAngular()指令

但没有成功。

用量角器进行可靠的E2E测试的最佳实践是什么?

JM。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-03-19 18:00:13

每次遇到类似的问题,我都会使用browser.wait()“预期条件” (在量角器1.7中引入)。有一组内置的预期条件通常是足够的,但是您可以很容易地定义您的自定义预期条件。

例如,等待元素变得可见。

代码语言:javascript
运行
复制
var EC = protractor.ExpectedConditions;
var e = element(by.id('xyz'));

browser.wait(EC.visibilityOf(e), 10000);
expect(e.isDisplayed()).toBeTruthy();

很少有人注意到:

  • 如果不满足条件并引发超时错误,则可以指定自定义错误消息,请参见关于等待超时错误的自定义消息: browser.wait(EC.visibilityOf(e),10000,“元素'xyz‘已不可见”);
  • 可以将EC设置为指向protractor.ExpectedConditions的全局可用变量。将这一行添加到配置中的onPrepare()中: onPrepare:函数() { global.EC = protractor.ExpectedConditions;}
  • 作为自定义预期条件的示例,请参见这个答案
票数 13
EN

Stack Overflow用户

发布于 2015-03-29 18:12:21

在使用量角器进行测试时,另一个非常重要的问题是理解ControlFlow。您可以在这里找到解释和代码示例:什么时候我们应该使用.then与量角器承诺?

让-马克

票数 2
EN

Stack Overflow用户

发布于 2015-03-29 21:22:21

有两件事要考虑。

首先,您应该正确地排列所有量角器动作的顺序(正如@jmcollin92所暗示的那样)。为此,我通常在每一步都使用.then

第二件重要的事情是确保一个新的测试it(...)只在上一个it(...)完成之后才开始。

如果使用最新版本的Protractor,可以使用Jasmin2.x及其对测试完成信号的支持:

代码语言:javascript
运行
复制
it('should do something', function(done) {
   clicksomething().then(function() {
     expect(...);
     done();
   });
});

在这里,调用done参数来表示测试已经准备就绪。否则,Protractor将调度clicksomething命令,然后立即继续进行下一个测试,只在clicksomething完成后才返回到当前测试。

由于通常两个测试都检查并可能修改同一个浏览器/页面,所以如果允许它们同时发生,测试就变得不可预测(一个测试单击下一个页面,而另一个测试仍在检查前一个页面)。

如果您使用早期版本的Protractor (正如您所指出的那样),可以使用Jasmin1.3runswaitsFor函数来模拟这种行为。

注意,使用量角器的全部要点是,量角器应该知道何时完成角。因此,原则上,不需要调用waitForAngular (我自己的测试套件中有几十个场景不包括一个等待/等待waitForAngular)。测试中的应用程序越好地遵循Angular的设计原则,您应该需要的WaitForAngular就越少。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29151557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档