我们在 Rails 应用程序中使用了 RSpec 和 Cucumber,效果很好。Webrat 非常适合非 AJAX 交互,但我们正准备重新开始为我们的 Javascript 编写测试。
Webrat 内置了对 Selenium 的支持,我们以前也使用过 Selenium,但我很好奇是否有人在使用 Watir 和 Cucumber 时取得了良好的效果,以及 Watir 与 Selenium 的优缺点是什么。
我们在 Rails 应用程序中使用了 RSpec 和 Cucumber,效果很好。Webrat 非常适合非 AJAX 交互,但我们正准备重新开始为我们的 Javascript 编写测试。
Webrat 内置了对 Selenium 的支持,我们以前也使用过 Selenium,但我很好奇是否有人在使用 Watir 和 Cucumber 时取得了良好的效果,以及 Watir 与 Selenium 的优缺点是什么。
作为 OpenQA 和 Selenium RC 的创始人,我显然倾向于将 Selenium 作为一个不错的选择。我们最近刚刚发布了 1.0 beta 2 版本,并且非常接近 1.0 最终版本。
但是,使用 Watir/FireWatir 也不会出错。Adam 关于 WebDriver 将合并形成 Selenium 2.0 的评论是正确的,但他暗示 Watir 不使用本机钩子是不正确的。如果 Watir 只是一个 Selenium 克隆并且还使用了 JavaScript 注入,我会说它不值得一看。
但是因为它有原生的钩子,所以它可以做一些 Selenium 目前做不到的事情。虽然它支持的浏览器较少,但它在它支持的主浏览器 (IE) 中更深入一些,并允许您控制页面/画布之外的内容。
总而言之:两者都可以,Selenium 很棒,如果您使用 Selenium 再坚持一段时间,您很快就会通过 WebDriver/Selenium 2.0 获得两全其美的效果。
我通过 JRuby 使用带有 Celerity 的 Cucumber 取得了很好的效果。
Celerity 是一个无头浏览器,它使用与 Watir 兼容的 API 包裹 HtmlUnit,并支持 JavaScript 和 AJAX 测试。
无头使 Celerity 更快、更容易地集成到持续集成构建周期中。
由于 Celerity 与 Watir 的 API 兼容,因此您可以相当轻松地在 Watir 和 Celerity 之间切换。有一些警告,但值得付出努力。
我会说 Watir 更圆滑,但用处不大。它主要是一个 IE 自动化系统,具有相当不稳定的 Firefox 支持。(我承认有一段时间没有检查 FireWatir,它可能已经改进了。)
在 Watir 上有对 Selenium-RC 的实验性支持。那肯定是两全其美。
您可能想尝试WebDriver。将来它将成为 Selenium的一部分。与 JRuby 一起工作。
它与 Selenium、Sahi 或 Watir 的不同之处在于它本机控制浏览器,不使用 JavaScript,并且不受其他解决方案存在的许多问题的影响。
我试过Watir,但没有用黄瓜。这是为java应用程序。我们面临的问题是试图确定页面已加载。在找到解决方案之前,我们不得不稍微搜索一下论坛。否则很好。
Watir 2.0 也将使用 WebDriver。
如果您想在 Rails 3 上使用 Watir。
您可以使用“watir-webdriver-rails”gem(我是创建者)。
我发现它的 Env-Js 的最佳解决方案http://github.com/smparkes/env-js 它像 webrat 但支持 JS
不要忽略像 QUnit 或 Jasmine 这样的东西来对你的 javascript 进行单元测试。如果不出意外,它会减少你必须用 cucumber/selenium/capybara/whatever 编写的全栈测试的数量