capybara-webkit 与 selenium-webdriver 的比较

Comparison of capybara-webkit vs selenium-webdriver

我想为我的 rails 应用程序编写测试用例。我已经在 Rails 内置框架 Minitest 中编写了很多测试用例。 现在我想测试我的网络应用程序的 javascript 功能。 我遇到了这两个工具

1: Selenium 网络驱动程序

2: 水豚-webkit

我不知道该用哪个。我知道这两个工具的优点和缺点很少

  1. Capybara webkit is headless while selenium web-driver open a browser.
  2. Capybara is faster than selenium.
  3. Capybara cannot open any other application while selenium can interact with third party apps like facebook and LinkedIn

谁能告诉我这两个测试工具的比较?

您在这里混淆了一些事情。 Capybara 是针对 Ruby 的测试 framework/DSL,它可以与任何测试运行器框架(RSpec、Minitest 等)一起使用。它可以使用多种不同的驱动程序与正在测试的 Web 应用程序进行通信。

默认驱动程序是rack_test,它不支持任何 JS,并且无法连接到被测应用程序之外的任何地址。

第二个驱动选项是selenium-webdriver,它可以控制多个不同的真实浏览器firefox/chrome/safari/etc。用于测试,并且可以连接到任何有效的 URL。使用 selenium-webdriver 作为驱动程序的缺点是它会打开一个真实的浏览器,因此通常速度较慢,内存占用较大。

另一个驱动程序选项是 capybara-webkit,它是无头的,也可以连接到任何有效的 URL。它通常比使用 selenium 更快,但是因为它是建立在旧版本的 QtWebkit 上的,所以它不支持更新的 Web 标准(ES2015 等),所以至少你需要确保所有 JS 都被最大程度地转换为 ES5。

没有什么可以阻止您对不同的测试使用不同的驱动程序以获得大多数测试的速度优势,然后使用真正的浏览器进行需要 WebRTC 等东西的测试。Capybara README 详细说明了如何做到这一点使用不同的测试运行程序(RSpec、Minitest 等)时