【问题标题】:Protractor - Why should i implement waiting or sleeps in test script量角器 - 为什么我应该在测试脚本中实现等待或休眠
【发布时间】:2017-10-03 20:42:04
【问题描述】:

我读到“Protractor 可以在网页完成待处理任务的那一刻自动执行测试中的下一步,因此您不必担心等待”

但是,我必须在我的测试脚本中实现等待或休眠以使它们全部通过。

谁能帮助理解这种等待。

阅读地址 :http://www.protractortest.org/#/

自动等待: 您不再需要在测试中添加等待和睡眠。 Protractor 可以在网页完成待处理任务的那一刻自动执行测试中的下一步,因此您不必担心等待测试和网页同步。

【问题讨论】:

    标签: protractor wait sleep


    【解决方案1】:

    是的,我觉得这个描述和你一样令人困惑。我认为它描述了理想的世界,没有网络延迟和超时,没有动画和布局问题。

    描述来源于following

    Protractor 在执行任何操作之前会运行一个额外的命令 浏览器以确保正在测试的应用程序已经稳定。

    这个额外的命令是一个异步脚本当应用程序完成所有超时和异步请求并准备好恢复测试时,它要求 Angular 做出响应。

    现在,“应用程序准备就绪”语句是什么意思?这基本上意味着,Angular 运行的应用程序 (source for angular testability) 内部没有待处理的请求、承诺和“宏任务”。

    据我了解,这有助于解决大部分时间和等待问题,但是,如果有待处理的 JS 代码在 Angular 之外执行,或者有任何待处理的动画或其他与 UI 相关的更改 - 这可能会影响您的测试稳定性 - 例如,元素可能尚不可见或不可点击,输入可能尚未启用等。

    而且,这实际上并没有使端到端测试的反馈变得稳定和有用 - 例如,在我们的项目中,我们经常发现自己在这里和那里添加browser.wait()s 来解决偶尔失败的测试。此外,这里有一组东西可以帮助我们解决这种脆弱性:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-20
      • 1970-01-01
      • 1970-01-01
      • 2017-11-28
      • 2019-01-06
      • 2022-03-30
      • 1970-01-01
      • 2013-08-01
      相关资源
      最近更新 更多