【问题标题】:Automated JavaScript testing with Intern fails randomly使用 Intern 进行的自动化 JavaScript 测试随机失败
【发布时间】:2014-01-21 10:32:21
【问题描述】:

我们正在使用 Intern 为我们的应用程序运行一套功能性 JavaScript 测试,针对使用 Vagrant 启动的 Ubuntu VM。

每个测试都使用生成一些 UI 输出的数据文件引导自身。每个测试都独立成功地运行。事实上,在许多情况下,测试也一起成功运行。

但是,我们偶尔会看到某些测试失败。目前,我们有 16 项针对 Chrome 和 Firefox 的测试。看到 16 项测试中可能有 4 项的失败列表并不罕见。如果我将这些测试隔离到一个较小的套件中并重新运行该工具,测试将再次成功通过。

现在,理论上,这些测试是相互独立的,每次运行时实际失败的数量都会有所不同,所以我不认为错误是一个测试影响了另一个。为测试提供平台的服务器在本地运行,在资源充足的机器上。

有没有一种方法可以编写测试或运行 Intern 来为我们提供更可靠的结果?

【问题讨论】:

  • 这是什么故障?测试实际上返回了一个不好的结果吗?超时了吗?
  • 最初它们大多是超时,尽管现在这已经消失了,因为我编辑了实习生 runner.js 文件以将空闲超时从 60 更改为 600 并设置高 ImplicitWaitTimeout 作为我们处理的一部分。现在我们大多得到错误 7,我知道这是找不到对象。任何关于如何从实习生配置和测试脚本中减慢测试速度的建议都将受到欢迎。 runner.js 的编辑并不理想!

标签: javascript selenium-webdriver vagrant functional-testing intern


【解决方案1】:

我们发现了导致我们的测试作为一个套件一起运行时随机失败的原因。我们的一项测试使用了修饰键,例如 [Shift] 和 [Ctrl]。我们为 WebDriver 提供的有限文档中提到了 keys 命令:

按键(键可能在命令结束时仍处于按下状态)。

似乎有时此命令会按下修改键,因此在链中的下一个测试中处于活动状态。由于我们的其他一些测试使用 [Tab] 序列来访问某些页面元素,并且 [Shift][Tab] 向后浏览页面,因此我们的测试失败,具体取决于它们在套件中的位置。

我们仍然存在时间问题,但随机故障的情况已与此问题隔离。

【讨论】:

    猜你喜欢
    • 2019-08-27
    • 2010-09-10
    • 2020-03-13
    • 2016-01-31
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多