【问题标题】:Selenium tests sometimes fail, sometimes passSelenium 测试有时会失败,有时会通过
【发布时间】:2012-10-20 02:35:49
【问题描述】:

我已经使用 selenium 2 创建了测试,我还使用 selenium 独立服务器来运行测试。

问题是,如果我运行一个测试,它就可以工作。如果我运行多个测试,其中一些会失败。如果我尝试运行失败的测试,它会起作用。

测试可以在线程上运行吗? 我使用 NUnit GUI 和 TeamCity 来运行测试......两者都给出相同的结果:不同的测试失败,再次运行,其他测试失败。

有什么想法吗?

编辑

测试不应相互依赖。每次测试都会清空并重新填充数据库。 我想唯一的问题可能是数据库没有正确清空......但是如果我多次运行相同的测试它也应该失败。

EDIT2

测试因“未找到元素”而失败。 我会尝试添加一个“WaitForElement”,每隔几毫秒重试一次,也许这会解决它。

【问题讨论】:

  • 测试的性质是什么?它们是线程安全的吗?互相依赖?

标签: asp.net selenium nunit


【解决方案1】:

不知道抛出的确切错误很难说。不稳定的正常原因往往是等待时间没有设置合适的时间,或者网络服务器无法处理那么多请求。

如果数据库与网络服务器在同一台机器上,为什么不应该在构建框上,清除它可能会很费力。

我会建议检查每个错误并使其成为防弹,然后转到下一个。我知道有人一直在那里运行测试而没有片状,所以它绝对是可以分类的环境问题。

【讨论】:

  • 感谢您的回答,测试失败并显示“未找到元素”
  • 那么你的测试对于正在加载的页面来说运行得太快了。
  • 有没有办法在全球范围内增加延迟?在硒中?
  • 查看隐式等待。一个好的策略是设置一个合适的隐式等待时间,然后对可能更长的操作使用显式等待。
【解决方案2】:

我知道我在这里聚会有点晚了,但您是否使用单个窗口来运行您的测试?我有一个类似的问题,因为我正在测试的网站只有一个页面加载事件,所以等待元素或暂停测试变得非常狡猾,而且我每次都有不同的测试通过。在我为每个测试打开一个新的“干净”浏览器之前,添加大量等待时间根本不起作用。测试确实变慢了,但它奏效了。

【讨论】:

  • 怎么做?
猜你喜欢
  • 2015-11-15
  • 2015-08-22
  • 2010-10-04
  • 1970-01-01
  • 2012-09-19
  • 2014-09-19
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
相关资源
最近更新 更多